Основы и методология программирования 1 2019/2020 (пилотный поток) — различия между версиями
(→Краткое содержание лекций) |
(→Краткое содержание лекций) |
||
Строка 12: | Строка 12: | ||
2. Обзор функций классов vector и string. Функции. Передача параметров по значению и по ссылке.<br/> | 2. Обзор функций классов vector и string. Функции. Передача параметров по значению и по ссылке.<br/> | ||
3. Ассоциативные контейнеры. Контейнеры array, deque и list. Адаптер priority_queue.<br/> | 3. Ассоциативные контейнеры. Контейнеры array, deque и list. Адаптер priority_queue.<br/> | ||
+ | 4. Адаптеры stack и queue. Алгоритмы стандартной библиотеки.<br/> | ||
== Регулярные домашние контесты == | == Регулярные домашние контесты == |
Версия 16:42, 24 сентября 2019
Содержание
Основы и методология программирования, пилотный поток, 2019, 1 модуль
Лектор: А. И. Зобнин
Лекции: вторник и пятница, 3-я пара (12:10-13:30)
Каждую вторую пятницу, начиная с 20.09.2019, проводится контрольный контест.
Телеграм-канал для объявлений: https://t.me/joinchat/AAAAAEX8SY_dxbpSgGbckQ
Краткое содержание лекций
1. Hello, world! Обзор примитивных типов. Потоковый консольный ввод-вывод. Классы vector и string. Сортировка вектора.
2. Обзор функций классов vector и string. Функции. Передача параметров по значению и по ссылке.
3. Ассоциативные контейнеры. Контейнеры array, deque и list. Адаптер priority_queue.
4. Адаптеры stack и queue. Алгоритмы стандартной библиотеки.
Регулярные домашние контесты
1. Контест №1 - дедлайн 16.09.2019 в 23:59:59
2. Контест №2 - дедлайн 19.09.2019 в 23:59:59
3. Контест №3 - дедлайн 23.09.2019 в 23:59:59
4. Контест №4 - дедлайн 30.09.2019 в 23:59:59
Используемое ПО
На лекциях мы будем работать в Linux, использовать текстовый редактор Vim и компилятор g++. На занятия можно приносить свой ноутбук и использовать свою среду разработки.
Формулы оценок
0.15 * (КР1 + КР2 + КР3) + 0.25 * ДЗ + 0.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++
Bandit - игра для освоения консольных команд Linux
Practical Vim - хороший учебник по Vim
YouCompleteMe - полезный плагин для Vim для автодополнения кода
C++ Core Guidelines - рекомендации по C++ от Бьярна Страуструпа и Герба Саттера
Конспекты лекций 2016 года (немного устарело)