Бакалавриат
2020/2021
Программирование
Лучший по критерию «Полезность курса для Вашей будущей карьеры»
Лучший по критерию «Полезность курса для расширения кругозора и разностороннего развития»
Статус:
Курс обязательный (Программная инженерия)
Направление:
09.03.04. Программная инженерия
Кто читает:
Департамент программной инженерии
Где читается:
Факультет компьютерных наук
Когда читается:
1-й курс, 1-4 модуль
Формат изучения:
без онлайн-курса
Преподаватели:
Береснева Екатерина Николаевна,
Горденко Мария Константиновна,
Дударев Виктор Анатольевич,
Любимов Никита Юрьевич,
Степанов Андрей Николаевич,
Чуйкин Николай Константинович,
Шадрин Михаил Дмитриевич
Язык:
русский
Кредиты:
10
Контактные часы:
174
Программа дисциплины
Аннотация
Курс является базовым для последующих курсов, посвященных созданию современных информационных систем и направлен на формирование у студентов основных знаний в области разработки программных продуктов. С использованием современного языка программирования происходит знакомство с базовыми аспектами различных парадигм программирования. На практических занятиях с использованием современных интегрированных инструментальных сред закрепляются основные приемы программирования и вырабатывается навыки, необходимые для успешного решения задач.
Цель освоения дисциплины
- обеспечить студентов базовыми знаниями в области разработки программных продуктов
- заложить основы для последующих курсов, посвященных созданию современных информационных систем
- познакомить студентов с прогрессивными парадигмами программирования и механизмами их реализации в программных продуктах
- обучить студентов применению современных интегрированных инструментальных сред, предназначенных для разработки программ в интерактивном режиме
- привить студентам навыки исследовательской работы, предполагающей самостоятельное изучение специфических инструментов и средств, необходимых для решения именно той конкретной проблемы, которая в качестве задачи поставлена перед ними
Планируемые результаты обучения
- Представлять историю развития языков программирования и основные парадигмы
- Знать принципы работы управляемого кода в .Net
- Знать базовые типы и основные операции
- Уметь применять условные операторы и операторы циклов
- Уметь использовать процедурную парадигму для решения задач
- Уметь решать задачи с использованием массивов
- Знать синтаксис определения методов и их параметров
- Уметь разрабатывать определение класса, как шаблона для создаваемых объектов
- Уметь применять наследование классов для изменения их функциональности
- Уметь проектировать приложения на основе Windows Forms
- Знать механизм исключений и уметь его использовать
- Уметь решать задачи по обработке текстовой информации с использованием строк
- Применять делегаты для организации безопасных ссылок на методы
- Уметь использовать анонимные методы и лямбда-выражения
- Овладеть событийно-ориентированной разработкой приложений
- Уметь использовать различные структуры данных (стек, очередь, словарь, список) для решения практических задач
- Знать основные отношения между классами
- Уметь создавать и применять интерфейсы для построения приложений со слабой связностью между типами
- Знать особенности структур и перечислений как значимых типов
- Уметь использовать обобщенную парадигму программирования
- Применять потоки для работы с файловой системой
- Уметь применять сериализацию и десериализацию графов объектов
- Знать возможности препроцессора и уметь использовать рефлексию
- Уметь перегружать операции для пользовательских типов
- Создавать и применять итераторы в задачах обработки коллекций данных
- Применять язык интегрированных запросов (LINQ)
- Овладеть парадигмой многопоточного и асинхронного программирования
- Уметь применять регулярные выражения для обработки текстовой информации
- Знать основы программного доступа к реляционным данным
- Знать основы проектирования Web-приложений
Содержание учебной дисциплины
- Введение. О языках программирования и дисциплине (классификация языков, парадигмы программирования)Задачи, цели, содержание и порядок прохождения дисциплины. Данные и их типы. Тип в математике и в программировании. Парадигмы программирования. Абстракция классов и абстракция функциональная, декларативный и императивный подходы. Алгоритм и программа. Структурный подход к разработке алгоритмов. Процедурно-ориентированное программирование. Языки высокого уровня, поддерживающие процедурно-ориентированный подход. Объектно-ориентированное программирование. Типы, классы, объекты. Языки высокого уровня, поддерживающие объектно-ориентированный подход. Типы приложений. О языках программирования и дисциплине (классификация языков, парадигмы программирования). Первая программа на C#.
- Принципы программирования на основе платформы .NetОсновные компоненты платформы .Net: общеязыковая исполняющая среда (CLR) и библиотека классов (FCL). Управляемый код. Общая система типов (CTS) и общеязыковая спецификация (CLS). Типы значений, ссылочные типы и базовые типы в CLR и в языке C#. Виды приложений среды .NET. Интегрированная среда для разработки приложений. Проекты и решения, их создание и применения. Средства навигации (проводник решений). Структура исходного кода консольного приложения. Кодирование, трансляция, синтаксический анализ, отладка и исполнение простой программы.
- Данные и типыПонятие типа данных. Пространство имен. Типы значений и типы ссылок. Базовые типы: предельные значения, свойства и методы. Константы, переменные, именованные константы. Типы С# как классы платформы .NET. Понятие переменной. Проблема преобразования типов. Явное преобразование типов. Присваивание простое и составное. Проблема преобразования типов при присваивании. Инициализация переменных.
- Операции и операторыОперанды и операции. Арифметические операции и выражения. Целочисленные арифметические выражения. Переполнения при операциях с целыми. Особые ситуации в арифметических выражениях. Логические операции и операции отношения. Логические выражения. Условная (тернарная) операция. Операции сдвигов. Особенности выполнения операции сдвига применительно к знаковым и беззнаковым типам. Битовые операции. Применение битовых операций для проверки состояния битов и установки битов в заданное значение. Приоритеты операций. Управляющие структуры. Блок операторов. Условные операторы. Вложенность управляющих структур. Множественное ветвление (переключатели). Циклы и средства управления итерациями.
- Процедурная парадигма программированияОпределение собственных классов. Статические члены класса. Доступность статических членов (полей и методов) из других классов. Статические поля только для чтения. Поля классов (статические поля). Статические константы. Статические методы. Статический конструктор. Правила инициализации статических полей. Методы–процедуры и методы-функции. Соотношение фиксированных параметров и аргументов. Время жизни параметров. Локальные переменные и локальные константы. Ключевое слово static для реализации класса, как контейнера для статических методов.
- Массивы и их видыОдномерные массивы: объявление и инициализация. Доступ к элементу массива. Операции с массивом и элементами массива. Основные свойства и методы класса System.Array. Особенности операции присваивания применительно к ссылкам. Проблема потери ссылок. Сборка мусора. Многомерные массивы: объявление и инициализация. Доступ к элементу многомерного массива. Операции с массивом и элементами массива. Основные свойства и методы. Массивы ссылок на массивы. Объявление, создание и инициализация. Доступ к элементу. Операции с элементами массива ссылок на массивы. Массив с элементами типа object. Упаковка и распаковка значений. Динамическая идентификация типов.
- Методы как основа реализации функциональных членов классаПараметры, передаваемые в методы: по значению и по ссылке. Параметры с типами ссылок. Выходные параметры. Умалчиваемые значения параметров. Именованные аргументы. Модификатор params для методов с переменным числом аргументов. Перегрузка методов. Сигнатура метода при перегрузке. Рекурсивные методы. Стековые фреймы. Хвостовая рекурсия. Особенности применения метода Array.Sort().
- Класс как тип. Объекты и их членыОбъявление класса. Поля объектов. Объявления методов объектов. Инкапсуляция полей и методов. Средства определения доступности полей и методов из других классов. Поля только для чтения. Конструктор экземпляров класса. Конструктор умолчания. Конструктор с параметрами. Перегрузка конструкторов. Поверхностное и глубокое копирование объектов. Конструктор копирования. Свойства классов как средство доступа к закрытым полям. Определение свойств, доступных по чтению и по записи. Ссылка this. Деструкторы и финализаторы. Принцип инкапсуляции и методы объектов. Автореализуемые свойства. Индексаторы. Индексаторы, имитирующие наличие в объекте контейнера. Массивы объектов классов, определяемых программистом. Частичные классы и методы.
- Наследование классовДоступность членов класса при наследовании. Методы при наследовании. Копирование полей при присваивании. Конструктор умолчания. Абстрактные методы и абстрактные классы. Опечатанные классы и методы. Применение абстрактных классов. Наследование полей и методов. Порядок вызова конструкторов при создании объекта класса наследника. Служебное слово base. Передача аргументов конструктору базового класса. Переопределение полей. Переопределение методов. Виртуальные методы. Полиморфизм и его виды.
- Визуальное проектирование приложений Windows FormsФормы, компоненты и элементов управления. Визуальное проектирование формы. Стандартные активные элементы графического пользовательского интерфейса: кнопки, флажки с зависимой фиксацией, флажки с независимой фиксацией, полосы прокрутки, панель индикации. Добавление элементов управления. Позиционирование элементов управления. Установка свойств формы и ее элементов. Связывание элементов формы со стандартными обработчиками событий. События от элементов формы, события клавиатуры и знако-координатных устройств (мышь). Программное изменение свойств элементов. Неотображаемые элементы (компоненты): таймер, всплывающие подсказки. Обработка событий от неотображаемых элементов. Многооконный интерфейс. Меню. Создание и отображение формы. Передача данных в подчиненную форму. Прием данных из подчиненной формы. Диалоговые окна.
- ИсключенияКлассификация ошибок. Классические способы обработки ошибок. Предварительная проверка параметров методов. Проверка кодов возвратов методов. О механизме исключений. Системные исключения и их обработка. Свойства исключений. Исключения при арифметических операциях. Перехват исключения. Блок обработки исключения. Использование нескольких блоков обработки исключения. Передача исключений во вложенных блоках. Передача исключений между методами. Управление программой с помощью исключений. Создание собственных исключений. Понятие объекта-исключения. Пользовательские классы исключений. Ретрансляция исключения.
- CтрокиСтрока символов – объект типа string. Операции присваивания, сравнения и конкатенации строк. Преобразование строки в значение базового типа и преобразование значения базового типа в строку. Строки при вводе-выводе. Схема ввода данных с помощью средств библиотеки .NET. Возможности библиотечного метода System.TryParse(). Контроль правильности вводимых данных. Объявление и инициализация строк. Доступ к элементу строки. Постоянство строк. Форматирование строки. Использование форматирования при выводе строк. Основные методы обработки строк: сравнение, поиск в строке, замена символов, вставка строк, удаление, разбиение строки на слова, формирование строки из слов, преобразование символов строки к заданному виду. Преобразование строки в массив символов и обратное преобразование. Массив строк. Параметры метода Main(). Запуск программы с передачей аргументов в метод Main().
- ДелегатыСинтаксис делегатов. Массивы делегатов. Многоадресные экземпляры делегатов. Делегаты и обратные вызовы.
- Анонимные методы, лямбда-выраженияСинтаксис делегатов. Массивы делегатов. Многоадресные экземпляры делегатов. Делегаты и обратные вызовы. Анонимные методы. Лямбда-выражения.
- СобытияОбъявление cобытия. Генерация и обработка событий. Стандартный паттерн обработки событий и типы EventHandler и EventArgs. Этапы проектирования взаимодействия на основе событий. Типовая структура приложения, управляемого событиями.
- Абстрактные типы данныхМассивы объектов разных типов. Упаковка и распаковка. Массивы-списки на примере ArrayList и List. Дек, стек, очередь: основные понятия об абстрактных типах данных. Коллекции и их отличие от массивов. Стандартные интерфейсы. Итераторы и оператор foreach. Динамический массив: объявление, доступ к элементам, методы добавления и удаления элементов. Стек: объявление, доступ к элементам, методы добавления и удаления элементов. Очередь: объявление, доступ к элементам, методы добавления и удаления элементов. Хэш-таблица: объявление, доступ к элементам, методы добавления и удаления элементов. Использование коллекций при решении прикладных задач.
- Отношения между классами: вложение, композиция, агрегацияНезависимость классов и наследование. Включение объектов классов. Отношение агрегации между классами. Отношение композиции. Вложение классов.
- ИнтерфейсыДва вида наследования в ООП. Понятие интерфейса. Объявления интерфейсов. Реализация интерфейсов. Интерфейс как тип. Интерфейсы и наследование. Члены интерфейса: методы, свойства, события, индексаторы. Доступ к членам интерфейса. Реализация интерфейса в классе. Использование интерфейсов как альтернатива множественному наследованию.
- Перечисления и структуры – типы значенийПеречисления. Базовый класс перечислений. Структуры: определение типа, объявление переменных, операции над структурами. Отличие структур от классов. Упаковка и распаковка. Реализация структурами интерфейсов. Перегрузка операций в структурах.
- Обобщенное программированиеДекларация обобщенных классов, интерфейсов и структур. Типизирующие параметры и список ограничений типизирующих параметров. Обобщенные методы и их сигнатуры. Виртуальные и абстрактные обобщенные методы. Вызовы обобщенных методов. Обобщенные коллекции. Обобщенные делегаты. Перегрузка операций в обобщенных классах. Использование обобщенных методов с делегатами.
- Потоковый ввод-вывод. Работа с файловой системойПонятие потока данных. Стандартные потоки: стандартный поток ввода, стандартный поток вывода, стандартный поток вывода сообщений об ошибках. Символьные потоки данных, связанные с файлами. Открытие и закрытие потока. Методы чтения и записи текстовых данных. Методы чтения и записи двоичных данных. Кодировка символов в потоках: кодовые страницы, кодировка UNICODE, кодировка в текстовых потоках, кодировка текстовых строк в двоичных потоках. Буферизация потоков: буферизация двоичных потоков, буферизация текстовых потоков, принудительный сброс буферов. Потоки, ориентированные на байты. Открытие и закрытие потока. Методы чтения и записи данных. Потоки в основной памяти: создание потока, методы чтения и записи данных. Классы-адаптеры и стандартные потоки. Двоичные, текстовые и XML-адаптеры. Перенаправление стандартных потоков.
- СериализацияСериализация на основе атрибутов. Открытие потока. Определение объекта форматирования. Двоичное форматирование и XML-форматирование (двоичная сериализация и XML-сериализация). JSON-сериализация.
- Небезопасный код и препроцессорные директивы C#. Рефлексия и атрибутыНебезопасный код. Указатели и адресная арифметика. Препроцессорная обработка. Препроцессорные директивы. Метаданные, тип Type, понятие атрибута, примеры библиотечных атрибутов. Пользовательские атрибуты, указание цели атрибута.
- Перегрузка операцийДекларации операций в классах и структурах. Синтаксис перегрузки унарных и бинарных операций. Перегрузка парных операций, перегрузка true и false.
- Коллекции и итераторыКоллекции и их интерфейсы. Использование коллекций при решении прикладных задач. Итераторы и нумераторы. Интерфейсы IEnumerator / IEnumerable. Использование yield return.
- Язык интегрированных запросов LINQ и элементы функционального программированияПотоковые последовательности данных. Операции (директивы) языка LINQ. LINQ-провайдеры. Методы, используемые в LINQ-запросах. Две формы записи LINQ-запроса. Переменные запросов и разделы LINQ-запросов. Отложенное выполнение LINQ-запросов. Анонимные типы в LINQ-запросах. Операции стандартных запросов. Делегаты как параметры методов, представляющих операции запросов. Предопределенные типы делегатов в .NET. Лямбда-выражения в качестве аргументов. Функции высших порядков.
- Асинхронные методы и параллельные программыПроцессы операционной системы и потоки исполнения. Многопоточность. Пул потоков исполнения. Класс Thread и его члены. Создание потоков. Синхронизация потоков. Передача данных в поток и из потока. Обмены между потоками. Патерны асинхронного программирования: патерн опроса (polling), патерн ожидания, патерн ответного вызова. Механизм async/await. Возможности делегатов в параллельном программировании. Таймеры.
- Регулярные выраженияРегулярные выражения в командных языках и в языках программирования. Метасимволы и терминальные символы. Экранирование метасимволов. Подмножества метасимволов Директивы нулевой ширины. Квантификаторы жадные и ленивые. Группы регулярных выражений. Замены в тексте и деление текста на части. Особенности параметров метода Replace.
- Введение в базы данныхПрограммные интерфейсы для доступа к данным. Основы ADO.Net для работы с реляционной СУБД.
- Введение в Web-приложенияВведение в Web-разработку. Основные понятия: HTTP, HTML, CSS. Средства ASP.Net для построения 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 )Использование обобщений
- Домашнее задание (КДЗ4)Контрольное домашнее задание на проектирование Windows Forms / WPF на три недели.
- Работа на семинаре (СР4_1)Использование сериализации
- Работа на семинаре (СР4_2)Интерфейс IEnumerable и использование итераторов
- Работа на семинаре (СР4_3)Использование LINQ
- Экзамен (ЭО4)Тест в LMS Moodle (et.hse.ru) с асинхронным прокторингом, затем контрольные задачи (контест). Технические требования: web-камера, микрофон, наушники / колонки.
- Работа на семинаре (СР1_4)Использование одномерных массивов для хранения значимых и ссылочных типов.
- Работа на семинаре (СР1_5)Особенности применения сложных массивов (многомерных, вложенных) для решения задач.
- Работа на семинаре (СР1_6)Применение простейших статических методов для записи и чтения текстовых и бинарных файлов. Понятие кодировки.
Промежуточная аттестация
- Промежуточная аттестация (1 модуль)По всем видам работ выставляется 10-балльная оценка. Используются следующие условные обозначения: НО – накопленная оценка i-го модуля; ТП = (сумма баллов по проверкам i-го модуля) / (количество проверок в i-м модуле); текущая проверка может быть компьютерным тестом (до 10 вопросов) или самостоятельной работой по решению задач на компьютере; СР_
– оценка самостоятельной работы j в i-м модуле (может быть дана в форме контеста или письменного задания cо взаимным оцениванием); КР – оценка контрольной i-го модуля; КДЗ – оценка контрольного домашнего задания i-го модуля; ЭК – оценка за экзаменационную контрольную работу (первая часть экзамена) i-го модуля; ЭТ – оценка за экзаменационный тест (вторая часть экзамена) i-го модуля; ЭО – экзаменационная оценка (является блокирующей) 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; иначе ЭО1 = min(ЭК1; ЭТ1). Здесь ЭК1 - экзаменационная контрольная первого модуля; ЭТ1 - экзаменационный тест первого модуля. Допускается добавление в накопленную оценку студента бонусных баллов за проявление активности на занятиях (решение доп. задач, подготовка докладов и т.п.). Виды активностей и цели могут быть определены преподавателем практических занятий самостоятельно, однако, суммарный вклад бонусных баллов не может поднять накопленную оценку более чем на 2 балла (при этом накопленная оценка не может превысить 10 баллов). Если экзамен состоит из двух частей (контрольная и тест), то оценка вычисляется по формуле: ЭО4 = Округление(0,5*ЭК4 + 0,5*ЭТ4), если min(ЭК4; ЭТ4)>3; иначе ЭО4 = min(ЭК4; ЭТ4). Здесь ЭК4 - экзаменационная контрольная четвертого модуля; ЭТ4 - экзаменационный тест четвертого модуля. При пересдаче экзамена ИО = 0,5*ЭО + 0,5*НО. ЭО = Округление(0,5*ЭК + 0,5*ЭТ), если min(ЭК; ЭТ)>3; иначе ЭО = min(ЭК; ЭТ). Положительный результат, показанный на сдаче экзамена во втором модуле, может быть зачтен за результат пересдачи экзамена в первом модуле. Округление оценок, проставляемых в ведомости (ЭО, ИО), выполняется до целых значений по правилам математики (до ближайшего целого). При выставлении итоговых оценок по 5-балльной шкале используется правило: Если ИО <= 8, то ИО = 5 (“отлично”); Если 6 <= ИО < 8, то ИО = 4 (“хорошо”); Если 4 <= ИО < 6, то ИО = 3 (“удовлетворительно”); Если ИО < 4, то ИО = 2 (“неудовлетворительно”). Если экзамен состоит их двух частей (ЭК и ЭТ), то при отсутствии студента на одной из частей экзамена по уважительной причине – оценка, полученная по другой части экзамена, сохраняется. Отдельно, в специально выделенное время, пересдается только та часть экзамена, которая пропущена по уважительной причине. Итоговая оценка за второй семестр (ИО4) выставляется в диплом. Возможно проведение контрольных и экзаменационных мероприятий в дистанционном режиме в соответствии с текущей эпидемиологической ситуацией и соответствующими нормативными актами. - Промежуточная аттестация (2 модуль)По всем видам работ выставляется 10-балльная оценка. Используются следующие условные обозначения: НО – накопленная оценка i-го модуля; ТП = (сумма баллов по проверкам i-го модуля) / (количество проверок в i-м модуле); текущая проверка может быть компьютерным тестом (до 10 вопросов) или самостоятельной работой по решению задач на компьютере; СР_
– оценка самостоятельной работы j в i-м модуле (может быть дана в форме контеста или письменного задания cо взаимным оцениванием); КР – оценка контрольной i-го модуля; КДЗ – оценка контрольного домашнего задания i-го модуля; ЭК – оценка за экзаменационную контрольную работу (первая часть экзамена) 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; иначе ЭО2 = min(ЭК2; ЭТ2). Здесь ЭК2 - экзаменационная контрольная второго модуля; ЭТ2 - экзаменационный тест второго модуля. Допускается добавление в накопленную оценку студента бонусных баллов за проявление активности на занятиях (решение доп. задач, подготовка докладов и т.п.). Виды активностей и цели могут быть определены преподавателем практических занятий самостоятельно, однако, суммарный вклад бонусных баллов не может поднять накопленную оценку более чем на 2 балла (при этом накопленная оценка не может превысить 10 баллов). Если экзамен состоит из двух частей (контрольная и тест), то оценка вычисляется по формуле: ЭО4 = Округление(0,5*ЭК4 + 0,5*ЭТ4), если min(ЭК4; ЭТ4)>3; иначе ЭО4 = min(ЭК4; ЭТ4). Здесь ЭК4 - экзаменационная контрольная четвертого модуля; ЭТ4 - экзаменационный тест четвертого модуля. Экзаменационный тест (ЭТ) состоит из 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; иначе ЭО = min(ЭК; ЭТ). Положительный результат, показанный на сдаче экзамена во втором модуле, может быть зачтен за результат пересдачи экзамена в первом модуле. Округление оценок, проставляемых в ведомости (ЭО, ИО), выполняется до целых значений по правилам математики (до ближайшего целого). При выставлении итоговых оценок по 5-балльной шкале используется правило: Если ИО <= 8, то ИО = 5 (“отлично”); Если 6 <= ИО < 8, то ИО = 4 (“хорошо”); Если 4 <= ИО < 6, то ИО = 3 (“удовлетворительно”); Если ИО < 4, то ИО = 2 (“неудовлетворительно”). Если экзамен состоит их двух частей (ЭК и ЭТ), то при отсутствии студента на одной из частей экзамена по уважительной причине – оценка, полученная по другой части экзамена, сохраняется. Отдельно, в специально выделенное время, пересдается только та часть экзамена, которая пропущена по уважительной причине. Итоговая оценка за второй семестр (ИО4) выставляется в диплом. Возможно проведение контрольных и экзаменационных мероприятий в дистанционном режиме в соответствии с текущей эпидемиологической ситуацией и соответствующими нормативными актами. - Промежуточная аттестация (4 модуль)По всем видам работ выставляется 10-балльная оценка. Используются следующие условные обозначения: НО – накопленная оценка i-го модуля; ТП = (сумма баллов по проверкам i-го модуля) / (количество проверок в i-м модуле); текущая проверка может быть компьютерным тестом (до 10 вопросов) или самостоятельной работой по решению задач на компьютере; СР_
– оценка самостоятельной работы j в i-м модуле (может быть дана в форме контеста или письменного задания cо взаимным оцениванием); КР – оценка контрольной i-го модуля; КДЗ – оценка контрольного домашнего задания i-го модуля; ЭК – оценка за экзаменационную контрольную работу (первая часть экзамена) i-го модуля; ЭТ – оценка за экзаменационный тест (вторая часть экзамена) i-го модуля; ЭО – экзаменационная оценка (является блокирующей) i-го модуля (задача и/или тест); ИО – итоговая оценка i-го модуля; Десятибалльная итоговая оценка семестра в конце 4-го модуля (2-го семестра): ИО4 = Округление(0,5*ЭО4 + 0,1*ИО2 + 0,4*НО4). НО4 = 0,3*((CP3_1 + CP3_2 + CP3_3 + CP3_4 + CP3_5 + CP3_6) / 6) + 0,4*((CP4_1 + CP4_2 + CP4_3 + CP4_4 + CP4_5) / 5) + 0,3*КДЗ4. Допускается добавление в накопленную оценку студента бонусных баллов за проявление активности на занятиях (решение доп. задач, подготовка докладов и т.п.). Виды активностей и цели могут быть определены преподавателем практических занятий самостоятельно, однако, суммарный вклад бонусных баллов не может поднять накопленную оценку более чем на 2 балла (при этом накопленная оценка не может превысить 10 баллов). Если экзамен состоит из двух частей (контрольная и тест), то оценка вычисляется по формуле: ЭО4 = Округление(0,5*ЭК4 + 0,5*ЭТ4), если min(ЭК4; ЭТ4)>3; иначе ЭО4 = min(ЭК4; ЭТ4). Здесь ЭК4 - экзаменационная контрольная четвертого модуля; ЭТ4 - экзаменационный тест четвертого модуля. Экзаменационный тест (ЭТ) состоит из 40 вопросов и оценивается исходя из максимального количества правильных ответов (NMAX), полученных при прохождении теста всеми студентами курса. Оценка вычисляется по следующим правилам (N – количество правильных ответов): Если студент предоставил 10 и менее правильных ответов, то оценка за тест N/4. Если N>10 и 31NMAX40 то N*10/NMAX Если N>10 и 26NMAX30 то N*9/NMAX Если N>10 и 21NMAX25 то N*8/NMAX Если N>10 и 16NMAX20 то N*7/NMAX Если N>10 и 14NMAX15 то N*6/NMAX Если N>10 и 12NMAX13 то N*5/NMAX Если N>10 и NMAX=11 то 4 При пересдаче экзамена ИО = 0,5*ЭО + 0,5*НО. ЭО = Округление(0,5*ЭК + 0,5*ЭТ), если min(ЭК; ЭТ)>3; иначе ЭО = min(ЭК; ЭТ). Положительный результат, показанный на сдаче экзамена во втором модуле, может быть зачтен за результат пересдачи экзамена в первом модуле. Округление оценок, проставляемых в ведомости (ЭО, ИО), выполняется до целых значений по правилам математики (до ближайшего целого). При выставлении итоговых оценок по 5-балльной шкале используется правило: Если ИО
Список литературы
Рекомендуемая основная литература
- C# 4.0. Полное руководство, Шилдт, Г., 2014
- Биллиг В.А. - Основы программирования на C# - Национальный Открытый Университет "ИНТУИТ" - 2016 - 574с. - ISBN: - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/100319
- Тюкачев Н.А., Хлебостроев В.Г. - C#. Основы программирования: учебное пособие - Издательство "Лань" - 2018 - 272с. - ISBN: 978-5-8114-2567-9 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/104962
Рекомендуемая дополнительная литература
- Марченко А.Л. - Введение в программирование на C# 2.0 - Национальный Открытый Университет "ИНТУИТ" - 2016 - 642с. - ISBN: 5-94774-628-0 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/100697
- С#: программирование для профессионалов, Скит, Дж., 2011
- Тюкачев Н.А., Хлебостроев В.Г. - C#. Алгоритмы и структуры данных: учебное пособие - Издательство "Лань" - 2018 - 232с. - ISBN: 978-5-8114-2566-2 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/104961