Обучение языку C++, часть 1
Новосибирск, осень 2021
Описание
Содержание первого семестра
От исходного кода до исполняемого файла:
- что есть программа на С++
- процесс сборки
- компилятор и некоторые его опции
Особенности языка:
- функции и операторы
- классы
- шаблоны
- исключения
- умные указатели
- стандартные контейнеры и алгоритмы
- лямбда-функции
Практики разработки:
- экосистема С++ проектов
- практики производительности
- юнит-тестирование: как и чем
Пожелания к участникам курса
- Уметь писать несложные программы на каком-нибудь языке. Если понятия
переменная
ицикл
Вам не знакомы, то на курсе будет тяжело. Следующие задачи не должны вводить студента в ступор:- прочитать содержимое файла и вывести на экран
- найти максимальное число в последовательности
- Быть знакомым с основами git или готовым обучиться им в сжатые сроки (первых трёх глав
Pro git book
достаточно) - Быть готовым выполнять объёмные домашние задания и работать с замечаниями
- Желательно быть знакомым с языком С либо быть готовым после лекции проработать материал по темам
стек
,куча
,указатель
.
Критерии оценки
Оценка | Баллы |
---|---|
зачёт | 14 |
хорошо | 21 |
отлично | 28 |
Стоимость заданий:
Задание | Макс. балл |
---|---|
1. Хеш от файла | 8 |
2. Полином | 8 |
3. Графический интерпретатор | 8 |
4. Оптимизация поиска | 9 |
Максимум баллов за курс: 33
Требования к домашним заданиям
Проверьте, что:
- Проект кроссплатформенный. Достаточно использовать стандартный набор инструментов языка. Если сомневаетесь, проверьте работу под windows и linux.
- Проект содержит файл README.md, со следующими пунктами:
- о чём проект
- инструкции сборки
- инструкции по использованию
- Тестирование
- есть unit-тесты (разумное количество)
- unit-тесты проходят (все)
- unit-тесты написаны через googletest
- Поддержана система генерации проектов cmake
Формат работы с домашними заданиями
- Первый дедлайн - 2 недели - на подготовку первого решения. Первое решение должно удовлетворять требованиям и содержать тесты.
- Второй дедлайн - 2 недели - на прохождение ревью у проверяющих. Должны быть закрыты все замечания и обсуждения по ревью.
Рекомендации по работе с домашними заданиями
- Лучше заранее начать выполнять задания под ОС linux:
- Установка пакетов разработки под OC linux проще
- Задание N4 потребует наличие ОС linux для выполнения. Логичнее потратить время на настройку в начале семестра, пока нагрузка не успела вырасти.
- Откладывать задание на последний день не стоит.