• A
  • A
  • A
  • ABC
  • ABC
  • ABC
  • А
  • А
  • А
  • А
  • А
Regular version of the site
Article
Statistical testing of segment homogeneity in classification of piecewise-regular objects

Savchenko A., Belova N. S.

International Journal of Applied Mathematics and Computer Science. 2015. Vol. 25. No. 4. P. 915-925.

Article
Reconstruction of a word from a finite set of its subwords under the unit shift hypothesis. I. Reconstruction without for bidden words1

Smetanin Y., Ulyanov M.

Cybernetics and Systems Analysis. 2015. Vol. 50. No. 1. P. 148-156.

Article
VTMine Framework as Applied to Process Mining Modeling

Sergey Andreevich Shershakov.

International Journal of Computer and Communication Engineering. 2015. Vol. 4. No. 3. P. 166-179.

C# Programming

2021/2022
Academic Year
RUS
Instruction in Russian
7
ECTS credits
Type:
Compulsory course
When:
1 year, 1-3 module

Instructors

Dudarev, Victor

Dudarev, Victor

Stepanov, Andrey

Stepanov, Andrey

Chuykin, Nikolay

Chuykin, Nikolay

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

Аннотация

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

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

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

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

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

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

  • Введение. О языках программирования и дисциплине (классификация языков, парадигмы программирования)
  • Принципы программирования на основе платформы .Net
  • Данные и типы
  • Операции и операторы
  • Процедурная парадигма программирования
  • Массивы и их виды
  • Методы как основа реализации функциональных членов класса
  • Класс как тип. Объекты и их члены
  • Наследование классов
  • Визуальное проектирование приложений Windows Forms
  • Исключения
  • Делегаты
  • Анонимные методы, лямбда-выражения
  • События
  • Абстрактные типы данных
  • Отношения между классами: вложение, композиция, агрегация
  • Интерфейсы
  • Перечисления и структуры – типы значений
  • Обобщенное программирование
  • Потоковый ввод-вывод. Работа с файловой системой
  • Сериализация
  • Небезопасный код и препроцессорные директивы C#. Рефлексия и атрибуты
  • Перегрузка операций
  • Коллекции и итераторы
  • Язык интегрированных запросов LINQ и элементы функционального программирования
  • Асинхронные методы и параллельные программы
  • Регулярные выражения
  • Введение в базы данных
  • Введение в Web-приложения
Элементы контроля

Элементы контроля

  • неблокирующий Работа на семинаре (СР1_1)
    Применение операций языка (включая тернарную операцию) для решения простейших задач
  • неблокирующий Работа на семинаре (СР1_2)
    Применение циклов (в том числе вложенных) и других операторов языка.
  • неблокирующий Работа на семинаре (СР1_3 )
    Использование различных видов массивов (одномерные, многомерные, массивы массивов).
  • неблокирующий Экзамен 1 (ЭО1)
    Дистанционный экзамен в форме контеста.
  • неблокирующий Работа на семинаре (СР2_1)
    Применение класса, как контейнера для статических членов, декомпозиция на методы.
  • неблокирующий Работа на семинаре (СР2_2)
    Применение наследования для расширения и/или изменения поведения объектов классов.
  • неблокирующий Работа на семинаре (СР2_3)
    Применение виртуальных методов
  • блокирующий Экзамен (ЭО2)
    Тест в LMS Moodle (et.hse.ru) с асинхронным прокторингом, затем контрольные задачи (контест). Технические требования: web-камера, микрофон, наушники / колонки.
  • неблокирующий Работа на семинаре (СР3_1)
    Создание собственного класса исключений и его использование в библиотеке классов
  • неблокирующий Работа на семинаре (СР3_2)
    Использование лямбда-выражений и анонимных методов
  • неблокирующий Работа на семинаре (СР3_3)
    Использование стандартной модели обработки событий.
  • неблокирующий Работа на семинаре (СР3_4 )
    Использование обобщений
  • неблокирующий Работа на семинаре (СР3_5)
    Использование сериализации
  • неблокирующий Работа на семинаре (СР3_6)
    Интерфейс IEnumerable и использование итераторов
  • неблокирующий Работа на семинаре (СР3_7)
    Использование LINQ
  • блокирующий Экзамен (ЭО3)
    Тест в LMS Moodle (et.hse.ru) с асинхронным прокторингом, затем контрольные задачи (контест). Технические требования: web-камера, микрофон, наушники / колонки.
  • неблокирующий Работа на семинаре (СР1_4)
    Использование одномерных массивов для хранения значимых и ссылочных типов.
  • неблокирующий Работа на семинаре (СР1_5)
    Особенности применения сложных массивов (многомерных, вложенных) для решения задач.
  • неблокирующий Работа на семинаре (СР1_6)
    Применение простейших статических методов для записи и чтения текстовых и бинарных файлов. Понятие кодировки.
  • неблокирующий Работа на семинаре (СР2_4)
    Использование иерархии наследования в исключениях. Обработка ошибок времени исполнения
  • неблокирующий Работа на семинаре (СР2_5)
    Разработка приложений с графическим пользовательским интерфейсом на основе технологии Windows Forms
  • неблокирующий Работа на семинаре (СР2_6)
    Разработка приложений с графическим пользовательским интерфейсом на основе технологии Windows Presentation Foundation c использованием декларативной XAML-разметки
Промежуточная аттестация

Промежуточная аттестация

  • 2021/2022 учебный год 1 модуль
    По всем видам работ выставляется 10-балльная оценка. Используются следующие условные обозначения: НО – накопленная оценка i-го модуля; СР_ – оценка самостоятельной работы j в i-м модуле (может быть дана в форме контеста, письменного задания cо взаимным оцениванием или теста); ЭК – оценка за экзаменационную контрольную работу (первая часть экзамена) i-го модуля; ЭТ – оценка за экзаменационный тест (вторая часть экзамена) i-го модуля; ЭО – экзаменационная оценка (является блокирующей после 1-го модуля) i-го модуля (задача и/или тест); ИО – итоговая оценка i-го модуля; Десятибалльная итоговая оценка в конце 1-го модуля (1-го семестра): ИО1 = Округление(0,5*ЭО1 + 0,5*НО1). НО1 = (CP1_1 + CP1_2 + CP1_3 + CP1_4 + CP1_5 + CP1_6) / 6. Если экзамен состоит из двух частей (контрольная и тест), то оценка вычисляется по формуле: ЭО1 = 0,5*ЭК1 + 0,5*ЭТ1, если min(ЭК1; ЭТ1)>=3,5; иначе ЭО1 = min(ЭК1; ЭТ1). Здесь ЭК1 - экзаменационная контрольная первого модуля; ЭТ1 - экзаменационный тест первого модуля. Допускается добавление в накопленную оценку студента бонусных баллов за проявление активности на занятиях (решение доп. задач, подготовка докладов и т.п.). Виды активностей и цели могут быть определены преподавателем практических занятий самостоятельно, однако, суммарный вклад бонусных баллов не может поднять накопленную оценку более чем на 2 балла (при этом накопленная оценка не может превысить 10 баллов). При пересдаче экзамена ИО = Округление(0,5*ЭО + 0,5*НО). ЭО = 0,5*ЭК + 0,5*ЭТ, если min(ЭК; ЭТ)>=3,5; иначе ЭО = min(ЭК; ЭТ). Округление оценок, проставляемых в ведомости (ИО), выполняется до целых значений по правилам математики (до ближайшего целого). При выставлении итоговых оценок по 5-балльной шкале используется правило: Если ИО <= 8, то ИО = 5 (“отлично”); Если 6 <= ИО < 8, то ИО = 4 (“хорошо”); Если 4 <= ИО < 6, то ИО = 3 (“удовлетворительно”); Если ИО < 4, то ИО = 2 (“неудовлетворительно”). Если экзамен состоит их двух частей (ЭК и ЭТ), то при отсутствии студента на одной из частей экзамена по уважительной причине – оценка, полученная по другой части экзамена, сохраняется. Отдельно, в специально выделенное время, пересдается только та часть экзамена, которая пропущена по уважительной причине. Итоговая оценка за третий модуль (ИО3) выставляется в диплом. Возможно проведение контрольных и экзаменационных мероприятий в дистанционном режиме в соответствии с текущей эпидемиологической ситуацией и соответствующими нормативными актами.
  • 2021/2022 учебный год 2 модуль
    По всем видам работ выставляется 10-балльная оценка. Используются следующие условные обозначения: НО – накопленная оценка i-го модуля; СР_ – оценка самостоятельной работы j в i-м модуле (может быть дана в форме контеста, письменного задания cо взаимным оцениванием или теста); ЭК – оценка за экзаменационную контрольную работу (первая часть экзамена) i-го модуля; ЭТ – оценка за экзаменационный тест (вторая часть экзамена) i-го модуля; ЭО – экзаменационная оценка (является блокирующей после первого модуля) i-го модуля (задача и/или тест); ИО – итоговая оценка i-го модуля; Десятибалльная итоговая оценка семестра в конце 2-го модуля (1-го семестра): ИО2 = Округление(0,5*ЭО2 + 0,5*НО2). НО2 = (CP2_1 + CP2_2 + CP2_3 + CP2_4 + CP2_5 + CP2_6) / 6. Если экзамен состоит из двух частей (контрольная и тест), то оценка вычисляется по формуле: ЭО2 = 0,5*ЭК2 + 0,5*ЭТ2, если min(ЭК2; ЭТ2)>=3,5; иначе ЭО2 = min(ЭК2; ЭТ2). Здесь ЭК2 - экзаменационная контрольная второго модуля; ЭТ2 - экзаменационный тест второго модуля. Допускается добавление в накопленную оценку студента бонусных баллов за проявление активности на занятиях (решение доп. задач, подготовка докладов и т.п.). Виды активностей и цели могут быть определены преподавателем практических занятий самостоятельно, однако, суммарный вклад бонусных баллов не может поднять накопленную оценку более чем на 2 балла (при этом накопленная оценка не может превысить 10 баллов). Экзаменационный тест (ЭТ) состоит из 40 вопросов и оценивается исходя из максимального количества правильных ответов (NMAX), полученных при прохождении теста всеми студентами курса. Оценка вычисляется по следующим правилам (N – количество правильных ответов): Если студент предоставил 10 и менее правильных ответов, то оценка за тест N/4. Если N>10 и 31<=NMAX<=40 то N*10/NMAX Если N>10 и 26<=NMAX<=30 то N*9/NMAX Если N>10 и 21<=NMAX<=25 то N*8/NMAX Если N>10 и 16<=NMAX<=20 то N*7/NMAX Если N>10 и 14<=NMAX<=15 то N*6/NMAX Если N>10 и 12<=NMAX<=13 то N*5/NMAX Если N>10 и NMAX=11 то 4 При пересдаче экзамена ИО = Округление(0,5*ЭО + 0,5*НО). ЭО = 0,5*ЭК + 0,5*ЭТ, если min(ЭК; ЭТ)>=3,5; иначе ЭО = min(ЭК; ЭТ). Положительный результат, показанный на сдаче экзамена во втором модуле, может быть зачтен за результат пересдачи экзамена в первом модуле. Округление оценок, проставляемых в ведомости (ИО), выполняется до целых значений по правилам математики (до ближайшего целого). При выставлении итоговых оценок по 5-балльной шкале используется правило: Если ИО <= 8, то ИО = 5 (“отлично”); Если 6 <= ИО < 8, то ИО = 4 (“хорошо”); Если 4 <= ИО < 6, то ИО = 3 (“удовлетворительно”); Если ИО < 4, то ИО = 2 (“неудовлетворительно”). Если экзамен состоит их двух частей (ЭК и ЭТ), то при отсутствии студента на одной из частей экзамена по уважительной причине – оценка, полученная по другой части экзамена, сохраняется. Отдельно, в специально выделенное время, пересдается только та часть экзамена, которая пропущена по уважительной причине. Итоговая оценка за третий модуль (ИО3) выставляется в диплом. Возможно проведение контрольных и экзаменационных мероприятий в дистанционном режиме в соответствии с текущей эпидемиологической ситуацией и соответствующими нормативными актами.
  • 2021/2022 учебный год 3 модуль
    По всем видам работ выставляется 10-балльная оценка. Используются следующие условные обозначения: НО – накопленная оценка i-го модуля; СР_ – оценка самостоятельной работы j в i-м модуле (может быть дана в форме контеста, письменного задания cо взаимным оцениванием или теста); ЭК – оценка за экзаменационную контрольную работу (первая часть экзамена) i-го модуля; ЭТ – оценка за экзаменационный тест (вторая часть экзамена) i-го модуля; ЭО – экзаменационная оценка (является блокирующей после первого модуля) i-го модуля (задача и/или тест); ИО – итоговая оценка i-го модуля; Десятибалльная итоговая оценка в конце модуля: ИО = Округление(0,5*ЭО + 0,5*НО). НО = (CP3_1 + CP3_2 + CP3_3 + CP3_4 + CP3_5 + CP3_6 + CP3_7) / 7. Если экзамен состоит из двух частей (контрольная и тест), то оценка вычисляется по формуле: ЭО = 0,5*ЭК + 0,5*ЭТ, если min(ЭК; ЭТ)>=3,5; иначе ЭО = min(ЭК; ЭТ). Здесь ЭК - экзаменационная контрольная модуля; ЭТ - экзаменационный тест модуля. Допускается добавление в накопленную оценку студента бонусных баллов за проявление активности на занятиях (решение доп. задач, подготовка докладов и т.п.). Виды активностей и цели могут быть определены преподавателем практических занятий самостоятельно, однако, суммарный вклад бонусных баллов не может поднять накопленную оценку более чем на 2 балла (при этом накопленная оценка не может превысить 10 баллов). При пересдаче экзамена ИО = Округление(0,5*ЭО + 0,5*НО). ЭО = 0,5*ЭК + 0,5*ЭТ, если min(ЭК; ЭТ)>=3,5; иначе ЭО = min(ЭК; ЭТ). Округление оценок, проставляемых в ведомости (ИО), выполняется до целых значений по правилам математики (до ближайшего целого). При выставлении итоговых оценок по 5-балльной шкале используется правило: Если ИО <= 8, то ИО = 5 (“отлично”); Если 6 <= ИО < 8, то ИО = 4 (“хорошо”); Если 4 <= ИО < 6, то ИО = 3 (“удовлетворительно”); Если ИО < 4, то ИО = 2 (“неудовлетворительно”). Если экзамен состоит их двух частей (ЭК и ЭТ), то при отсутствии студента на одной из частей экзамена по уважительной причине – оценка, полученная по другой части экзамена, сохраняется. Отдельно, в специально выделенное время, пересдается только та часть экзамена, которая пропущена по уважительной причине. Итоговая оценка за третий модуль (ИО3) выставляется в диплом. Возможно проведение контрольных и экзаменационных мероприятий в дистанционном режиме в соответствии с текущей эпидемиологической ситуацией и соответствующими нормативными актами.
Список литературы

Список литературы

Рекомендуемая основная литература

  • C# 4.0. Полное руководство, Шилдт, Г., 2014
  • Биллиг, В. А. Основы программирования на C# : учебное пособие / В. А. Биллиг. — 2-е изд. — Москва : ИНТУИТ, 2016. — 574 с. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/100319 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
  • Тюкачев Н.А., Хлебостроев В.Г. - C#. Основы программирования: учебное пособие - Издательство "Лань" - 2018 - 272с. - ISBN: 978-5-8114-2567-9 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/104962

Рекомендуемая дополнительная литература

  • Марченко, А. Л. Введение в программирование на C# 2.0 : учебное пособие / А. Л. Марченко. — 2-е изд. — Москва : ИНТУИТ, 2016. — 642 с. — ISBN 5-94774-628-0. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/100697 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
  • С#: программирование для профессионалов, Скит, Дж., 2011
  • Тюкачев Н.А., Хлебостроев В.Г. - C#. Алгоритмы и структуры данных: учебное пособие - Издательство "Лань" - 2018 - 232с. - ISBN: 978-5-8114-2566-2 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/104961

Презентации

  • Презентация курса

Авторы

  • Дударев Виктор Анатольевич
  • Чуйкин Николай Константинович
  • Меликян Алиса Валерьевна