Основы и методология программирования на ПМИ 2020/2021 (пилотный поток) — различия между версиями
(Новая страница: «== Основы и методология программирования, пилотный поток, 2020/2021, I модуль == '''Лектор:''' [https…») |
|||
Строка 8: | Строка 8: | ||
== Краткое содержание лекций == | == Краткое содержание лекций == | ||
− | + | 05.09. Типы данных и переменные. Операторы. Контейнеры string/vector. Функции. <br/> | |
− | + | 08.09. Структуры. Ссылки. Указатели. Константность. Передача параметров. <br/> | |
− | + | 12.09. Контейнеры стандартной библиотеки. <br/> | |
− | + | 15.09. Шаблонные функции. Алгоритмы стандартной библиотеки. <br/> | |
− | + | 19.09. КР 1 <br/> | |
− | + | 22.09. Жизненный цикл объектов. Стек и динамическая память. Move-семантика. <br/> | |
− | + | 26.09. Классы. Шаблоны классов. Обработка исключений. <br/> | |
− | + | 29.09. Наследование и полиморфизм. Фабрики объектов. <br/> | |
− | + | 03.10. КР 2 <br/> | |
− | + | 06.10. Идиома RAII. Умные указатели. <br/> | |
− | + | 10.10. Работа с байтами и памятью. <br/> | |
− | + | 13.10. Реализация стандартных контейнеров. <br/> | |
− | + | 17.10. КР 3 <br/> | |
+ | |||
== Регулярные домашние контесты == | == Регулярные домашние контесты == | ||
Строка 28: | Строка 29: | ||
== Контрольные работы == | == Контрольные работы == | ||
Мы напишем 3 контрольных контеста.<br/> | Мы напишем 3 контрольных контеста.<br/> | ||
− | + | 19.09. КР 1 <br/> | |
− | + | 03.10. КР 2 <br/> | |
− | + | 17.10. КР 3 <br/> | |
+ | |||
+ | |||
+ | == Экзамен == | ||
+ | В конце курса пройдёт теоретический экзамен в виде теста. | ||
+ | |||
+ | |||
+ | == Формула оценок == | ||
+ | 0.15 * (КР1 + КР2 + КР3) + 0.25 * ДЗ + 0.3 * ЭКЗ | ||
Строка 37: | Строка 46: | ||
На практические занятия можно приносить свой ноутбук и использовать любую среду разработки. | На практические занятия можно приносить свой ноутбук и использовать любую среду разработки. | ||
− | |||
− | |||
− | |||
− | |||
== Требования к оформлению кода программ == | == Требования к оформлению кода программ == |
Версия 07:21, 5 сентября 2020
Содержание
- 1 Основы и методология программирования, пилотный поток, 2020/2021, I модуль
- 2 Краткое содержание лекций
- 3 Регулярные домашние контесты
- 4 Контрольные работы
- 5 Экзамен
- 6 Формула оценок
- 7 Используемое ПО
- 8 Требования к оформлению кода программ
- 9 Курсы на Курсере от разработчиков Яндекса
- 10 Полезные ссылки
Основы и методология программирования, пилотный поток, 2020/2021, I модуль
Лектор: А. И. Зобнин
Лекции: вторник и суббота, 9:30. Лекции проходят онлайн.
Телеграм-канал для объявлений: https://t.me/joinchat/AAAAAETxf1SDqABMWiaiug
Краткое содержание лекций
05.09. Типы данных и переменные. Операторы. Контейнеры string/vector. Функции.
08.09. Структуры. Ссылки. Указатели. Константность. Передача параметров.
12.09. Контейнеры стандартной библиотеки.
15.09. Шаблонные функции. Алгоритмы стандартной библиотеки.
19.09. КР 1
22.09. Жизненный цикл объектов. Стек и динамическая память. Move-семантика.
26.09. Классы. Шаблоны классов. Обработка исключений.
29.09. Наследование и полиморфизм. Фабрики объектов.
03.10. КР 2
06.10. Идиома RAII. Умные указатели.
10.10. Работа с байтами и памятью.
13.10. Реализация стандартных контейнеров.
17.10. КР 3
Регулярные домашние контесты
1. Контест №1
Контрольные работы
Мы напишем 3 контрольных контеста.
19.09. КР 1
03.10. КР 2
17.10. КР 3
Экзамен
В конце курса пройдёт теоретический экзамен в виде теста.
Формула оценок
0.15 * (КР1 + КР2 + КР3) + 0.25 * ДЗ + 0.3 * ЭКЗ
Используемое ПО
На лекциях мы будем работать в Linux, использовать текстовый редактор Vim и компиляторы g++ и clang. На практические занятия можно приносить свой ноутбук и использовать любую среду разработки.
Требования к оформлению кода программ
Мы используем 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++ от Бьярна Страуструпа и Герба Саттера