Язык программирования C#
2026-2027 учебный год
Источники
-
metanit.com
Полное руководство по C# 14 и .NET 10
-
youtube.com
Youtube-канал Тимофей Хирьянов, 2020 Практика программирования на Python 3. 15 видео.
Литература
Основная
-
urait.ru
Казанский, А. А. Программирование на C# : учебное пособие для вузов / А. А. Казанский. — 3-е изд., перераб. и доп. — Москва : Издательство Юрайт, 2026. — 181 с.
-
iprbookshop.ru
Агапов, В. П. Основы программирования на языке С# : учебное пособие / В. П. Агапов. — Москва : Московский государственный строительный университет, ЭБС АСВ, 2012. — 128 с.
-
iprbookshop.ru
Васильев, В. Н. Основы программирования на языке C# : учебное пособие / В. Н. Васильев. — Волгоград : Волгоградский институт бизнеса, 2010. — 70 с.
-
urait.ru
Гниденко, И. Г. Технологии и методы программирования : учебник для вузов / И. Г. Гниденко, Ф. Ф. Павлов, Д. Ю. Федоров. — 2-е изд., перераб. и доп. — Москва : Издательство Юрайт, 2026. — 241 с.
Глава 7. Интеграция языков программирования Python и С
-
iprbookshop.ru
Котов, О. М. Язык C#. Краткое описание и введение в технологии программирования : учебное пособие / О. М. Котов. — Екатеринбург : Уральский федеральный университет, ЭБС АСВ, 2014. — 208 с.
-
iprbookshop.ru
Туральчук, К. А. Параллельное программирование с помощью языка C# : учебное пособие / К. А. Туральчук. — 4-е изд. — Москва : Интернет-Университет Информационных Технологий (ИНТУИТ), Ай Пи Ар Медиа, 2024. — 189 с.
-
Загрузить.
Ассет для Unity - Free Trees.unitypackage (288 KB)
-
Загрузить.
Ассет для Unity - Cartoon Cat.unitypackage (3 MB)
-
Загрузить.
Ассет для Unity - SimplePoly City - Low Poly Assets.unitypackage (3.4 MB)
-
Загрузить.
Ассет для Unity - Low Poly City Pack Collection 3D Model-Demo.unitypackage (1.2 MB)
-
Загрузить.
Add-On для Blender - Blender-OSM. It provides a few clicks import of Google 3D cities, OpenStreetMap and terrain data with global coverage. (483 KB)
-
Перейти.
GitHub - Blender-OSM, terrain and more addons.
-
Загрузить.
Add-On для Blender - Buildify is a geometry nodes library for easy building creation. (5.4 MB)
-
Загрузить.
Модель для Blender - Кампус ГИПУ glazov1.blend. (877 KB)
-
Загрузить.
Модель для Blender и Unity - Кампус ГИПУ glazov1.fbx. (63 KB)
Дополнительная
-
iprbookshop.ru Осипов, Д. Л. Технологии проектирования баз данных. — Москва : ДМК Пресс, 2019. — 498 c.
-
Перейти ГОСТ 19.101-77 «Единая система программной документации (ЕСПД). Виды программ и программных документов»
-
Перейти ГОСТ 7.32-2001 «Отчет о научно-исследовательской работе. Структура и правила оформления.»
СЕМЕСТР 3
Лекция 1
Тема. Основы объектно-ориентированного программирования
Жизненные циклы объектов. Состояние, событие, действие. Правила переходов в состояния. Таблица переходов в состояния. Жизненные циклы связей, конкурирующие связи. Модель взаимодействия объектов. Модели процессов, процессы и потоки данных. Модель доступа к объектам, диаграммы потоков данных действий. Рабочие продукты объектно-ориентированного анализа.
Лекция 2
Тема. Интегрированная среда разработки
Требования к аппаратным и программным средствам интегрированной среды разработки. Интерфейс среды разработки: характеристика, основные окна, инструменты, объекты. Форма и размещение на ней управляющих элементов. Панель компонентов и их свойства. Окно кода проекта. Состав и характеристика проекта. Выполнение проекта. Настройка среды и параметров проекта.
Лекция 3
Тема. Этапы разработки приложения
Проектирование объектно-ориентированного приложения. Создание интерфейса пользователя. Программирование приложения. Тестирование, отладка приложения. Создание документации.
Лекция 4
Тема. Создание классов
Понятия метод, свойство, событие. Понятия инкапсуляция, наследование, полиморфизм. Проектирование класса. Графическое представление класса. Члены класса: поля, конструкторы, методы. Модификаторы доступа.
Лекция 5
Тема. Иерархия классов
Классы объектно-ориентированного языка программирования: виды, назначение, свойства, методы, события. Объявление класса, свойств и методов экземпляра класса. Наследование. Перегрузка методов.
Лекция 6
Тема. Визуальное событийно-управляемое программирование
Основные компоненты (элементы управления) интегрированной среды разработки, их состав и назначение. Дополнительные элементы управления. Свойства компонентов (элементов управления). Виды свойств. Синтаксис определения свойств. Категория свойств. Назначение свойств и их влияние на результат. Управление объектом через свойства. События компонентов (элементов управления), их сущность и назначение. Создание процедур на основе событий. Процедуры, определённые пользователем: синтаксис, передача аргументов. Вызов событий.
Лекция 7
Тема. Разработка оконного приложения
Разработка функционального интерфейса приложения. Создание интерфейса приложения. Разработка функциональной схемы работы приложения. Создание процедур обработки событий. Компиляция и запуск приложения.
Лекция 8
Тема. Шаблоны проектирования
Классификация шаблонов проектирования. Шаблоны генерации. Структурные шаблоны. Шаблоны поведения. Шаблон модель, представление, контроллер.
3.3. Занятия семинарского типа
Учебным планом не предусмотрены
3.4. Практические занятия
СЕМЕСТР 3
Практическое занятие 1
Тема. Основы объектно-ориентированного программирования
Перечень заданий.
Настройка среды и параметров проекта.
Проектирование объектно-ориентированного приложения.
Создание интерфейса пользователя.
Программирование приложения.
Тестирование, отладка приложения.
Создание документации.
Выполнение проекта.
Управление выполнением программы.
Используя общий диалог, написать программу, позволяющую сохранять указанный пользователем текст в файле и считывать сохраненный текст из файла.
Создать проект, позволяющий добавлять записи в простой список и удалять их.
Разработать класс, объекты которого обладают методами, позволяющими заполнить одномерный массив случайными неповторяющимися числами, вывести его на экран и упорядочить.
Практическое занятие 2
Тема. Основы объектно-ориентированного программирования
Перечень заданий.
Код окна приложения.
Код главного программного модуля.
Код классов приложения.
Файлы ресурсов.
Автоматическая генерация кода средой разработки.
Файлы сборки и исполняемые файлы.
Практическое занятие 3
Тема. Основы объектно-ориентированного программирования
Перечень заданий.
Формат XML в файлах проекта.
Добавление элементов в проект.
Построить график функции в выбранной пользователем системе координат.
Создать проект, позволяющий сохранять произвольный текст в текстовом файле с указанным пользователем именем. Загружать текст из файла.
Практическое занятие 4
Тема. Интегрированная среда разработки
Перечень заданий.
Тестирование корректности ввода данных.
Автоматизация тестирования.
Составление тестовых наборов данных.
Программа для генерации тестовых наборов данных.
Разработать класс, объекты которого обладают методами, позволяющими вывести на экран в любую его точку правильный многоугольник произвольного размера с произвольным количеством вершин.
Разработать класс, объекты которого обладают методами, позволяющими вывести на экран график функции. График должен выводиться в прямоугольную область указанного размера.
Объект должен иметь свойство, определяющее величину единичного отрезка.
Практическое занятие 5
Тема. Интегрированная среда разработки
Перечень заданий.
Основные элементы управления интегрированной среды разработки, их состав и назначение.
Дополнительные элементы управления.
Свойства компонентов.
Виды свойств.
Синтаксис определения свойств.
Практическое занятие 6
Тема. Интегрированная среда разработки
Перечень заданий.
Категория свойств.
Назначение свойств и их влияние на результат.
Управление объектом через свойства.
Составить программу, генерирующую цвет по трем его составляющим (красный, зеленый, синий).
Написать программу, моделирующую движение броуновской частицы.
Практическое занятие 7
Тема. Этапы разработки приложения
Перечень заданий.
Программирование приложения.
Тестирование, отладка приложения.
Создание документации.
Обзор основных компонентов.
Компонент кнопка.
Компонент надпись.
Компонент поле ввода.
Компонент флажок.
Компонент переключатель.
Компонент поле со списком.
Контейнер компонентов - объединение элементов.
Компонент полоса прокрутки.
Компонент список с флажками.
Компонент главное меню.
Создать проект, реализующий часы с «будильником».
Разработать класс, объекты которого фиксируют время своего существования.
Практическое занятие 8
Тема. Этапы разработки приложения
Перечень заданий.
Диалоговые окна открытия и сохранения файлов.
Диалоговое окно установки шрифта.
Диалоговое окно выбора основного и фонового цветов.
Компонент панель инструментов.
Компонент строка состояния.
Набор вкладок.
Практическое занятие 9
Тема. Этапы разработки приложения
Перечень заданий.
Класс исключений.
Стандартные механизмы обработки исключений.
Блок try ... catch ... finally.
Примеры обработки исключений.
Разработать проект, моделирующий арифметический калькулятор. Калькулятор должен выполнять следующие операции: сложение, вычитание, умножение, деление, возведение в квадрат и извлечение квадратного корня как для целых, так и для вещественных чисел.
Проект содержит три текстовых окна. Используя буфер обмена, организовать обмен информацией между приложениями.
Практическое занятие 10
Тема. Создание классов
Перечень заданий.
Организация доступа к закрытым полям класса.
Понятие интерфейса класса.
Абстрактные классы.
Способы создания объектов - экземпляров классов.
Массивы объектов.
Списки объектов.
Практическое занятие 11
Тема. Создание классов
Перечень заданий.
Передача параметров по ссылке и по значению.
Модификаторы ref и out.
Область видимости переменных и других идентификаторов.
Виртуальные методы.
Практическое занятие 12
Тема. Создание классов
Перечень заданий.
Перегрузка методов.
Вызовы методов.
Статические методы.
Передача массива в качестве параметров, модификатор params.
Практическое занятие 13
Тема. Иерархия классов
Перечень заданий.
Интерфейс класса и его реализация.
Физическое представление иерархии классов в заголовочных файлах.
Разработать класс, объекты которого обладают методами, позволяющими вывести на экран анимацию вращающегося шарика. Координата точки – оси вращения, скорость вращения, радиус вращения и направление вращения задаются.
Используя объектно-ориентированный подход, написать программу, моделирующую движение броуновских частиц.
Практическое занятие 14
Тема. Иерархия классов
Перечень заданий.
Создание библиотеки классов.
Перегрузка методов.
Разработать компонент «Таймер», выводящий время, прошедшее с момента запуска таймера. Компонент должен иметь метод, возвращающий текущее время, обрабатывать событие, связанное с включением и выключением таймера и метод, обнуляющий таймер.
Практическое занятие 15
Тема. Иерархия классов
Перечень заданий.
Графическое представление иерархии классов.
Описать класс, объекты которого связываются с текстовыми окнами, хранят введенную пользователем в окно информацию, обладают методом сортировки символов в текстовых окнах в алфавитном порядке и методом восстанавливающем текст в окне после сортировки.
Практическое занятие 16
Тема. Визуальное событийно-управляемое программирование
Перечень заданий.
Синтаксис определения свойств.
Категория свойств.
Назначение свойств и их влияние на результат.
Управление объектом через свойства.
Практическое занятие 17
Тема. Визуальное событийно-управляемое программирование
Перечень заданий.
Добавление формы в проект.
Свойства и события формы. Обработка событий формы.
Практическое занятие 18
Тема. Визуальное событийно-управляемое программирование
Перечень заданий.
Передача фокусам между формами.
Сворачивание, сокрытие и закрытие окна приложения.
Практическое занятие 19
Тема. Разработка оконного приложения
Перечень заданий.
Разработка функциональной схемы работы приложения.
Создание процедур обработки событий.
Компиляция и запуск приложения.
Разработать компонент, представляющий собой окно, в котором можно рисовать окружности. Компонент должен иметь свойство, определяющее цвет «графического пера».
Создать проект, моделирующий работу секундомера. Секундомер должен иметь циферблат с минутной и секундной стрелками, метку и одну командную кнопку.
Практическое занятие 20
Тема. Разработка оконного приложения
Перечень заданий.
Окна вывода сообщений.
Окна ввода данных.
Диалоговые окна открытия и сохранения файлов.
Использование масок для списка обрабатываемых файлов.
Диалоговые окна установки шрифта и задания цвета компонента.
Создание пользовательских диалоговых окон.
События от мыши и клавиатуры.
Событие Click.
Добавление обработчика.
Практическое занятие 21
Тема. Разработка оконного приложения
Перечень заданий.
Аргументы, передаваемые в параметры обработчика.
Разработать компонент, предлагающий интерфейс для ввода данных и вывода решения квадратного уравнения.
Разработайте проект, имитирующий работу простейшего графического редактора.
Практическое занятие 22
Тема. Шаблоны проектирования
Перечень заданий.
Реализуйте на языке C# пример применения паттерна Стратегия по учебнику «Паттерны проектирования».
Компонент главное меню.
Диалоговые окна открытия и сохранения файлов.
Диалоговое окно установки шрифта.
Диалоговое окно выбора основного и фонового цветов.
Компонент панель инструментов.
Компонент строка состояния.
Набор вкладок.
Шаблон модель, представление, контроллер.
Практическое занятие 23
Тема. Шаблоны проектирования
Перечень заданий.
Реализуйте на языке C# пример применения паттерна Наблюдатель по учебнику «Паттерны проектирования».
Разработка диаграммы состояний.
Диаграмма прецедентов для оконного приложения.
Практическое занятие 24
Тема. Шаблоны проектирования
Перечень заданий.
Разработать компонент, предлагающий интерфейс для отображения одномерного массива и имеющий методы для заполнения, очистки и сортировки.
Разработать компонент «Переключатель», имеющий пять стационарных состояний. Компонент должен иметь свойство для установки состояния и обрабатывать событие, связанное с выбором другого состояния.
3.5. Лабораторные работы
Учебным планом не предусмотрены
3.6. Контроль самостоятельной работы
СЕМЕСТР 3
Контроль самостоятельной работы 1
Тема. Иерархия классов
Перечень заданий.
Создать консольное приложение простейший калькулятор.
Создать консольное приложение, которое выводит справочную информацию.
Оформить исходный код с помощью комментариев.
Создать проект, позволяющий сохранять текст, набранный в текстовом окне в файле данных, очищать текстовое окно и загружать в него сохраненный текст.
Имеется десять флажков. Создать проект, позволяющий сохранять состояние флажков, обнулять и восстанавливать сохраненное состояние.
Организовать анимацию процесса движения шарика по окружности.
Разработать класс, объекты которого обладают методами, позволяющими вывести на экран график функции. График должен выводиться в прямоугольную область указанного размера. Объект должен иметь свойство, определяющее величину единичного отрезка.
Контроль самостоятельной работы 2
Тема. Визуальное событийно-управляемое программирование
Перечень заданий.
Программа должна выводить в консоль натуральные числа от 1 до N, где N - константа, заданная в программе.
Создать простое оконное приложение с обработчиком событий от кнопки.
В приложении 5 кнопок, при щелчке по каждой кнопке в окне на компоненте pictureBox рисуется одна фигура: линия, прямоугольник, треугольник, эллипс, дуга.
Контроль самостоятельной работы 3
Тема. Разработка оконного приложения
Перечень заданий.
Создать проект, позволяющий построить треугольник по координатам вершин.
Построить на экране правильный N-угольник. Количество вершин и радиус окружности, на которой они расположены, указываются пользователем.
Составить программу, моделирующую работу светофора.
Решить задачу о десяти флажках с помощью циклов и указателей на экземпляры класс CheckBox.
В окне приложения разместите в столбик 5 кнопок с надписями button1, ..., button5. С помощью цикла for each выведите номера кнопок. Цикл выполняется в обработчике 1-й кнопке. Объясните полученный результат.
Контроль самостоятельной работы 4
Тема. Шаблоны проектирования
Перечень заданий.
Создать проект, позволяющий построить треугольник по координатам вершин.
Построить на экране правильный N-угольник. Количество вершин и радиус окружности, на которой они расположены, указываются пользователем.
Составить программу, моделирующую работу светофора.
Решить задачу о десяти флажках с помощью циклов и указателей на экземпляры класс CheckBox.
В окне приложения разместите в столбик 5 кнопок с надписями button1, ..., button5. С помощью цикла for each выведите номера кнопок. Цикл выполняется в обработчике 1-й кнопке. Объясните полученный результат.