Основы и методология программирования на ПМИ 2017/2018 (основной поток, 2 модуль) — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
Строка 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 для автодополнения кода

Черновик стандарта C++14

cppreference.com - полезный сайт-справочник по C++

C++ Core Guidelines - рекомендации по C++ от Бьярна Страуструпа и Герба Саттера

Основы разработки на C++: белый пояс - курс на Курсере от разрабочиков Яндекса