Основы и методология программирования на ПМИ 2020/2021 (пилотный поток) — различия между версиями
(Новая страница: «== Основы и методология программирования, пилотный поток, 2020/2021, I модуль == '''Лектор:''' [https…») |
|||
(не показано 9 промежуточных версии этого же участника) | |||
Строка 4: | Строка 4: | ||
'''Лекции:''' вторник и суббота, 9:30. Лекции проходят онлайн.<br /> | '''Лекции:''' вторник и суббота, 9:30. Лекции проходят онлайн.<br /> | ||
− | |||
− | |||
== Краткое содержание лекций == | == Краткое содержание лекций == | ||
− | + | 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/> | |
+ | |||
== Регулярные домашние контесты == | == Регулярные домашние контесты == | ||
1. [https://official.contest.yandex.ru/contest/19571/problems/ Контест №1]<br/> | 1. [https://official.contest.yandex.ru/contest/19571/problems/ Контест №1]<br/> | ||
+ | 2. [https://official.contest.yandex.ru/contest/19572/problems/ Контест №2]<br/> | ||
+ | 3. [https://official.contest.yandex.ru/contest/19573/problems/ Контест №3]<br/> | ||
+ | 4. [https://official.contest.yandex.ru/contest/19574/problems/ Контест №4]<br/> | ||
+ | 5. [https://official.contest.yandex.ru/contest/19575/problems/ Контест №5]<br/> | ||
+ | 6. [https://official.contest.yandex.ru/contest/19576/problems/ Контест №6]<br/> | ||
== Контрольные работы == | == Контрольные работы == | ||
Мы напишем 3 контрольных контеста.<br/> | Мы напишем 3 контрольных контеста.<br/> | ||
− | + | 19.09. [https://official.contest.yandex.ru/contest/19567/problems/ Контрольная работа №1]<br/> | |
− | + | 03.10. [https://official.contest.yandex.ru/contest/19568/problems/ Контрольная работа №2]<br/> | |
− | + | 17.10. [https://official.contest.yandex.ru/contest/19569/problems/ Контрольная работа №3]<br/> | |
+ | |||
+ | == Экзамен == | ||
+ | В конце курса пройдёт теоретический экзамен в виде теста. | ||
+ | |||
+ | |||
+ | == Формула оценок == | ||
+ | 0.15 * (КР1 + КР2 + КР3) + 0.25 * ДЗ + 0.3 * ЭКЗ | ||
Строка 37: | Строка 48: | ||
На практические занятия можно приносить свой ноутбук и использовать любую среду разработки. | На практические занятия можно приносить свой ноутбук и использовать любую среду разработки. | ||
− | |||
− | |||
− | |||
− | |||
== Требования к оформлению кода программ == | == Требования к оформлению кода программ == |
Текущая версия на 12:50, 12 января 2021
Содержание
- 1 Основы и методология программирования, пилотный поток, 2020/2021, I модуль
- 2 Краткое содержание лекций
- 3 Регулярные домашние контесты
- 4 Контрольные работы
- 5 Экзамен
- 6 Формула оценок
- 7 Используемое ПО
- 8 Требования к оформлению кода программ
- 9 Курсы на Курсере от разработчиков Яндекса
- 10 Полезные ссылки
Основы и методология программирования, пилотный поток, 2020/2021, I модуль
Лектор: А. И. Зобнин
Лекции: вторник и суббота, 9:30. Лекции проходят онлайн.
Краткое содержание лекций
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
2. Контест №2
3. Контест №3
4. Контест №4
5. Контест №5
6. Контест №6
Контрольные работы
Мы напишем 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++ от Бьярна Страуструпа и Герба Саттера