Обучение языку C++, часть 1

Новосибирск, осень 2020

Описание

Примерное содержание первого семестра

От исходного кода до исполняемого файла:

  • что есть программа на С++
  • процесс сборки
  • компилятор и некоторые его опции

Фичи языка:

  • функции и операторы
  • классы
  • шаблоны
  • исключения
  • умные указатели
  • стандартные контейнеры и алгоритмы
  • лямбда-функции

Практики разработки:

  • экосистема С++ проектов
  • практики производительности
  • юнит-тестирование: как и чем

Детальное содержание (дополняется)

Пожелания к участникам курса

  • Уметь писать несложные программы на каком-нибудь языке. Если понятия переменная и цикл Вам не знакомы, то на курсе будет тяжело. Следующие задачи не должны вводить студента в ступор:
    • прочитать содержимое файла и вывести на экран
    • найти максимальное число в последовательности
  • Быть знакомым с азами git или готовым обучиться им в сжатые сроки (первых трёх глав pro git book более чем достаточно)
  • Быть готовым выполнять домашние задания и работать с замечаниями
  • Желательно хоть немного быть знакомым с языком С либо быть готовым после лекции проработать материал по темам стек, куча, указатель.


Критерии оценки

Оценка Баллы
зачёт 14
хорошо 20
отлично 26

Максимум баллов за курс: 30


Требования к домашним заданиям

Проверьте, что:

  1. проект компилируется под все платформы (проверьте windows и linux)
  2. проект содержит файл README.md, со следующими пунктами:
    • о чём проект
    • инструкции сборки
    • инструкции по использованию
  3. тестирование
    • есть unit-тесты (разумное количество)
    • unit-тесты проходят (все)
    • unit-тесты написаны через googletest
    • если для сборки юнит-тестов нужен специальный ключ для cmake, он задокументирован в README
  4. поддержана система генерации проектов cmake
  5. список может пополниться по факту общения со студентами

Инструкция по оформлению домашнего задания

Преподаватели

Список лекций

Лекция 1. Знакомство

Ссылка на занятие: https://us02web.zoom.us/j/85374198899 (пароль 373013)