• A
  • A
  • A
  • ABC
  • ABC
  • ABC
  • А
  • А
  • А
  • А
  • А
Regular version of the site

C# Programming

2023/2024
Academic Year
RUS
Instruction in Russian
7
ECTS credits
Course type:
Compulsory course
When:
1 year, 1-3 module

Instructors

Программа дисциплины

Аннотация

Курс является базовым для последующих курсов, посвященных созданию современных информационных систем и направлен на формирование у студентов основных знаний и навыков в области разработки программного обеспечения. С использованием современного языка программирования происходит знакомство с базовыми аспектами различных парадигм программирования. На практических занятиях с использованием современных интегрированных инструментальных сред закрепляются основные приемы программирования и вырабатывается навыки, необходимые для успешного решения профессиональных задач.
Цель освоения дисциплины

Цель освоения дисциплины

  • Обеспечить студентов базовыми знаниями в области разработки программных продуктов.
  • Заложить основы для последующих курсов, посвященных созданию современных информационных систем.
  • Познакомить студентов с прогрессивными парадигмами программирования и механизмами их реализации в программных продуктах.
  • Обучить студентов применению современных интегрированных инструментальных сред, предназначенных для разработки программ в интерактивном режиме.
  • Привить студентам навыки исследовательской работы, предполагающей самостоятельное изучение специфических инструментов и средств, необходимых для решения именно той конкретной проблемы, которая в качестве задачи поставлена перед ними.
Планируемые результаты обучения

Планируемые результаты обучения

  • Знать базовые типы и основные операции
  • Знать возможности препроцессора и уметь использовать рефлексию
  • Знать механизм исключений и уметь его использовать
  • Знать основные отношения между классами
  • Знать особенности структур и перечислений как значимых типов
  • Знать принципы работы управляемого кода в .Net
  • Знать синтаксис определения методов и их параметров
  • Овладеть парадигмой многопоточного и асинхронного программирования
  • Овладеть событийно-ориентированной разработкой приложений
  • Представлять историю развития языков программирования и основные парадигмы
  • Применять делегаты для организации безопасных ссылок на методы
  • Применять потоки для работы с файловой системой
  • Применять язык интегрированных запросов (LINQ)
  • Создавать и применять итераторы в задачах обработки коллекций данных
  • Уметь использовать анонимные методы и лямбда-выражения
  • Уметь использовать обобщенную парадигму программирования
  • Уметь использовать процедурную парадигму для решения задач
  • Уметь использовать различные структуры данных (стек, очередь, словарь, список) для решения практических задач
  • Уметь перегружать операции для пользовательских типов
  • Уметь применять наследование классов для изменения их функциональности
  • Уметь применять регулярные выражения для обработки текстовой информации
  • Уметь применять сериализацию и десериализацию графов объектов
  • Уметь применять условные операторы и операторы циклов
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Введение. О языках программирования и дисциплине (классификация языков, парадигмы программирования)
  • Принципы программирования на основе платформы .Net
  • Данные и типы
  • Операции и операторы
  • Процедурная парадигма программирования
  • Массивы в 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 (дата обращения: 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