Бакалавриат
2022/2023
Программирование на C#
Лучший по критерию «Полезность курса для Вашей будущей карьеры»
Лучший по критерию «Полезность курса для расширения кругозора и разностороннего развития»
Статус:
Курс обязательный (Программная инженерия)
Направление:
09.03.04. Программная инженерия
Кто читает:
Департамент программной инженерии
Где читается:
Факультет компьютерных наук
Когда читается:
1-й курс, 1-3 модуль
Формат изучения:
без онлайн-курса
Охват аудитории:
для всех кампусов НИУ ВШЭ
Преподаватели:
Горденко Мария Константиновна,
Лесовская Ирина Николаевна,
Максименкова Ольга Вениаминовна,
Манахова Мария Сергеевна,
Степанов Андрей Николаевич,
Чуйкин Николай Константинович
Язык:
русский
Кредиты:
7
Контактные часы:
200
Программа дисциплины
Аннотация
Курс является базовым для последующих курсов, посвященных созданию современных информационных систем и направлен на формирование у студентов основных знаний и навыков в области разработки программного обеспечения. С использованием современного языка программирования происходит знакомство с базовыми аспектами различных парадигм программирования. На практических занятиях с использованием современных интегрированных инструментальных сред закрепляются основные приемы программирования и вырабатывается навыки, необходимые для успешного решения профессиональных задач.
Цель освоения дисциплины
- Обеспечить студентов базовыми знаниями в области разработки программных продуктов.
- Заложить основы для последующих курсов, посвященных созданию современных информационных систем.
- Познакомить студентов с прогрессивными парадигмами программирования и механизмами их реализации в программных продуктах.
- Обучить студентов применению современных интегрированных инструментальных сред, предназначенных для разработки программ в интерактивном режиме.
- Привить студентам навыки исследовательской работы, предполагающей самостоятельное изучение специфических инструментов и средств, необходимых для решения именно той конкретной проблемы, которая в качестве задачи поставлена перед ними.
Планируемые результаты обучения
- Знать базовые типы и основные операции
- Знать возможности препроцессора и уметь использовать рефлексию
- Знать механизм исключений и уметь его использовать
- Знать основные отношения между классами
- Знать особенности структур и перечислений как значимых типов
- Знать принципы работы управляемого кода в .Net
- Знать синтаксис определения методов и их параметров
- Овладеть парадигмой многопоточного и асинхронного программирования
- Овладеть событийно-ориентированной разработкой приложений
- Представлять историю развития языков программирования и основные парадигмы
- Применять делегаты для организации безопасных ссылок на методы
- Применять потоки для работы с файловой системой
- Применять язык интегрированных запросов (LINQ)
- Создавать и применять итераторы в задачах обработки коллекций данных
- Уметь использовать анонимные методы и лямбда-выражения
- Уметь использовать обобщенную парадигму программирования
- Уметь использовать процедурную парадигму для решения задач
- Уметь использовать различные структуры данных (стек, очередь, словарь, список) для решения практических задач
- Уметь перегружать операции для пользовательских типов
- Уметь применять наследование классов для изменения их функциональности
- Уметь применять регулярные выражения для обработки текстовой информации
- Уметь применять сериализацию и десериализацию графов объектов
- Уметь применять условные операторы и операторы циклов
Содержание учебной дисциплины
- Введение. О языках программирования и дисциплине (классификация языков, парадигмы программирования)
- Принципы программирования на основе платформы .Net
- Данные и типы
- Операции и операторы
- Процедурная парадигма программирования
- Массивы в C#
- Методы как основа реализации функциональных членов класса
- Класс как тип. Объекты и их члены
- Наследование классов
- Исключения
- Делегаты
- Анонимные методы, лямбда-выражения
- События
- Абстрактные типы данных
- Отношения между классами: вложение, композиция, агрегация
- Интерфейсы
- Перечисления и структуры – типы значений
- Обобщенное программирование
- Потоковый ввод-вывод. Работа с файловой системой
- Сериализация
- Небезопасный код и препроцессорные директивы C#. Рефлексия и атрибуты
- Перегрузка операций
- Коллекции и итераторы
- Язык интегрированных запросов LINQ и элементы функционального программирования
Элементы контроля
- 3-Самостоятельная работа (СР3_7)Использование LINQ
- 1-Самостоятельная работа (СР1_2)Использование одномерных массивов для хранения значимых и ссылочных типов, передача параметров в методы.
- 1-Самостоятельная работа (СР1_3)Применение простейших статических методов для записи и чтения текстовых и бинарных файлов. Понятие кодировки.
- 2-Контест (КТ2_2)Классы и члены классов
- 2-Самостоятельная работа (СР2_3)Применение виртуальных методов
- 3-Самостоятельная работа (СР3_2)Использование лямбда-выражений и анонимных методов
- 3-Самостоятельная работа (СР3_4 )Использование обобщений
- 3-Самостоятельная работа (СР3_5)Использование сериализации
- 1-Контест (КТ1_2)Использование различных видов массивов (одномерные, многомерные, массивы массивов), реализация методов.
- 2-Контест (КТ2_3)АТД и их реализации, абстрактные классы и интерфейсы
- 3-Самостоятельная работа (СР3_1)Создание собственного класса исключений и его использование в библиотеке классов
- 1-Контест (КТ1_1)Применение операций языка (включая тернарную операцию) для решения простейших задач
- 1-Самостоятельная работа (СР1_1)Применение циклов (в том числе вложенных) и других операторов языка.
- 2-Самостоятельная работа (СР2_1)Применение класса, как контейнера для статических членов, декомпозиция на методы.
- 2-Самостоятельная работа (СР2_2)Применение наследования для расширения и/или изменения поведения объектов классов.
- 2-Контест (КТ2_1)Использование иерархии наследования в исключениях. Обработка ошибок времени исполнения
- Экзамен 1 (ЭО1)Экзамен с применением средств дистанционного обучения в форме контеста.
- Экзамен 2 (ЭО2)Тест в LMS Moodle (et.hse.ru) с асинхронным прокторингом, затем контрольные задачи (контест). Технические требования: web-камера, микрофон, наушники / колонки.
- Экзамен 3 (ЭО3)Тест в LMS Moodle (et.hse.ru) с асинхронным прокторингом, затем контрольные задачи (контест). Технические требования: web-камера, микрофон, наушники / колонки.
- 3-Самостоятельная работа (СР3_3)Использование стандартной модели обработки событий.
- 3-Самостоятельная работа (СР3_6)Интерфейс IEnumerable и использование итераторов
- 1-Контест (КТ1_3)Особенности применения сложных массивов (многомерных, вложенных) для решения задач.
Промежуточная аттестация
- 2022/2023 учебный год 1 модуль0.1 * 1-Контест (КТ1_1) + 0.4 * Экзамен 1 (ЭО1) + 0.1 * 1-Самостоятельная работа (СР1_2) + 0.1 * 1-Контест (КТ1_2) + 0.1 * 1-Самостоятельная работа (СР1_3) + 0.1 * 1-Самостоятельная работа (СР1_1) + 0.1 * 1-Контест (КТ1_3)
- 2022/2023 учебный год 2 модуль0.1 * 2-Контест (КТ2_3) + 0.1 * 2-Контест (КТ2_2) + 0.1 * 2-Самостоятельная работа (СР2_3) + 0.1 * 2-Контест (КТ2_1) + 0.4 * Экзамен 2 (ЭО2) + 0.1 * 2-Самостоятельная работа (СР2_1) + 0.1 * 2-Самостоятельная работа (СР2_2)
- 2022/2023 учебный год 3 модуль0.1 * 3-Самостоятельная работа (СР3_5) + 0.1 * 3-Самостоятельная работа (СР3_2) + 0.1 * 3-Самостоятельная работа (СР3_4 ) + 0.1 * 3-Самостоятельная работа (СР3_1) + 0.1 * 3-Самостоятельная работа (СР3_6) + 0.1 * 3-Самостоятельная работа (СР3_3) + 0.1 * 3-Самостоятельная работа (СР3_7) + 0.3 * Экзамен 3 (ЭО3)
Список литературы
Рекомендуемая основная литература
- C# 4.0. Полное руководство, Шилдт, Г., 2014
- CLR via C# : программирование на платформе Microsoft .NET Framework 4.5 на языке C#, Рихтер, Дж., 2017
- Биллиг, В. А. Основы программирования на C# : учебное пособие / В. А. Биллиг. — 2-е изд. — Москва : ИНТУИТ, 2016. — 574 с. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/100319 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
- Подбельский, В. В. Программирование. Базовый курс С# : учебник для вузов / В. В. Подбельский. — Москва : Издательство Юрайт, 2023. — 369 с. — (Высшее образование). — ISBN 978-5-534-10616-9. — Текст : электронный // Образовательная платформа Юрайт [сайт]. — URL: https://urait.ru/bcode/511747 (дата обращения: 28.08.2023).
Рекомендуемая дополнительная литература
- Марченко, А. Л. Введение в программирование на C# 2.0 : учебное пособие / А. Л. Марченко. — 2-е изд. — Москва : ИНТУИТ, 2016. — 642 с. — ISBN 5-94774-628-0. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/100697 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
- С#: программирование для профессионалов, Скит, Дж., 2011