Программирование на C++, часть 1

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

Описание

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

Материалы курса

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

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

Особенности языка:

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

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

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


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

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


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

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


Стоимость заданий:

Задание Макс. балл
1. Хеш от файла 8
2. Полином 8
3. Графический интерпретатор 8
4. Оптимизация поиска 9

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


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

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

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


Формат работы с домашними заданиями

  1. Первый дедлайн - 2 недели - на подготовку первого решения. Первое решение должно удовлетворять требованиям и содержать тесты.
  2. Второй дедлайн - 2 недели - на прохождение ревью у проверяющих. Должны быть закрыты все замечания и обсуждения по ревью.


Рекомендации по работе с домашними заданиями

  1. Лучше заранее начать выполнять задания под ОС linux:
    • Установка пакетов разработки под OC linux проще
    • Задание N4 потребует наличие ОС linux для выполнения. Логичнее потратить время на настройку в начале семестра, пока нагрузка не успела вырасти.
  2. Откладывать задание на последний день не стоит.


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

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