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

Санкт-Петербург, весна 2022

Описание

Курс С++. Семестр 2

Вторая часть курса Программирование на С++ рассчитана на студентов, успешно освоивших первую часть курса, что подразумевает понимание таких тем, как функции, работа с памятью, анонимные функции (aka лямбды), ООП, динамический полиморфизм, категории значений, move-семантика

Во второй части курса рассматриваются продвинутые темы. Приблизительный список тем:

  • Error handling. Exception Safety
  • Standard Library
  • Metaprogramming
  • Serialization (json, protobuf)
  • Libraries (static, dynamic; third-party)
  • Multithreading
  • C++20 Features: coroutines, modules, ranges, concepts
  • Tools
  • Security

Активности и оценки

Подробнее о системе оценивания по каждой из активностей описано здесь: link

1 Лекции

На лекциях рассматривается теоретическая часть языка программирования С++. Для лучшего понимания темы мы стараемся показать больше примеров, как в виде сниппетов кода, так и в формате лайв-кодинга.

Летучки

Для того чтобы вспомнить материал прошлых занятий в начале лекции 5-10 минут уделяется летучке. Формат летучки может быть разным: задания на платформах kahoot, itempool или stepik.

Баллы за летучки выставляются в общую ведомость и являются бонусными. Каким образом будут начисляться бонусы будет видно ближе к концу семестра.

Анонимные опросы

По окончании лекции могут быть небольшие анонимные опросы по прошедшей теме с возможностью оставить комментарии и предложения о курсе.

2 Семинары

Семинары обязательны для всех студентов курса.

Семинары рассчитаны на более тщательный разбор практических вопросов языка. Обычно семинар состоит из разбора задач прошлого семинара, небольшого обзора тем для новых задач и решения задач с возможностью задать вопросы преподавателю.

Дорешки

На семинарах выдается несколько небольших задач. Среди этих задач одна будет выбрана для прохождения код-ревью. К сожалению мы не имеем возможности проводить код-ревью для всех студентов, поэтому на каждой новой неделе будет формироваться новая группа студентов, чьи решения должны пройти код-ревью.

Код-ревью должно помочь с написанием идиоматичного кода и поиском распространенных ошибок.

Процесс проведения код-ревью описан здесь: link

Контрольные работы

Примерно каждый 3-4 семинар проводится контрольная работа. За семестр будет проведено до 3 контрольных работ. Решения контрольных работ проходят код-ревью единожды.

3 Большие домашние задания

Домашние задания обязательны для всех студентов курса.

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

Процесс и порядок формирования сроков сдачи описан здесь: link

4 Экзамен

Экзамен опционален для студентов CSC.

Экзамен состоит из 3 блоков: теормин, теория, задача. Каждый из них оценивается по 5-бальной шкале.

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