Основы и методология программирования на ПМИ 2017/2018 (основной поток, 2 модуль) — различия между версиями
Строка 16: | Строка 16: | ||
1. [https://official.contest.yandex.ru/contest/5635/problems/ Контест №1] - дедлайн 05.11.2017 в 23:59<br/> | 1. [https://official.contest.yandex.ru/contest/5635/problems/ Контест №1] - дедлайн 05.11.2017 в 23:59<br/> | ||
+ | |||
+ | |||
+ | |||
+ | == Штрафы == | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | | output-limit-exceeded || 1 | ||
+ | |- | ||
+ | | time-limit-exceeded || 2 | ||
+ | |- | ||
+ | | idleness-limit-exceeded || 2 | ||
+ | |- | ||
+ | | compilation-error || 0 | ||
+ | |- | ||
+ | | presentation-error || 1 | ||
+ | |- | ||
+ | | precompile-check-failed || 0 | ||
+ | |- | ||
+ | | runtime-error || 2 | ||
+ | |- | ||
+ | | memory-limit-exceeded || 2 | ||
+ | |- | ||
+ | |wrong-answer || 1 | ||
+ | |- | ||
+ | |} | ||
Строка 23: | Строка 48: | ||
На занятия можно приносить свой ноутбук. | На занятия можно приносить свой ноутбук. | ||
+ | |||
+ | |||
== Формулы оценок == | == Формулы оценок == | ||
'''Накопленная оценка за II-III модули''' = 0,4 * домашние работы + 0,6 * контрольные контесты<br/> | '''Накопленная оценка за II-III модули''' = 0,4 * домашние работы + 0,6 * контрольные контесты<br/> | ||
'''Итоговая оценка за II-III модули''' = 0,4 * экзамен + 0,6 * накопленная оценка | '''Итоговая оценка за II-III модули''' = 0,4 * экзамен + 0,6 * накопленная оценка | ||
+ | |||
+ | |||
== Требования к оформлению кода программ == | == Требования к оформлению кода программ == | ||
Строка 37: | Строка 66: | ||
+whitespace/ending_newline,+whitespace/forcolon,+whitespace/indent,+whitespace/line_length,+whitespace/newline, | +whitespace/ending_newline,+whitespace/forcolon,+whitespace/indent,+whitespace/line_length,+whitespace/newline, | ||
+whitespace/operators,+whitespace/parens,+whitespace/semicolon,+whitespace/tab --linelength=100 | +whitespace/operators,+whitespace/parens,+whitespace/semicolon,+whitespace/tab --linelength=100 | ||
+ | |||
+ | |||
== Полезные ссылки == | == Полезные ссылки == |
Версия 22:34, 29 октября 2017
Содержание
Основы и методология программирования, основной поток, 2017, 2-й модуль
Лектор: А. И. Зобнин
Лекции: понедельник, 3-я пара, и пятница, 2-я пара.
Каждую вторую пятницу вместо лекции проводится контрольный контест.
Регулярные домашние контесты
Мы будем выдавать очередные контесты (почти) каждый понедельник и каждую пятницу. Длительность каждого контеста - неделя.
1. Контест №1 - дедлайн 05.11.2017 в 23:59
Штрафы
output-limit-exceeded | 1 |
time-limit-exceeded | 2 |
idleness-limit-exceeded | 2 |
compilation-error | 0 |
presentation-error | 1 |
precompile-check-failed | 0 |
runtime-error | 2 |
memory-limit-exceeded | 2 |
wrong-answer | 1 |
Используемое ПО
Мы будем работать в Linux, использовать текстовый редактор Vim и компилятор clang 3.8. Использовать другие системы и компиляторы можно, но вам придётся настраивать их самостоятельно.
На занятия можно приносить свой ноутбук.
Формулы оценок
Накопленная оценка за II-III модули = 0,4 * домашние работы + 0,6 * контрольные контесты
Итоговая оценка за II-III модули = 0,4 * экзамен + 0,6 * накопленная оценка
Требования к оформлению кода программ
Мы используем 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
Полезные ссылки
Bandit - игра для освоения консольных команд Linux
Practical Vim - хороший учебник по Vim
YouCompleteMe - полезный плагин для Vim для автодополнения кода
cppreference.com - полезный сайт-справочник по C++
C++ Core Guidelines - рекомендации по C++ от Бьярна Страуструпа и Герба Саттера
Основы разработки на C++: белый пояс - курс на Курсере от разрабочиков Яндекса