Основы и методология программирования на ПМИ 2017/2018 (основной поток, 2 модуль) — различия между версиями
(не показано 38 промежуточных версии 2 участников) | |||
Строка 9: | Строка 9: | ||
Каждую вторую пятницу вместо лекции проводится контрольный контест. | Каждую вторую пятницу вместо лекции проводится контрольный контест. | ||
+ | [https://github.com/alzobnin/hse-cs-prog/tree/master/2016-2 Краткие конспекты лекций прошлого года] | ||
+ | [https://www.coursera.org/learn/c-plus-plus-white Основы разработки на C++: белый пояс] - курс на Курсере от разрабочиков Яндекса | ||
+ | |||
+ | [https://www.coursera.org/learn/c-plus-plus-yellow Основы разработки на C++: жёлтый пояс] - продолжение курса | ||
+ | |||
+ | Телеграм-канал для студентов, где будут публиковаться новости курса: https://t.me/hse_cs_cpp_2017 | ||
== Регулярные домашние контесты == | == Регулярные домашние контесты == | ||
− | Мы будем выдавать очередные контесты (почти) каждый понедельник и каждую пятницу. Длительность каждого контеста - | + | Мы будем выдавать очередные контесты (почти) каждый понедельник и каждую пятницу. Длительность каждого контеста - 10 дней. |
− | 1. [https://official.contest.yandex.ru/contest/5635/problems/ Контест №1] - дедлайн | + | 1. [https://official.contest.yandex.ru/contest/5635/problems/ Контест №1] - дедлайн 09.11.2017 в 00:00:01<br/> |
+ | 2. [https://official.contest.yandex.ru/contest/5684/problems/ Контест №2] - дедлайн 13.11.2017 в 00:00:01<br/> | ||
+ | 3. [https://official.contest.yandex.ru/contest/5685/problems/ Контест №3] - дедлайн 16.11.2017 в 00:00:01<br/> | ||
+ | 4. [https://official.contest.yandex.ru/contest/5687/problems/ Контест №4] - дедлайн 20.11.2017 в 00:00:01<br/> | ||
+ | 5. [https://official.contest.yandex.ru/contest/5955/problems/ Контест №5] - дедлайн 23.11.2017 в 00:00:01<br/> | ||
+ | 6. [https://official.contest.yandex.ru/contest/5995/problems/ Контест №6] - дедлайн 27.11.2017 в 00:00:01<br> | ||
+ | 7. [https://official.contest.yandex.ru/contest/6039/problems/ Контест №7] - дедлайн 01.12.2017 в 00:00:01<br> | ||
+ | 8. [https://official.contest.yandex.ru/contest/5996/problems/ Контест №8] - дедлайн 04.12.2017 в 00:00:01<br> | ||
+ | 9. [https://official.contest.yandex.ru/contest/6468/problems/ Контест №9] - дедлайн 08.12.2017 в 00:00:01<br> | ||
+ | 10. [https://official.contest.yandex.ru/contest/6655/problems/ Контест №10] - дедлайн 12.12.2017 в 00:00:01<br> | ||
+ | 11. [https://official.contest.yandex.ru/contest/6751/problems/ Контест №11] - дедлайн 15.12.2017 в 00:00:01<br> | ||
+ | 12. [https://official.contest.yandex.ru/contest/6752/problems/ Контест №12] - дедлайн перенесён на 01.01.2018, 00:00:01<br> | ||
+ | 13. [https://official.contest.yandex.ru/contest/6929/problems/ Контест №13] - дополнительный (необязательный) контест для желающих поднять баллы. Дедлайн 09.01.2018 в 00:01.<br> | ||
+ | 14. [https://official.contest.yandex.ru/contest/7054/problems/ Контест №14] - дедлайн перенесён на 22.01.2018 в 00:00:01. Добавлена последняя задача H. <br> | ||
+ | 15. [https://official.contest.yandex.ru/contest/7114/problems/ Контест №15] - дедлайн перенесён на 07.02.2018 в 00:00:01. Добавлены еще две задачи.<br> | ||
+ | 16. [https://official.contest.yandex.ru/contest/7193/problems/ Контест №16] - дедлайн перенесён на 19.02.2018 в 00:00:01.<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 | ||
+ | |- | ||
+ | |} | ||
== Используемое ПО == | == Используемое ПО == | ||
Мы будем работать в Linux, использовать текстовый редактор [https://en.wikipedia.org/wiki/Vim_%28text_editor%29 Vim] и компилятор [https://en.wikipedia.org/wiki/Clang clang 3.8]. | Мы будем работать в Linux, использовать текстовый редактор [https://en.wikipedia.org/wiki/Vim_%28text_editor%29 Vim] и компилятор [https://en.wikipedia.org/wiki/Clang clang 3.8]. | ||
+ | Использовать другие системы и компиляторы можно, но вам придётся настраивать их самостоятельно. | ||
На занятия можно приносить свой ноутбук. | На занятия можно приносить свой ноутбук. | ||
+ | |||
+ | |||
== Формулы оценок == | == Формулы оценок == | ||
'''Накопленная оценка за 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 * накопленная оценка | ||
+ | |||
+ | |||
== Требования к оформлению кода программ == | == Требования к оформлению кода программ == | ||
Строка 31: | Строка 81: | ||
Мы используем cpplint для проверки стиля. Вот [http://wiki.cs.hse.ru/%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%B7%D0%B0%D0%BD%D1%8F%D1%82%D0%B8%D1%8F_%D0%BF%D0%BE_%D0%BA%D1%83%D1%80%D1%81%D1%83_%D0%9E%D0%B8%D0%9C%D0%9F/C%2B%2B_check список требований]. | Мы используем cpplint для проверки стиля. Вот [http://wiki.cs.hse.ru/%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%B7%D0%B0%D0%BD%D1%8F%D1%82%D0%B8%D1%8F_%D0%BF%D0%BE_%D0%BA%D1%83%D1%80%D1%81%D1%83_%D0%9E%D0%B8%D0%9C%D0%9F/C%2B%2B_check список требований]. | ||
− | Флаги для [https://github.com/google/styleguide/blob/gh-pages/cpplint/cpplint.py cpplint]: --filter=-,+build/include,-build/include_order,+build/include_what_you_use,+build/storage_class,+readability/alt_tokens,+readability/braces, | + | Флаги для [https://github.com/google/styleguide/blob/gh-pages/cpplint/cpplint.py 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 |
− | +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 | + | |
== Полезные ссылки == | == Полезные ссылки == | ||
Строка 50: | Строка 96: | ||
[http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines.html C++ Core Guidelines] - рекомендации по C++ от Бьярна Страуструпа и Герба Саттера | [http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines.html C++ Core Guidelines] - рекомендации по C++ от Бьярна Страуструпа и Герба Саттера | ||
− | |||
− |
Текущая версия на 12:08, 9 апреля 2018
Содержание
Основы и методология программирования, основной поток, 2017, 2-й модуль
Лектор: А. И. Зобнин
Лекции: понедельник, 3-я пара, и пятница, 2-я пара.
Каждую вторую пятницу вместо лекции проводится контрольный контест.
Краткие конспекты лекций прошлого года
Основы разработки на C++: белый пояс - курс на Курсере от разрабочиков Яндекса
Основы разработки на C++: жёлтый пояс - продолжение курса
Телеграм-канал для студентов, где будут публиковаться новости курса: https://t.me/hse_cs_cpp_2017
Регулярные домашние контесты
Мы будем выдавать очередные контесты (почти) каждый понедельник и каждую пятницу. Длительность каждого контеста - 10 дней.
1. Контест №1 - дедлайн 09.11.2017 в 00:00:01
2. Контест №2 - дедлайн 13.11.2017 в 00:00:01
3. Контест №3 - дедлайн 16.11.2017 в 00:00:01
4. Контест №4 - дедлайн 20.11.2017 в 00:00:01
5. Контест №5 - дедлайн 23.11.2017 в 00:00:01
6. Контест №6 - дедлайн 27.11.2017 в 00:00:01
7. Контест №7 - дедлайн 01.12.2017 в 00:00:01
8. Контест №8 - дедлайн 04.12.2017 в 00:00:01
9. Контест №9 - дедлайн 08.12.2017 в 00:00:01
10. Контест №10 - дедлайн 12.12.2017 в 00:00:01
11. Контест №11 - дедлайн 15.12.2017 в 00:00:01
12. Контест №12 - дедлайн перенесён на 01.01.2018, 00:00:01
13. Контест №13 - дополнительный (необязательный) контест для желающих поднять баллы. Дедлайн 09.01.2018 в 00:01.
14. Контест №14 - дедлайн перенесён на 22.01.2018 в 00:00:01. Добавлена последняя задача H.
15. Контест №15 - дедлайн перенесён на 07.02.2018 в 00:00:01. Добавлены еще две задачи.
16. Контест №16 - дедлайн перенесён на 19.02.2018 в 00:00:01.
Штрафы
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++ от Бьярна Страуструпа и Герба Саттера