О курсе
Основной объём материала посвящён отличительным (в сравнении с другими т.н. «managed» языками) особенностям языка C# 5.0: мотивации их появления, шаблонам применения и типичным ошибкам, допускаемым при их использовании.
В уроках разбирается каркас LINQ (language integrated query). Обсуждается асинхронный ввод-вывод и его интеграция в язык через конструкцию async/await. Изучаются особенности порождаемого различными синтаксическими сахарами кода (foreach, using, анонимные типы и т.п.).
Программа занятий основана на семинарах, проводившихся для студентов ФИТ НГУ с 2010 по 2017 год Никитой Каменским и Денисом Гладким. В их создании в разное время также поучаствовало немало программистов новосибирского академгородка: Александр Быстров, Михаил Дьяков, Антон Киприянов, Александр Переверзев, Юрий Поляков, Евгений Хван, Антон Гордеев, Роман Ищенко.
Примечание: как теоретический материал, так и задачи курса создавались между 2018 и 2019 годом и не затрагивают возможности языка (и его платформы) появившиеся с версии 6.0. Некоторые решения, использующие современные конструкции языка, могут быть ошибочно не приняты (или не скомпилируются, или не предусмотрены системой проверки, или ещё по каким-то причинам совместимости).
Индивидуальные занятия по программе курса (code review, нерассмотренные темы, помощь в освоении): https://solvery.io/mentor/denis_gladkiy
Для кого этот курс
Студенты старших курсов в области информатики и вычислительной техники.
Начальные требования
Курс рассчитан на слушателей, которые уже владеют каким-либо объектно-ориентированным языком, например, C++, Java или D. Материал предполагает знание не только конструкций структурного программирования, но и понимание ответов на вопросы, вроде «почему важна инкапсуляция», «что такое класс», «зачем нужны виртуальные функции», «как работать с исключениями». Кроме языковых навыков, также пригодятся познания из области операционных систем: процессы, нити, системные вызовы, виртуальная память.