Основы и методология программирования 2016/2017 пилотный поток

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск

Основы и методология программирования, пилотный поток, 2016-2017, 1 модуль

Лектор: А. И. Зобнин

Лекции: понедельник (еженедельно), 1-я пара (9:00-10:20), ауд. 205;
среда (7 и 21 сентября, 5 и 19 октября), 2-я пара (10:30-11:50), ауд. 205.

Консультации лектора: среда, 3-я пара (12:10 - 13:30), ауд. 618.

Краткое содержание прочитанных лекций

05.09.2016. C++: ввод и вывод, условный оператор, циклы, оператор switch. [Код, написанный на лекции.]

07.09.2016. Шаблон std::vector. [Код, написанный на лекции.]

12.09.2016. Выражения. Приоритет операторов. Функции. Передача параметров в функции. [Код, написанный на лекции.]

19.09.2016. Структуры. Ассоциативные массивы. [Код, написанный на лекции.]

21.09.2016. Алгоритмы стандартной библиотеки. [Код, написанный на лекции.]

28.09.2016. Алгоритмы стандартной библиотеки (продолжение). [Код, написанный на лекции.]

03.10.2016. Классы. [Код, написанный на лекции.]

Используемое ПО

Мы будем работать в Linux, использовать текстовый редактор Vim и компилятор clang 3.8.

На занятия можно приносить свой ноутбук.

Преподаватели и ассистенты

Подгруппа Преподаватель Учебные ассистенты Семинары Страница подгруппы
161-1 Константин Бажанов Александр Тиунов вторник, 2-я пара, ауд. 513; среда, 1-я пара, ауд. 327
161-2 Павел Мельничук Александр Тиунов понедельник, 2-я пара, ауд. 513; среда, 1-я пара, ауд. 513 161-2
163-1 Алексей Зобнин Александр Зойкин понедельник, 2-я пара, ауд. 501; среда, 1-я пара, ауд. 503
163-2 Алексей Панов Александр Зойкин понедельник, 2-я пара, ауд. 327; среда, 1-я пара, ауд. 505

Домашняя работа

Ссылка на контест (начало - 12:00 3 октября, конец - 23:59 10 октября).

Как узнать свой вариант: Если вы из подгруппы 161-2 - обратитесь к своему преподавателю.

Для всех остальных: примените вот такую функцию к своему логину в Яндекс.Контесте:

   std::vector<size_t> get_variants(const std::string& login, size_t problems_count = 3) {
       size_t hash = 0;
       for (char c : login) {
           hash += static_cast<unsigned int>(c);
           hash %= (1 << problems_count);
       }
       std::vector<size_t> variants(problems_count);
       for (size_t i = 0; i != problems_count; ++i)
           variants[i] = ((hash >> i) & 1) + 1;
       return variants;
   }

Формулы оценок

Итоговая оценка за I модуль = 0,12 * Аудиторная_работа + 0,18 * Домашняя_работа + 0,3 * Контрольные + 0,4 * Экзамен


Требования к оформлению кода программ

Мы используем 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

.vimrc - файл с найстроками Vim (от Алексея Зобнина)