Основы и методология программирования на ПМИ 2020/2021 (пилотный поток)

Материал из Wiki - Факультет компьютерных наук
Версия от 07:18, 5 сентября 2020; Alexey.Zobnin (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Основы и методология программирования, пилотный поток, 2020/2021, I модуль

Лектор: А. И. Зобнин

Лекции: вторник и суббота, 9:30. Лекции проходят онлайн.

Телеграм-канал для объявлений: https://t.me/joinchat/AAAAAETxf1SDqABMWiaiug

Краткое содержание лекций

сб 05.09. Типы данных и переменные. Операторы. Контейнеры string/vector. Функции.
вт 08.09. Структуры. Ссылки. Указатели. Константность. Передача параметров.
сб 12.09. Контейнеры стандартной библиотеки.
вт 15.09. Шаблонные функции. Алгоритмы стандартной библиотеки.
сб 19.09 5. КР 1
вт 22.09. Жизненный цикл объектов. Стек и динамическая память. Move-семантика.
сб 26.09. Классы. Шаблоны классов. Обработка исключений.
вт 29.09. Наследование и полиморфизм. Фабрики объектов.
сб 03.10 9. КР 2
вт 06.10. Идиома RAII. Умные указатели.
сб 10.10. Работа с байтами и памятью.
вт 13.10. Реализация стандартных контейнеров.
сб 17.10. КР 3

Регулярные домашние контесты

1. Контест №1


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

Мы напишем 3 контрольных контеста.
сб 19.09. КР 1
сб 03.10. КР 2
сб 17.10. КР 3


Используемое ПО

На лекциях мы будем работать в Linux, использовать текстовый редактор Vim и компиляторы g++ и clang. На практические занятия можно приносить свой ноутбук и использовать любую среду разработки.

Формула оценок

Результат третьего модуля = 0.4 * контрольные + 0.3 * регулярные_контесты + 0.3 * экзамен

Итог: Округление(1/3 * результат первого модуля + 2/3 * результат третьего модуля)

Требования к оформлению кода программ

Мы используем cpplint для проверки стиля. Вот список требований.

Флаги для cpplint: --filter=-,+build/include,-build/include_order,+build/include_what_you_use,+build/storage_class,+readability/alt_tokens,+readability/braces, +readability/casting,+readability/inheritance,+runtime/casting,-runtime/explicit,+whitespace/blank_line,+whitespace/braces,+whitespace/comma, +whitespace/comments,+whitespace/empty_conditional_body,+whitespace/empty_loop_body,+whitespace/end_of_line, +whitespace/ending_newline,+whitespace/forcolon,+whitespace/indent,+whitespace/line_length,+whitespace/newline, +whitespace/operators,+whitespace/parens,+whitespace/semicolon,+whitespace/tab --linelength=100

В контестах мы запускаем вот такой модифицированный скрипт, не требующий указания опций, и принимающий в качестве параметра просто проверяемый файл.

Курсы на Курсере от разработчиков Яндекса

Основы разработки на C++: белый пояс

Основы разработки на C++: жёлтый пояс

Основы разработки на C++: красный пояс

Основы разработки на C++: коричневый пояс

Основы разработки на C++: чёрный пояс

Видеолекции курса можно посмотреть бесплатно.

Полезные ссылки

cppreference.com - полезный сайт-справочник по C++

С++ tutorial - классический tutorial по C++ (немного устарел)

C++ Core Guidelines - рекомендации по C++ от Бьярна Страуструпа и Герба Саттера

- некоторые видеолекции по C++ прошлого учебного года