Основы и методология программирования 2019/2020 — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
Строка 1: Строка 1:
 +
== Основы и методология программирования - 2, основной поток, 2019/2020, 3 модуль ==
 +
 
[http://wiki.cs.hse.ru/%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D1%8B_%D0%B8_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D1%8F_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_1_2019/2020 Страница первого модуля]
 
[http://wiki.cs.hse.ru/%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D1%8B_%D0%B8_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D1%8F_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_1_2019/2020 Страница первого модуля]
 +
 +
'''Лектор:'''  [https://www.hse.ru/org/persons/132843899 А. И. Зобнин]
 +
 +
'''Лекции:''' вторник и четверг, 2-я пара, R401<br />
 +
 +
Телеграм-канал для объявлений: https://t.me/joinchat/AAAAAEX8SY_dxbpSgGbckQ
 +
 +
== Краткое содержание лекций ==
 +
1. Hello, world! Обзор примитивных типов. Условный оператор и циклы. Потоковый консольный ввод-вывод. Классы vector и string.<br/>
 +
 +
== Регулярные домашние контесты ==
 +
1. [https://official.contest.yandex.ru/contest/13860/problems/ Контест №1] - дедлайн 16.09.2019 в 23:59:59<br/>
 +
 +
== Контрольные работы ==
 +
Мы напишем 4 контрольных контеста и одну теоретическую работу.
 +
 +
== Используемое ПО ==
 +
На лекциях мы будем работать в Linux, использовать текстовый редактор [https://en.wikipedia.org/wiki/Vim_%28text_editor%29 Vim] и компилятор [https://gcc.gnu.org/ g++].
 +
На занятия можно приносить свой ноутбук и использовать любую среду разработки.
 +
 +
== Формула оценок ==
 +
Результат третьего модуля = 0.4 * контрольные + 0.3 * регулярные_контесты + 0.3 * экзамен
 +
 +
 +
== Требования к оформлению кода программ ==
 +
 +
Мы используем 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,
 +
+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
 +
 +
В контестах мы запускаем [https://github.com/alzobnin/hse-cs-prog/blob/master/cpplint.py вот такой модифицированный скрипт], не требующий указания опций, и принимающий в качестве параметра просто проверяемый файл.
 +
 +
==Курсы на Курсере от разработчиков Яндекса==
 +
[https://www.coursera.org/learn/c-plus-plus-white Основы разработки на C++: белый пояс]
 +
 +
[https://www.coursera.org/learn/c-plus-plus-yellow Основы разработки на C++: жёлтый пояс]
 +
 +
[https://www.coursera.org/learn/c-plus-plus-red Основы разработки на C++: красный пояс]
 +
 +
[https://www.coursera.org/learn/c-plus-plus-brown Основы разработки на C++: коричневый пояс]
 +
 +
[https://www.coursera.org/learn/c-plus-plus-black Основы разработки на C++: чёрный пояс]
 +
 +
 +
== Полезные ссылки ==
 +
 +
[http://en.cppreference.com/w/ cppreference.com] - полезный сайт-справочник по C++
 +
 +
[http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines.html C++ Core Guidelines] - рекомендации по C++ от Бьярна Страуструпа и Герба Саттера
 +
 +
[http://overthewire.org/wargames/bandit/ Bandit] - игра для освоения консольных команд Linux
 +
 +
[http://people.dunnewind.net/practical_vim.pdf Practical Vim] - хороший учебник по Vim
 +
 +
[http://valloric.github.io/YouCompleteMe/ YouCompleteMe] - полезный плагин для Vim для автодополнения кода
 +
 +
[https://github.com/alzobnin/hse-cs-prog/tree/master/2016-1 Конспекты лекций] 2016 года (немного устарело)

Версия 10:13, 14 января 2020

Основы и методология программирования - 2, основной поток, 2019/2020, 3 модуль

Страница первого модуля

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

Лекции: вторник и четверг, 2-я пара, R401

Телеграм-канал для объявлений: https://t.me/joinchat/AAAAAEX8SY_dxbpSgGbckQ

Краткое содержание лекций

1. Hello, world! Обзор примитивных типов. Условный оператор и циклы. Потоковый консольный ввод-вывод. Классы vector и string.

Регулярные домашние контесты

1. Контест №1 - дедлайн 16.09.2019 в 23:59:59

Контрольные работы

Мы напишем 4 контрольных контеста и одну теоретическую работу.

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

На лекциях мы будем работать в Linux, использовать текстовый редактор Vim и компилятор g++. На занятия можно приносить свой ноутбук и использовать любую среду разработки.

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

Результат третьего модуля = 0.4 * контрольные + 0.3 * регулярные_контесты + 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++

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

Bandit - игра для освоения консольных команд Linux

Practical Vim - хороший учебник по Vim

YouCompleteMe - полезный плагин для Vim для автодополнения кода

Конспекты лекций 2016 года (немного устарело)