Бакалавриат
2023/2024
Программирование на C#
Статус:
Курс обязательный (Программная инженерия)
Направление:
09.03.04. Программная инженерия
Кто читает:
Департамент программной инженерии
Где читается:
Факультет компьютерных наук
Когда читается:
1-й курс, 1-3 модуль
Формат изучения:
без онлайн-курса
Охват аудитории:
для своего кампуса
Преподаватели:
Бегичева Антонина Константиновна,
Глушко Александр Александрович,
Головин Леонид Олегович,
Лесовская Ирина Николаевна,
Максименкова Ольга Вениаминовна,
Резуник Людмила,
Соколовский Вацлав Антонович,
Чапкин Николай Сергеевич
Язык:
русский
Кредиты:
7
Контактные часы:
192
Программа дисциплины
Аннотация
Дисциплина является базовой для последующих курсов, посвященных созданию современных информационных систем и направлена на формирование у студентов основных знаний и навыков в области разработки программирования С использованием современного высокоуровневого языка программирования происходит знакомство с основополагающими понятиями теории формальных языков и базовыми аспектами различных парадигм программирования. На практических занятиях с использованием современных интегрированных инструментальных сред закрепляются основные приемы программирования и вырабатываются навыки, необходимые для успешного решения рабочих задач и непрерывного профессионального самосовершенствования.
Цель освоения дисциплины
- Обеспечить студентов базовыми знаниями в области разработки программных продуктов.
- Заложить основы для последующих курсов, посвященных созданию современных информационных систем.
- Познакомить студентов с прогрессивными парадигмами программирования и механизмами их реализации в программных продуктах.
- Обучить студентов применению современных интегрированных инструментальных сред, предназначенных для разработки программ в интерактивном режиме.
- Привить студентам навыки исследовательской работы, предполагающей самостоятельное изучение специфических инструментов и средств, необходимых для решения именно той конкретной проблемы, которая в качестве задачи поставлена перед ними.
Планируемые результаты обучения
- Знать базовые типы и основные операции
- Знать основные отношения между классами
- Знать особенности структур и перечислений как значимых типов
- Знать принципы работы управляемого кода в .Net
- Овладеть событийно-ориентированной разработкой приложений
- Представлять историю развития языков программирования и основные парадигмы
- Применять делегаты для организации безопасных ссылок на методы
- Применять потоки для работы с файловой системой
- Создавать и применять итераторы в задачах обработки коллекций данных
- Уметь использовать обобщенную парадигму программирования
- Уметь использовать процедурную парадигму для решения задач
- Уметь использовать различные структуры данных (стек, очередь, словарь, список) для решения практических задач
- Уметь перегружать операции для пользовательских типов
- Уметь применять наследование классов для изменения их функциональности
- Уметь применять сериализацию и десериализацию графов объектов
- Уметь применять условные операторы и операторы циклов
- Способен парсить и формировать для записи данные в CSV-формате
Содержание учебной дисциплины
- Введение. О языках программирования и дисциплине. Платформа .NET, C# как высокоуровневый язык программирования
- Понятие операторов и операций. Понятие алгоритма и алгоритмической конструкции. Реализация операторов, операций и алгоритмических конструкций в C#
- Процедурная парадигма (повторение) и статические элементы программ в C#
- Массивы в C#
- Строки и исключения
- Класс как тип. Объекты и их члены
- Наследование классов и полиморфизм
- Отношения между классами. Абстрактный класс.
- Исключения
- Запрет наследования. Методы расширения и перегрузка операций
- Интерфейсы
- АТД и основы рефлексии типов
- Типы значений: перечисления и структуры, кортежи значений
- Делегаты
- Анонимные методы и лямбда-выражения
- События
- Обобщенное программирование
- Потоковый ввод-вывод. Работа с файловой системой
- Сериализация
- Небезопасный код и препроцессорные директивы C#. Рефлексия и атрибуты
- Коллекции и итераторы
- Язык интегрированных запросов LINQ и элементы функционального программирования
- Параллельные вычисления. Асинхронность.
Элементы контроля
- СР_1_1Проверочная самостоятельная работа по написанию программного кода в рамках задания, 20-30 минут. Выявление уровня текущей подготовки по типам данных и основным операциям.
- СР_1_2Проверочная самостоятельная работа по написанию программного кода в рамках задания, 20-30 минут. Подготовка к проекту, обратная связь по самостоятельной требуется для повышения качества выполнения проекта.
- СР_1_3Самостоятельная (20-30 минут) проводим в конце семинара. Проверочная по массивам, строкам и методам. СР позволяет получить обратную связь перед контрольной работой
- ДЗ_1Домашнее задание на завитие навыков программирование и самостоятельное освоение учебного материала.
- КР_1Итоговая контрольная работа по материалам первого модуля.
- ДЗ_2_1Домашняя работа по обработке данных CSV-файлов (по материалам модуля 1)
- СР_2_1Самостоятельная (20-30 минут) даём в конце семинара. Самостоятельная работа по написанию класса. Обратная связь по СР позволяет улучшить результаты проектного домашнего задания
- ДЗ_2_2Выдаем проект по наследованию и абстрактному классу (в прошлом году были простенькие варианты, поправить)
- СР_2_2
- ДЗ_2_3
- КР_2
- КР_3_1При выполнении работы на компьютере студента используется асинхронный прокторинг. На рабочем компьютере студента должно быть установлено ПО OBS Studio, при помощи которого производится запись всего экрана и всего процесса выполнения работы, а именно: 1) Демонстрация отсутствия открытых мессенджеров и социальных сетей, доп. вкладок и процессов 2) Весь процесс разработки программы, в рамках задания, включая все 3) Загрузка результатов работы в место, требуемое преподавателем После загрузки работы, запись останавливается и загружается студентом на Яндекс.Диск, доступный по корпоративной почте студента НИУ ВШЭ. Ссылка прикладывается в качестве комментария в SmartLMS или другим способом по указанию преподавателя при неработоспособности SmartLMS.
- ДЗ_3_1
- КР_3_2При выполнении работы на компьютере студента используется асинхронный прокторинг. На рабочем компьютере студента должно быть установлено ПО OBS Studio, при помощи которого производится запись всего экрана и всего процесса выполнения работы, а именно: 1) Демонстрация отсутствия открытых мессенджеров и социальных сетей, доп. вкладок и процессов 2) Весь процесс разработки программы, в рамках задания, включая все 3) Загрузка результатов работы в место, требуемое преподавателем После загрузки работы, запись останавливается и загружается студентом на Яндекс.Диск, доступный по корпоративной почте студента НИУ ВШЭ. Ссылка прикладывается в качестве комментария в SmartLMS или другим способом по указанию преподавателя при неработоспособности SmartLMS.
- ДЗ_3_2
- ДЗ_3_3
- ЭТ_1
- ЭТ_2
- ЭТ_3
Промежуточная аттестация
- 2023/2024 учебный год 1 модульН1 = 0,2* (СР_1_1 +СР_1_2 + СР_1_3 + ДЗ_1 + КР_1) НО1 = ОКРУГЛЕНИЕ (0,2* (СР_1_1 +СР_1_2 + СР_1_3 + ДЗ_1 + КР_1)) ИО1 = ОКРУГЛЕНИЕ (0,8 * Н1+ 0,2 * ЭТ1)
- 2023/2024 учебный год 2 модульН2 = 0,1* (СР_2_1 +СР_2_2) + 0,2 * ( ДЗ_2_1 + ДЗ_2_2 + ДЗ_2_3 + КР_2) НО2 = ОКРУГЛЕНИЕ (0,1* (СР_2_1 +СР_2_2) + 0,2 * ( ДЗ_2_1 + ДЗ_2_2 + ДЗ_2_3 + КР_2)) ИО2 = ОКРУГЛЕНИЕ (0,8 * Н2 + 0,2 * ЭТ)
- 2023/2024 учебный год 3 модульН3 = 0,2 * ( ДЗ_3_1 + ДЗ_3_2 + ДЗ_3_3 + КР_3_1 + КР_3_2) НО3 = ОКРУГЛЕНИЕ (0,2 * ( ДЗ_3_1 + ДЗ_3_2 + ДЗ_3_3 + КР_3_1+КР_3_2)) ИО3 = ОКРУГЛЕНИЕ (0,8 * Н3 + 0,2 * ЭТ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 (дата обращения: 27.08.2024).
Рекомендуемая дополнительная литература
- Марченко, А. Л. Введение в программирование на C# 2.0 : учебное пособие / А. Л. Марченко. — 2-е изд. — Москва : ИНТУИТ, 2016. — 642 с. — ISBN 5-94774-628-0. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/100697 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
- С#: программирование для профессионалов, Скит, Дж., 2011