С++,1 курс, 2 семестр, 2016/17 — различия между версиями

Материал из SEWiki
Перейти к: навигация, поиск
(Практика Суворов)
(Экзамен)
 
(не показано 19 промежуточных версий 2 участников)
Строка 1: Строка 1:
 +
[[С++,1 курс, 1 семестр, 2016/17|Актуальная wiki первого семестра]]
 +
 
== Экзамен ==
 
== Экзамен ==
  
[[С++,1 курс, 1 семестр, 2016/17|Актуальная wiki первого семестра]]
+
[[Вопросы к экзамену второго семестра]]
  
 
== Лекции ==
 
== Лекции ==
Строка 9: Строка 11:
  
 
'''Презентации'''
 
'''Презентации'''
* [[Медиа:lect01.pdf | Лекция 1 (Шаблоны)]]
+
* [[Медиа:lect01.pdf | Лекция 1 (Шаблоны - I)]]
 +
* [[Медиа:lect02.pdf | Лекция 2 (Шаблоны - II, Исключения - I)]]
 +
* [[Медиа:lect03.pdf | Лекция 3 (Исключения - II)]]
 +
* [[Медиа:lect05.pdf | Лекция 5 (Алгоритмы)]]
 +
* [[Медиа:lect06.pdf | Лекция 6 (C++11, классы, move)]]
 +
* [[Медиа:lect07.pdf | Лекция 7 (C++11, auto, lambda, разное)]]
 +
* [[Медиа:lect08.pdf | Лекция 8 (C++11, шаблоны, STL)]]
 +
* [[Медиа:lect09.pdf | Лекция 9 (Threads. Множественное наследование.)]]
 +
* [[Медиа:lect10.pdf | Лекция 10 (Метапрограммирование. SFINAE. enable_if.)]]
 +
 
 +
'''Классические источники''':
 +
* [https://ru.wikipedia.org/wiki/%D0%AF%D0%B7%D1%8B%D0%BA_%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_%D0%A1%D0%B8_(%D0%BA%D0%BD%D0%B8%D0%B3%D0%B0) Язык программирования Си]
 +
* [https://ru.wikipedia.org/wiki/%D0%AF%D0%B7%D1%8B%D0%BA_%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_C%2B%2B_(%D0%BA%D0%BD%D0%B8%D0%B3%D0%B0) Язык программирования C++]
 +
*[https://ru.stackoverflow.com/questions/417797/%D0%93%D0%B4%D0%B5-%D0%B2%D0%B7%D1%8F%D1%82%D1%8C-%D1%81%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82-c Где взять стандарт C++?]
 +
*[https://isocpp.org/faq C++ FAQ]
 +
 
 +
'''Дополнительная литература''':
 +
* Книги [https://ru.wikipedia.org/wiki/%D0%9C%D0%B0%D0%B9%D0%B5%D1%80%D1%81,_%D0%A1%D0%BA%D0%BE%D1%82%D1%82 Скотта Майерса]
 +
* [https://ru.wikipedia.org/wiki/%D0%94%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD_%D0%B8_%D1%8D%D0%B2%D0%BE%D0%BB%D1%8E%D1%86%D0%B8%D1%8F_C%2B%2B Дизайн и эволюция C++]
 +
* Книги [https://ru.wikipedia.org/wiki/%D0%A1%D0%B0%D1%82%D1%82%D0%B5%D1%80,_%D0%93%D0%B5%D1%80%D0%B1 Герба Саттера]
 +
* Книги [https://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80%D0%B5%D1%81%D0%BA%D1%83,_%D0%90%D0%BD%D0%B4%D1%80%D0%B5%D0%B9 Андрея Александреску]
  
 
== Лабораторные и домашние ==
 
== Лабораторные и домашние ==
Строка 23: Строка 45:
  
 
== Практика Афанасьев ==
 
== Практика Афанасьев ==
 +
 +
== Практика Суворов ==
  
 
Преподаватель: Егор Суворов ([mailto:egor_suvorov@mail.ru egor_suvorov@mail.ru], [https://vk.com/egor.suvorov vk.com/egor.suvorov])
 
Преподаватель: Егор Суворов ([mailto:egor_suvorov@mail.ru egor_suvorov@mail.ru], [https://vk.com/egor.suvorov vk.com/egor.suvorov])
Строка 30: Строка 54:
 
Вопросы можно писать либо в ВК, либо на почту. В ВК быстрее отвечаю. Если вопросов много или они требуют вдумчивого ответа - лучше на почту.
 
Вопросы можно писать либо в ВК, либо на почту. В ВК быстрее отвечаю. Если вопросов много или они требуют вдумчивого ответа - лучше на почту.
  
Есть чат в ВК, там публикуются ответы на часто задаваемые вопросы, комментарии по лаборатным/домашкам и прочее. Также могут появляться общие комментарии по программированию и плюсам в частности. Я их буду время от времени переносить в раздел ниже, если заметили, что чего-то не хватает - перенесите. Копировать мои сообщения самостоятельно не стоит.
+
Подробная информация - на [[С++, 1 курс, 3 группа, 2 семестр, 2016/17|странице группы]].
 
+
== Общие знания ==
+
 
+
== Примерные правила оценки лабораторных ==
+
Это больше руководство для меня и контрольные точки, чем чёткие правила; баллы могут сниматься и по другим причинам. Апелляции подавать можно и нужно - я мог что-то не заметить (например, что вы что-то на самом деле сделали, или что это ещё не проходили, или что в заданее не требуется), мог сделать слишком жёсткую систему оценки (тогда мы обсудим это с коллегами). Если что-то непонятно - задавайте вопросы.
+
  
=== Лабораторная 11 (I/O и полиморфизм) ===
+
Примеры с занятий лежат [https://github.com/yeputons/spring-2017-cpp на GitHub].
Итак, 10 баллов распределяются примерно следующим образом:
+
# За прохождение тестов:
+
#* 3 балла, если прошло всё и сразу.
+
#* 2 балла, если потребовалось косметически поменять формат вывода текста (вроде `SalaryManager` и `Salary Manager`).
+
#* 1 балл, если работает только текст (возможно, после косметических исправлений) или программа исходно не компилировалась.
+
#* 0 баллов, если не удалось простыми изменениями заставить заработать.
+
# За Valgrind:
+
#* 2 балла, если претензий нет.
+
#* 1 балл, если есть только утечки памяти.
+
#* 0 баллов, если есть undefined behavior вроде чтения из неинициализированной памяти.
+
# За качество и корректность интерфейсов классов (включая поля) и функций:
+
#* 2 балла, если претензий нет.
+
#* 1 балл, если в целом идея верная, но сделали что-то не слишкои опасное (открыты лишние методы), или что-что, что обнаружится на этапе компиляции (забыли const qualifier).
+
#* 0 баллов, если интерфейс опасен (невиртуальный деструктор, забыли закрыть оператор присваивания/конструктор копирования).
+
# За качество и корректность реализации ставится от 0 до 3 баллов и снимаются за:
+
#* -1 балл, если есть обширное дублирование кода, от которого можно избавиться (например, вынести в предка).
+
#* -1 балл за скрытые ограничения (вроде фиксированной максимальной длины строки).
+
#* -1 балл за серьёзное несоответствие "традициям" языка C++ или за неожиданную логику программы (нумерация массивов с единицы, реализация больших нешаблонных методов в header'ах, лишний код).
+

Текущая версия на 00:49, 30 мая 2017

Актуальная wiki первого семестра

Экзамен

Лекции

Преподаватель: Евгений Линский (evgeny.linsky@gmail.com)

Презентации

Классические источники:

Дополнительная литература:

Лабораторные и домашние

  • HFX-TA/cpp — гит-репозиторий с описаниями лабораторных (обновляется каждую неделю).
  • Trac — багтрекер Trac для домашних заданий.

Практика Гулецкий

Преподаватель: Артур Гулецкий (hatless.fox@gmail.com)

Префикс в теме письма: [C++TA]

Практика Афанасьев

Практика Суворов

Преподаватель: Егор Суворов (egor_suvorov@mail.ru, vk.com/egor.suvorov)

Префикс в теме письма: [C++TA]

Вопросы можно писать либо в ВК, либо на почту. В ВК быстрее отвечаю. Если вопросов много или они требуют вдумчивого ответа - лучше на почту.

Подробная информация - на странице группы.

Примеры с занятий лежат на GitHub.