1 МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ» Институт математики и компьютерных наук Кафедра программного обеспечения СТУПНИКОВ А.А. ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ Учебно-методический комплекс. Рабочая программа для студентов направления 09.03.02 "Информационные системы и технологии" очная формы обучения Тюменский государственный университет 2015 2 Ступников А.А. Технологии программирования. Учебнометодический комплекс. Рабочая программа для студентов направления 09.03.02 "Информационные системы и технологии" (очная форма обучения). Тюмень. 2015, 25 стр. Рабочая программа составлена в соответствии с требованиями ФГОС ВО с учетом рекомендаций и ПрОП ВО по направлению подготовки. Рабочая программа дисциплины опубликована на сайте ТюмГУ: "Технологии программирования" [электронный ресурс] / Режим доступа: http://www.umk3plus.utmn.ru, свободный. Рекомендовано к изданию кафедрой программного обеспечения. Утверждено директором Института математики и компьютерных наук. ОТВЕТСТВЕННЫЙ РЕДАКТОР: Захарова И.Г., д.п.н., профессор. © Тюменский государственный университет, 2015. © Ступников А.А., 2015. 3 1. Пояснительная записка: 1.1.Цели и задачи дисциплины. Целью преподавания дисциплины "Технологии программирования" является изучение теоретических основ современных технологий программирования и принципов создания приложений, поддерживающих требования интерфейса операционной среды WINDOWS. В качестве инструментального средства разработки приложений изучается среда MS Visual Studio компании Microsoft. В качестве основного подхода к разработке программ рассматривается объектно–ориентированное программирование, являющееся наиболее мощным средством, позволяющим как моделировать объекты реального мира, так и генерировать виртуальные объекты, существующие только в электронной ауре компьютера. Использование визуального программирования существенно облегчает разработку интерфейса приложений, ориентированного на стандарт визуальных оболочек. В рамках данной дисциплины предполагается получение практической подготовки в области выбора и применения технологии программирования для задач автоматизации обработки информации и управления, что имеет значимость практически для каждого пользователя и специалиста, позволяя разрабатывать приложения от простейших расчетных форм до многопользовательских программных комплексов с применением графического интерфейса и средств сети INTERNET. Лабораторные занятия должны включать рассмотрение конкретных приемов как для создания отдельных объектных классов, так и построения виртуальной среды, насыщенной объектами различных классов, в структуру которых инкапсулированы возможности обмена данными и управления как между собой, так и с внешними объектами. В качестве глобального примера функционирования и расширения объектноориентированной среды на лабораторных занятиях рассматривается среда Windows, её классы и интерфейсы. В результате выпускник должен уметь пользоваться готовыми объектно-ориентированными конструкциями, расширяя их структуру и функционал и уметь разрабатывать в стиле объектного подхода собственные конструкции произвольной структурной сложности. Задачи дисциплины: формирование систематизированного представления о концепциях, моделях и принципах организации, положенных в основу "классических" технологий программирования и современных семейств технологий обучение студентов основам объектно–ориентированного подхода в программировании информационных, вычислительных и имитационных систем; привить студентам знание способов использования основных компонент разработки приложений; дать опыт разработки собственных средств контроля и управления элементами программных систем; ознакомить студентов с принципами функционирования и управления специальными средствами WINDOWS–программирования (реализация многозадачности, COM технологии). 1.2. Место дисциплины в структуре образовательной программы. Дисциплина «Технологии программирования» входит в группу дисциплин по выбору Федерального государственного образовательного стандарта высшего 4 образования (ФГОС ВО) по направлению «Информационные системы и технологии». Для изучения и освоения дисциплины нужны первоначальные знания из курса Информатика. Знания и умения, практические навыки, приобретенные студентами в результате изучения дисциплины, будут использоваться при изучении курсов Инструментальные средства поддержки принятия решений, Информационные технологии, Технологии обработки информации, WEB-технологии и других дисциплин, характер практических работ которых предполагает разработку программных продуктов. Кроме того, студент может использовать приобретённые компетенции при выполнении курсовых и выпускных квалификационных работ, в которых важным элементом является построение технологии хранения, обработки данных и управления ими. Таблица 1. № п/п 1. 2. 3. 4. Разделы дисциплины и междисциплинарные связи с обеспечиваемыми (последующими) дисциплинами Наименование Темы дисциплины необходимые для обеспечиваемых изучения обеспечиваемых (последующих) (последующих) дисциплин дисциплин 1.1 1.2 1.3 2.1 2.2 2.3 3.1 3.2 Инструментальные средства поддержки + + + + принятия решений Информационные + + + + + + + технологии Технологии обработки + + + + информации WEB-технологии + + + 1.3. Компетенции обучающегося, формируемые в результате освоения образовательной программы. В результате изучения дисциплины "Языки программирования" по направлению подготовки 09.03.02 "Информационные системы и технологии" с квалификацией (степенью) “бакалавр” в соответствии с целями основной образовательной программы и задачами профессиональной деятельности, указанными в ФГОС ВО, выпускник должен обладать следующими компетенциями: Общепрофессиональными компетенциями: ОПК-1 – владением широкой общей подготовкой (базовыми знаниями) для решения практических задач в области информационных систем и технологий; ОПК-3 – способностью применять основные приемы и законы создания и чтения чертежей и документации по аппаратным и программным компонентам информационных систем. Профессиональными компетенциями: ПК-12 – способностью разрабатывать средства реализации информационных технологий (методические, информационные, математические, алгоритмические, технические и программные) 5 1.4. Перечень планируемых результатов обучения по дисциплине (модулю): В результате освоения дисциплины обучающийся должен: знать: • лексемы и операторные конструкции объектно-ориентированных языков программирования; • содержание, основные этапы и тенденции развития программирования, математического обеспечения и информационных технологий; • основные положения объектно-ориентированного и визуального направлений программирования, методы, способы и средства разработки программ в рамках этих направлений; уметь: • применять возможности объектно-ориентированного подхода при разработке программ; • использовать современные информационные технологии в рамках объектноориентированного похода для разработки программных комплексов и математического обеспечения компьютеров; • использовать современные технологии объектно-ориентированного программирования для создания программной модели реальных или виртуальных систем; владеть: • средствами и приёмами построения объектных типов для организации программного продукта в рамках объектно-ориентированного подхода; • практическими навыками разработки программных продуктов с применением современных информационных технологий с учётом тенденции развития программирования и математического обеспечения; • практическими навыками разработки программных продуктов, содержащих объектное представление для моделируемых процессов. 2. Структура и трудоемкость дисциплины. Семестр 4. Форма промежуточной аттестации: экзамен. Общая трудоемкость дисциплины составляет 6 зачетных единиц, 216 академических часов, из них 99,75 часов, выделенных на контактную работу с преподавателем, 116,25 часов, выделенных на самостоятельную работу. Таблица 2. Семестр Всего Вид учебной работы часов 4 Контактная работа: 99,75 99,75 Аудиторные занятия (всего) 92 92 В том числе: Лекции 38 38 Практические занятия (ПЗ) Семинары (С) Лабораторные занятия (ЛЗ) 54 54 Иные виды работ: 7,75 7,75 Самостоятельная работа (всего): 116,25 116,25 6 6 Общая трудоемкость зач. ед. час 216 216 Вид промежуточной аттестации (зачет, экзамен) экзамен экзамен 6 3. Тематический план. Таблица 2. Самостоятель ная работа* Итого часов по теме Из них в интерактивной форме Итого количество баллов 2 Модуль 1. Объектно-ориентированное программирование 1. Т1. Виды классов. Инкапсуляция. 2. Т2. Наследование. 3. Т3. Полиморфизм. Всего Модуль 2. Программирование оконных приложений. 1. Т1. Низкоуровневое проектирование. 2. Т2. Проектирование оконных приложений на базе классов MFC. 3. Т3. Элементы управления в MFC . Всего Модуль 3. Расширенные возможности Windows-программирования. 1. Т1. Обработка исключительных ситуаций. 2. Т2. Организация параллельных процессов. Всего Итого (часов, баллов) за семестр: Из них в интерактивной форме *- с учётом иных видов работ. Лабораторные занятия* 1 3 4 5 6 7 8 9 1-2 4 6 10 20 2 0-7 3-4 5-6 4 4 12 6 6 18 10 10 30 20 20 60 2 2 6 0-7 0-8 0-22 7-8 4 6 12 22 2 0-22 9-12 8 12 36 56 6 0-22 13-16 8 12 36 56 6 0-22 20 30 84 134 14 0-66 17 2 3 5 10 2 0-6 18-19 4 3 5 12 2 0-6 6 38 6 54 10 124 22 216 4 0-12 0 – 100 недели семестра Тема Виды учебной работы и самостоятельная работа, в час. Лекции* № 24 7 Т1 Т2 Т3 Всего 0-2 0-2 0-2 0-6 0-2 0-2 0-2 0-6 Т1 Т2 Т3 Всего 0-6 0-6 0-6 0-18 0-8 0-8 0-8 0-24 Т1 Т2 Всего ИТОГО 0-3 0-3 0-6 0-30 0 0 0 0-30 5. Модуль 1 0-2 0-2 0-2 0-6 Модуль 2 0-4 0-4 0-4 0-12 Модуль 3 0-1 0-1 0-2 0-20 Итого количество баллов Технические формы контроля электронный практикумы Письменные работы лабораторная работа № темы Таблица 3. Информационные системы и технологии программы компьютерного тестирования Виды и формы оценочных средств в период текущего контроля курсовая работа 4. 0-1 0-1 0-2 0-4 0-7 0-7 0-8 0-22 0-4 0-4 0-4 0-12 0-22 0-22 0-22 0-66 0-2 0-2 0-4 0-20 0-6 0-6 0-12 0-100 Содержание дисциплины. Модуль 1. Объектно-ориентированное программирование. Тема 1.1. Виды классов. Инкапсуляция Исторический аспект возникновения объектно-ориентрованного подхода в программировании. Принципы абстрагирования, ограниченного доступа, модульности, иерархичности, типизации, параллелизма, устойчивости. Обзор этапов разработки программного обеспечение в стиле ООП. Объектная декомпозиция. Объектные сообщения, классы. Ограничение доступа. Тема 1.2. Наследование Интуитивное описание наследования, подкласс, формы наследования, преимущества наследования. Композиция и наследование. Жизненный цикл объектов. Области видимости. Конструкторы и деструкторы. Тема 1.2. Полиморфизм Полиморфные функции, абстракции низкого и высокого уровней. Разновидности полиморфизма, полиморфные переменные, перегрузка, переопределение, отложенные методы, чистый полиморфизм. 8 Модуль 2. Программирование оконных приложений. Тема 2.1. Низкоуровневое проектирование. Базовые концепции программирования в Windows. Классы окон. Графические объекты. Принципы обработки сообщений. Низкоуровневое проектирование. Использование функций WIN API. Тема 2.2. Проектирование оконных приложений на базе классов MFC. Обзор классов. Размещение компонентов на макете. Окно настройки параметров компонентов. Создание и настройка главного меню приложения и контекстного меню. Тема 2.3. Элементы управления в MFC Общие свойства и общие события компонентов. Взаимодействие элементов управления, элементов ввода-вывода данных различного типа друг с другом. Организация пользовательского интерфейса. Модуль 3. Расширенные возможности Windows-программирования. Тема 3.1. Обработка исключительных ситуаций. Понятие исключительной ситуации. Стандартные и пользовательские классы ИС. Создание и обработка ИС. Тема 3.2. Организация параллельных процессов. Процессы и потоки. Взаимное исключение. Синхронизация процессов. Передача сообщений. Сигналы, семафоры, рандеву. Организация многопоточных приложений. 6. Планы семинарских занятий. Не планируется. Темы лабораторных работ (Лабораторный практикум). Задания лабораторного практикума выполняются с использованием систем программирования Delphi, Microsoft Visual Studio. 7.1.Классы. Объявление класса; элементы класса. Объявление и реализация методов, параметры методов. Создание объектов. Объявление, реализация и вызов конструкторов. Объявление и использование перегруженных операторов, свойств и индексаторов. 7.2.Реализация наследования. Объявление производных классов, использование правил преобразования типов при работе с иерархией объектов; использование операторов проверки и приведения типа; переопределение методов в наследуемых классах. 7.3.Полиморфизм. Использование абстрактных классов на примере класса Object. Интерфейсы. Способы реализации интерфейсов. Организация полиморфизма. 7.4.Низкоуровневое программирование. Разработка оконных приложений с использованием возможностей WIN API. 7.5.Проектирование оконных приложений на базе классов MFC. Разработка простейших приложений, использующих классические элементы управления библиотеки классов MFC. 7.6.Элементы управления в MFC. Разработка оконных приложений с использованием стандартных и дополнительных визуальных компонент при создании интерфейса управления. 7. 9 7.7.Исключения. Обработка исключений, генерация исключений; программирование алгоритмов с использованием исключений. 7.8.Многопоточные приложения. Потоки команд. Создание потоков. Создание синхронизированных классов. 8. Примерная тематика курсовых работ Цель курсовой работы – стимулировать студентов к работе с литературой по дисциплине (в основном с дополнительной литературой) и разработать учебный проект, приближенный к реальным проектам, с реализацией которых сталкиваются специалисты в области информационных систем и технологий. Курсовая работа может быть выполнена в двух вариантах – теоретическом и практическом. В теоретическом варианте студент должен найти литературу, содержащую материал по заданной теме и представить найденный материал в виде реферата по теме. Кроме реферативного описания, отчёт по курсовой работе должен включать также полностью разобранные задачи по теме (количество задач и их сложность согласовывается с преподавателем), иллюстрирующие разные аспекты рассматриваемого вопроса. Кроме разбора ключевых задач, студент должен предоставить формулировку других задач по материалу темы (их число также согласовывается), не приводя решения. В завершении теоретической части, студент должен указать ссылки на используемую литературу. В практическом варианте предлагается реализация Windows-проекта в среде Microsoft Visual Studio. Обязательными требованиями к проекту являются: оригинальный, но корректный дизайн; наличие файла справки; представление в распечатанном виде постановки задач, метода решения и основных экранных форм, а также текста ключевых функций. В ходе подготовки практической части курсовой работы необходимо: 1. Разработать и отладить программу в соответствии с вариантом. 2. Протестировать программу 3. Сдать протестированную программу преподавателю 4. Подготовить пояснительную записку к курсовой работе 5. Подготовить доклад и плакаты (презентацию). 6. Защитить курсовую работу на публичной защите. Законченная курсовой проект (исходный код программы в электронном виде и пояснительная записка – в бумажном виде) не позже 16-й недели семестра предъявляется руководителю. После проверки работы студенту назначается время защиты. Общая оценка за курсовую работу проставляется с учетом работы студента в течение семестра, качества представленной работы и ее защиты. Примерная тематика для теоретического варианта курсовой работы. 8.1.Разработка динамически подключаемых библиотек DLL. 8.2.Подготовка справочной системы приложения. 8.3.Основы языка SQL. Создание и управление таблицами БД с помощью SQL запросов. 8.4.Управление редактором WORD (использование СОМ-технологии). 8.5.Управление пакетом EXCEL (использование СОМ-технологии). 8.6.Популярный учебник по ООП для школьников. 8.7.Работа с графикой средствами WIN API 8.8.Работа с графикой средствами OpenGL 8.9.История развития языков объектно-ориентированного программирования. 10 Методические пояснения к выполнению курсовой работы. На первом этапе выполняется постановка задачи. Предлагаемая формулировка задач представляет собой лишь поверхностные наброски постановки и не претендует на полноту и завершенность; конкретизация и уточнение возлагается на разработчика. При этом может оказаться, что функциональная полнота (обеспечение всех потребностей пользователя) не может быть достигнута за ограниченное время, выделенное на разработку. В этом случае необходимо согласовать с преподавателем подмножество функций, составляющее ядро реальной системы. Итогом данного этапа является документ "Постановка задачи", в котором должно присутствовать: Титульный лист с названием задания и фамилией исполнителя. Описание функционала программы. Список реализуемых алгоритмов. Описание пользовательского интерфейса. Примерные макеты экранных форм. Перечень и форма выходных (сохраняемых в файлах) данных. Задания выполняются с использованием системы программирования Microsoft Visual Studio. Для решения задания желательно реализовать специальный класс или группа классов. Для организации контекстной (или общей) помощи в программу внедряется справочная система. Приветствуется, если программа предусматривает сохранение результатов в виде графического файла и (или) документа MS Office. Второй этап — непосредственная разработка программного обеспечения, в результате которого должен получиться законченный программный продукт, пригодный для опытной эксплуатации пользователем без участия разработчика, пусть и не обладающий функциональной полнотой. Требования к программам. Независимо от конкретности проблемы, можно выделить некоторые формальные требования, на которых защищается квалификация разработчика. Устойчивость программы. Программа не должна терять работоспособности ни при каких, даже некорректных, действиях пользователя. Всякие действия, грозящие потерей информации, выполняются только после повторного подтверждения. Вводимая информация там, где возможно, подвергается логическому контролю. 2. Функциональная полнота. В рамках согласованного с преподавателем или заказчиком подмножества функций все они должны быть реализованы. 3. Терминологическая среда и интерфейс. В диалоговых средствах используются только термины, понятные пользователю, и не используются термины разработчика («запись», «индексация» и т. д.). Появление служебных англоязычных сообщений СУБД недопустимо. Язык диалога — с соблюдением норм вежливости, цветовая гамма — по общепринятым рекомендациям. 1. 11 Использование клавиатуры. На любом этапе нажатие любой клавиши (особенно функциональных) должно игнорироваться или вызывать предусмотренные действия (описанные в средствах помощи). Привязка действий к клавишам должна быть общепринятой: F1 — помощь; Enter — согласие, завершение ввода; Esc — отказ, возврат к предыдущему узлу ветви алгоритма (с восстановлением экранной формы); Tab — переход к следующему полю, окну и т. д.; Shift-Tab — возврат к предыдущему полю и т. д. 5. Входные и выходные документы. Экранные формы для ввода и корректировки должны быть максимально «похожими» на привычные для пользователя документы; результаты работы не только отображаются на экране, но и выводятся в текстовый файл в привычной для пользователя форме с возможностью корректировки и распечатки. 6. Средства документации. Программы снабжаются внутренней документацией в виде комментариев, средств меню и диалога, средств помощи, а также внешней документацией в виде отчета, содержащего, как минимум, постановку задачи, инструкцию для пользователя с элементами рекламы, описанием алгоритма, экранных форм, примеры входных и выходных документов. Данный отчет должен войти в отчет по курсовой работе. 4. По своему выбору студент разрабатывает либо реализацию программы управления информационно-справочными системами, либо программу вычислительного характера, либо аналог имеющихся сервисных программ, либо игровую программу с серьёзным функционалом и (или) функционально нагруженным интерфейсом. Правила оформления отчёта по курсовой работе. Отчёт сдается в бумажном и электронном вариантах. Бумажный вариант предназначен для хранения в качестве отчета студента по курсовой работе, в виде которого и оформляется. Отчет состоит из титульного листа, аннотации, содержания, текста отчета и списка литературы. Объем отчёта – не менее 12 страниц текста (без учета иллюстраций) формата А4, шрифт Times New Roman 12, через 1,5 интервала. Титульный лист содержит информацию о тематике курсовой работы, исполнителе и руководителе работы. Аннотация содержит краткое описание постановки и реализации практического задания. Содержание содержит список глав, параграфов, пунктов и подпунктов описывающих возможную теоретическую часть работы, и наиболее характерные элементы кода разработанной программы с указанием страниц в отчете (нумеруются все страницы, кроме титульного и аннотации). Текст отчета состоит из введения, глав и заключения. Во введении описывается ситуация в предметной области выбранной темы, указывается цель и задачи студента на практике. В тексте отчёта должны присутствовать: 1) постановка задачи, описываются требования к функционалу, пользовательскому интерфейсу, применяемым технологиям (название главы "Постановка задачи"). 12 Здесь же приводится математическая постановка задачи (если в задании требуется выполнение математических расчетов) 2) теоретический материал, использование которого необходимо для решения задачи. Если эта теория изучалась в вузе, достаточно просто назвать применяемые элементы, не описывая их подробно. Название свободное, зависит от контента (например "Сведения о деревьях поиска", "Используемые алгоритмы на графах", "технологии удалённого доступа" и т.п.). Здесь допускается использование текста из других источников, который должен выделяется кавычками (или вертикальной линией слева от параграфа) с обязательной ссылкой на источник и комментарием исполнителя курсовой работы. 3) приводится описание реализации практического задания, которое должно включать: * описание структуры используемых текстовых, типизированных файлов или файлов базы данных, * блок-схему реализации (с описанием основных или уникальных алгоритмов), * техническое описание программы (язык или среда программирования, требуемая операционная система, используемая оперативная и дисковая память, требования к компьютеру), * технологию использования справочной системы; * описание технологии ввода-вывода данных в файлы. * диаграммы классов с описанием. 3) описание (с использованием скриншотов) примера использования разработанного программного продукта. Приводится описание режимов работы, использование справки. В заключении подводится итог сделанному, описывается, насколько успешно решены поставленные задачи, предполагаются первспективы усиления проекта. Список литературы оформляется в соответствии с правилами (см. пример в любом учебнике) и содержит ссылки на литературу, использованную при подготовке теоретической части и написании программы. При использовании источников из сети INTERNET вместо ссылки на издательство указывается полный электронный адрес источника. В приложении приводятся тексты наиболее интересных методов, примеры файлов ввода-вывода. 9. Учебно - методическое обеспечение самостоятельной работы студентов. Оценочные средства для текущего контроля успеваемости, промежуточной аттестации по итогам освоения дисциплины (модуля). По всем темам дисциплины предусмотрены следующие виды самостоятельной работы студентов: обязательные конспектирование материала на лекционных занятиях работа с учебной литературой выполнение заданий лабораторных работ выполнение тестовых и курсовых работ 13 дополнительные поиск информации в интернете. Таблица 5. Планирование самостоятельной работы студентов Виды СРС № Модули и темы Неде ля семес тра Объ ем часо в Кол -во бал лов обязательные дополнител ьные Т1. Виды классов. Инкапсуляция. Работа с литературой, конспектирование лекций Поиск информации в Интернет. 1-2 10 0-7 Т2. Наследование. Работа с литературой, конспектирование лекций Поиск информации в Интернет. 3-4 10 0-7 Т3. Полиморфизм. Конспектирование лекций, выполнение заданий лабораторных работ Поиск информации в Интернет. 5-6 10 0-8 30 0-22 Модуль 1 1.1 1.2 1.3 Всего по модулю 1: Модуль 2 2.1 Т1. Низкоуровневое проектирование. Работа с литературой, конспектирование лекций, выполнение заданий лабораторных работ Поиск информации в Интернет. 7-8 12 0-22 Т2. Проектирование оконных приложений на базе классов MFC. Работа с литературой, конспектирование лекций, выполнение заданий лабораторных работ Поиск информации в Интернет. 9-12 36 0-22 Поиск информации в Интернет. 13-16 36 0-22 84 0-66 Работа с литературой, конспектирование лекций, Т3. Элементы 2.2 лабораторных работ, управления в MFC . выполнение контрольной работы Всего по модулю 2: Модуль 3 3.1 Т1. Обработка исключительных ситуаций. Работа с литературой, конспектирование лекций Поиск информации в Интернет. 17 5 0-6 3.2 Т2. Организация параллельных процессов. Работа с литературой, конспектирование лекций, выполнение заданий лабораторных работ Поиск информации в Интернет. 18-19 5 0-6 10 0-12 Всего по модулю 3: 14 ИТОГО за 4 семестр: 90 ИТОГО: 90 0100 Контроль качества подготовки осуществляется путем проверки теоретических знаний и практических навыков с использованием a) Текущей аттестации: прием лабораторных работ, b) Промежуточной аттестации: Тестирование (письменное или компьютерное) по разделам дисциплины. Экзамен в конце 3-го семестра (к экзамену допускаются студенты после сдачи всех лабораторных работ и успешной защиты курсовой работы. Текущий и промежуточный контроль освоения и усвоения материала дисциплины осуществляется в рамках рейтинговой (100-бальной) системы оценок. 15 10. Фонд оценочных средств для проведения промежуточной аттестации по итогам освоения дисциплины. 10.1 Перечень компетенций с указанием этапов их формирования в процессе освоения образовательной программы (выдержка из матрицы компетенций): Дисциплины (модули) учебного плана ООП Химия* Информатика* Математическая логика и теория алгоритмов Дискретная математика Математическая логика и теория алгоритмов Физика* Математическая статистика Теория вероятностей Теория автоматов Информационно-поисковые языки Языки программирования Технологии программирования Архитектура информационных систем Вычислительные сети Технологии программирования Теория информационных процессов и систем* Теория принятия решений* Иностранный язык в информационных технологиях (английский) Иностранный язык в профессиональной сфере (английский) Информационные технологии* Инструментальные средства поддержки принятия решений Управление данными Web технологии Телекоммуникационные технологии Протоколы и интерфейсы информационных систем Информационные системы логистики Методы и средства проектирования информационных систем и технологий* Технологии обработки информации* Администрирование информационных систем Стандартизация и унификация информационных технологий Инструментальные средства информационных систем* Интеллектуальные информационные системы и технологии* Стандартизация и унификация информационных технологий Научно-исследовательская работа Преддипломная практика Выпускная квалификационная работа *- отмечены дисциплины базовой части 16 Семестр 1 1, 2 2 2 2 2, 3 3 3 3 3 3 4 4 4 4 4 4 Индекс компетенции ОПК- ОПКПК-12 1 3 + + + + + + + + + + + + + + + + + + + + 4 3 3, 4 + 4 5 3 3, 4 + + + 5 5 5 5 5, 6 5, 6 + + + + + + + 6 6 6, 7 + + + 6, 7 7 + + 7 + 7 5, 6 8 8 6 + + + + + + + 10.2 Описание показателей и критериев оценивания компетенций на различных этапах их формирования, описание шкал оценивания: Таблица 6. Карта критериев оценивания компетенций Критерии в соответствии с уровнем освоения ОП Код и содержание компетенции ОПК-1 владение широкой общей подготовкой (базовыми знаниями) для решения практических задач в области информационных систем и технологий пороговый (удовл.) 61-75 баллов Знает: основные понятия объектноориентированного программирования, основные способы и принципы представления структур данных. Умеет: формализовать вычислительную задачу, пользоваться готовыми объектноориентированными конструкциями для решения задач профессиональной сферы Владеет: методологией, основными понятиями и алгоритмами, необходимыми для решения задач повышенный (отл.) 91-100 баллов базовый (хор.) 76-90 баллов Знает: основные понятия объектноориентированного программирования, основные термины, методологию и особенности. Знает: основные понятия объектноориентированного программирования, основные термины, методологию и особенности. Умеет: формализовать вычислительную задачу профессиональной сферы и выбрать необходимый типовой алгоритм для ее решения. Умеет: выявить типовые, а также нестандартные задачи профессиональной сферы, разработать метод решения поставленной задачи с использованием типовых алгоритмов решения задач. Владеет: навыками алгоритмизации и решения прикладных задач с разработкой собственных процедур и функций. 19 Владеет: навыками разработки собственных методов и алгоритмов для решения прикладных задач. Виды занятий (лекции, семинарские, практические, лабораторные) Оценочные средства (тесты, творческие работы, проекты и др.) Лекции, лабораторные занятия. Опрос, лабораторные задания. Контрольная работа. Экзамен. Знает: общее представление об основных элементах и операторах объектноориентированных языков программирования. ОПК-3 способность применять основные приемы и законы создания и чтения чертежей и документации по аппаратным и программным компонентам информационных систем. Умеет: применять при разработке программ основные элементы объектноориентированного подхода, такие как класс, объект, поле, метод, конструктор, а также базовые концепции ООП с консультационной помощью. Владеет: начальными средствами и приёмами построения объектных типов для организации программного продукта в рамках объектноориентированного подхода. Знает: основные элементы и операторы объектноориентированных языков программирования. Умеет: самостоятельно применять базовые конструкции объектно-ориентированного подхода при разработке программ (инкапсуляция, наследование, полиморфизм, события). Владеет: базовыми средствами и приёмами построения объектных типов для организации программного продукта в рамках объектноориентированного подхода. 20 Знает: отлично ориентируется в основных элементах, операторах и конструкциях объектно-ориентированных языков программирования. Умеет: самостоятельно применять базовые и специальные конструкции языков программирования в концепции объектноориентированного подхода при разработке программного обеспечения. Владеет: развитыми средствами и приёмами построения объектных типов для организации программного продукта в рамках объектноориентированного подхода. Лекции, лабораторные занятия. Опрос, лабораторные задания. Контрольная работа. Экзамен. ПК - 12 способность разрабатывать средства реализации информационных технологий (методические, информационные, математические, алгоритмические, технические и программные) Знает: некоторые положения объектно-ориентированного и визуального направлений программирования, средства разработки программ в рамках этих направлений средствами одной их сред программирования. Умеет: использовать некоторые компоненты современных технологий объектноориентированного программирования для создания программной модели реальных или виртуальных систем. Владеет: начальными практическими навыками разработки программных продуктов, содержащих объектное представление для моделируемых процессов. Знает: основные положения объектно-ориентированного и визуального направлений программирования, методы и средства разработки программ в среде разработки MS Visual Studio. Умеет: применять основные компоненты современных технологий объектноориентированного программирования для создания программной модели реальных или виртуальных систем. Владеет: базовыми практическими навыками разработки программных продуктов, содержащих объектное представление для моделируемых процессов 21 Знает: прекрасно разбирается в концептуальных положениях объектно-ориентированного и визуального направлений программирования, методы, способах и средствах разработки программ в рамках этих направлений в различных средах программирования. Умеет: в совершенстве применять современные технологии объектно-ориентированного программирования для создания программной модели реальных или виртуальных систем. Владеет: развитыми практическими навыками разработки программных продуктов, содержащих объектное представление для моделируемых процессов. Лекции, лабораторные занятия. Опрос, лабораторные задания. Контрольная работа. Экзамен. 10.3 Типовые контрольные задания или иные материалы, необходимые для оценки знаний, умений, навыков и (или) опыта деятельности, характеризующей этапы формирования компетенций в процессе освоения образовательной программы. Пример тестового задания по теме 1.1 «Наследование»: Вопрос Опишите, какие виды наследования вы знаете, и для чего они применяются. Ответ Пусть D унаследован от B. Виды: открытое, закрытое, защищённое, виртуальное. Во всех случаях класс D получает доступ к открытым и защищённым членам B. Отличия: 1. Открытое - Открытые члены B становятся открытыми в D. Защищённые B защищёнными D. Говорят, что класс наследует как интерфейс, так и реализацию предка. 2. Закрытое - Открытые и защищённые члены B становятся закрытыми в D. Применяют когда класс должен наследовать только реализацию. 3. Защищённое - открытые и защищённые члены B становятся защищёнными в D. 4. Виртуальное. В объекте D компилятор заводит указатель, ссылающийся на объект B, входящий в состав D. В сложной иерархии наследования, когда B повторяется многократно в числе предков конечного класса, эти указатели будут ссылаться на один и тот же объект B. Получается экономия памяти. Виртуальное наследование может применяться вместе с предыдущими тремя. Вопрос Какой результат будет иметь действие “MyObject = new MyClass()” (переменная MyObject типа MyClass ещё не создана)? Варианты ответа 1) Обнуление значения полей объекта MyObject 2) Ошибка доступа (Access violation) 3) Освобождается доступ к объекту MyObject 4*) Объект MyObject будет создан Пример лабораторного задания по теме 1.2 «Виды классов. Инкапсуляция». 1. Простой класс. Описать класс, объект которого представляет отрезок на числовой оси (в математике – [a,b]). Класс должен иметь два поля a и b. В классе должны быть реализованы следующие методы: a. конструктор, создающий отрезок [0,1]; b. вывод информации об отрезке c. ввод значений a и b (должно быть a<=b) d. определение длины отрезка e. изменение длины отрезка f. определение координаты центра отрезка g. перенос центра отрезка в точку с заданной координатой h. проверка на то, что отрезок содержит точку «ноль» i. определение, содержит ли данный отрезок другой отрезок 2. Сложный класс. Описать класс, объект которого представляет время суток (часы, минуты от 00:00 до 23:59). Подумать, какие поля нужны для хранения времени. В классе должны быть реализованы следующие методы: 22 a. b. c. d. e. f. g. h. i. j. k. l. m. конструктор, задающий время 12:00; вывод времени на экран определить текущий час изменить текущий час определить текущие минуты изменить текущие минуты определить текущее время в вещественных часах (6,25 это 6:15) изменить текущее время в вещественных часах (6,25 это 6:15) определить название времени суток (утро, день, вечер, ночь) увеличить время на 1 минуту уменьшить время на 1 минуту определить количество минут до конца суток определить количество минут до другого времени суток (может быть отрицательным). Контрольная работа в 3 семестре Контрольная работа состоит из двух заданий. 1. Написать модуль, содержащий описание класса (использовать private и public). Варианты заданий см. ниже. Требуется написать модуль, содержащий описание необходимых типов. При описании класса требуется Формировать только независимые друг от друга поля. При описании свойств при обращении типа READ использовать поля (если есть соответствующие) или методы. При обращении типа WRITE использовать только методы. Реализуя принцип инкапсуляции открывать пользователям класса только заявленные в задании элементы класса. В одном из методов обеспечить взаимодействие с другим объектом того-же класса. В одном из методов организовать создание другого объекта того-же класса (данный метод оформить в виде процедуры). Тип одного из событий не должен быть уведомительным. Организовать метод типа Info (информация обо всех свойствах объекта класса). Не использовать процедуры ввода-вывода на консоль. 2. Написать консольное приложение для проверки работы описанного класса. Требуется создать консольное приложение, имеющее русский интерфейс, позволяющее оценить корректность реализации класса из задания 1. В проекте для одного из событий (общее изменение) реализовать вывод информации об объекте на консоль. Для другого события реализовать сообщение о его наступлении. Для одного из событий, имеющего пользовательский тип в обработчике реализовать проверку некоего произвольного осмысленного ограничения, которая запретила бы объекту принимать некорректные значения свойств. 23 В проекте проверить работу всех свойств на чтение и запись, всех методов (возможно, у некоторых методов для нескольких случаев), всех событий. Результаты контрольной работы представить в виде отчёта, имеющего титульный лист. В отчёте привести Номер варианта и текст задания (указать вид ограничения на объект для обработчика одного из событий). Текст модуля с описанием классов (без комментариев, но с таблицей свойств с указанием на обслуживающие методы). Текст консольного проекта, с пояснением, каким образом проверяется каждое свойство, метод и событие в проекте. Результат выдачи на консоль (распечатку вывода на экран). Для экономии краски можно настроить свойства. Вопросы к экзамену 1. Классы и объекты, элементы класса 2. Методы, параметры методов 3. Перегрузка методов 4. Конструкторы и инициализация данных 5. Деструкторы и алгоритм сборки мусора 6. Перегруженные операторы 7. Свойства 8. Индексаторы 9. Производные классы 10. Конструкторы и наследование 11. Преобразование типов при работе с иерархией объектов, операторы проверки и приведения типа 12. Переопределение методов 13. Абстрактные классы и наследование 14. Абстрактный класс Object 15. Реализация интерфейсов, интерфейсы и классы, интерфейсы и структуры 16. Обработка исключений, генерация исключений 17. Класс Exception, исключения и наследование 18. Создание и использование делегатов, групповые делегаты 19. Определение и использование событий, генерация событий, широковещательные события 20. Использование пространств имен 21. Препроцессорная обработка. 22. Многопоточные приложения. 10.4 Методические материалы, определяющие процедуры оценивания знаний, умений, навыков и (или) опыта деятельности характеризующих этапы формирования компетенций. Промежуточный контроль освоения и усвоения материала дисциплины осуществляется в рамках рейтинговой (100-бальной) системы оценок. Студент получает экзамен автоматически в случае набора в течение семестра следующего количества баллов: 61 – 75 баллов – «удовлетворительно»; 76 – 90 баллов – «хорошо»; 24 91 – 100 баллов – «отлично». Студент набирает в течение семестра 35-60 баллов. Для сдачи экзамена студент должен явиться на экзамен. Экзамен проводится в устно-письменной форме (на усмотрение преподавателя). Билет содержит 2 вопроса. Каждый вопрос оценен в определённое количество баллов. После подсчёта баллов, набранных в течение экзамена, эти баллы суммируются с баллами, набранными в течение семестра. Оценка выставляется на основе всех набранных баллов. Если набранных балов не хватает для получения экзаменационной оценки, студент добирает баллы путём сдачи самостоятельных работ или выполнения дополнительных заданий. Студент набирает в течение семестра менее 35 баллов (не допущен к сдаче экзамена). Студент добирает баллы путём сдачи самостоятельных и контрольных работ. После получения допуска (35 баллов), студент должен явиться на экзамен. Если студент хочет повысить оценку, полученную автоматически по итогам семестра, он должен явиться на экзамен. Экзамен проводится в устнописьменной форме (на усмотрение преподавателя). Билет содержит 5 вопросов из разных разделов курса. Каждый вопрос оценён в определённое количество баллов. После подсчёта баллов, набранных в течение экзамена, эти баллы суммируются с 60-ю баллами, набранными в течение семестра. Оценка выставляется на основе всех набранных баллов. В случае, если студент отказывается от сдачи экзамена или набранных баллов не хватает для повышения оценки, ему выставляется оценка, полученная автоматически по итогам семестра. В случае, если в течение семестра студент не набрал необходимое количество баллов и не явился на сдачу зачёта (экзамена) во время сессии, добор баллов и пересдача осуществляются только в сроки, установленные учебной частью института. 11. Образовательные технологии. Сочетание традиционных образовательных технологий в форме лекций, компьютерных лабораторных работ и проведение контрольных мероприятий (контрольных работ, промежуточного тестирования, экзамена). аудиторные занятия: лекционные и компьютерные лабораторные занятия; на лабораторных занятиях контроль осуществляется при сдаче лабораторного задания в виде программы (на одном из используемых языков программирования) и пояснительной записки к задаче. В течение семестров студенты выполняют задачи, указанные преподавателем к каждому занятию. активные и интерактивные формы компьютерное моделирование и анализ результатов при выполнении лабораторных работ внеаудиторные занятия: выполнение дополнительных заданий разного типа и уровня сложности при выполнении лабораторных работ, подготовка к аудиторным занятиям, изучение отдельных тем и вопросов учебной дисциплины в соответствии с учебно-тематическим планом, составлении конспектов. Подготовка индивидуальных заданий: выполнение самостоятельных и контрольных работ, подготовка ко всем видам контрольных испытаний: текущему контролю успеваемости и промежуточной аттестации; индивидуальные консультации. 25 12. Учебно-методическое и информационное обеспечение дисциплины. 12.1. Основная литература: 1. Иванова Г. С. Программирование: учеб. для студ. / Г. С. Иванова, – Москва: КНОРУС, 2013. – 432 с. 2. Кариев, Ч. А. Разработка Windows-приложений на основе Visual C#: учеб. пособие/ Ч. А. Кариев. – Москва: Интернет-Университет Информационных Технологий: Бином. Лаборатория знаний, 2011. – 767 с. 12.2. Дополнительная литература: 1. Троелсен, Э. Язык программирования С# 5.0 и платформа .NET 4.5 / Э. Троелсен ; пер. с англ. Ю. Н. Артеменко. – 6-е изд.. – Москва: Вильямс, 2013. – 1312 с. 2. Павловская, Т. А. C#: программирование на языке высокого уровня : учебник/ Т. А. Павловская. – Санкт-Петербург: Питер, 2010. – 432 с. 3. Приемы объектно-ориентированного проектирования: паттерны проектирования : перевод с английского = Design Patterns: Elements of Reusable Object-Oriented Software/ Э. Гамма [и др.]. - Санкт-Петербург: Питер, 2013. - 368 с. 12.3. Программное обеспечение и Интернет – ресурсы: не предусмотрны. 13. Перечень информационных технологий, используемых при осуществлении образовательного процесса по дисциплине (модулю), включая перечень программного обеспечения и информационных справочных систем (при необходимости). 1. Microsoft Office PowerPoint – система создания и демонстрации презентаций. Разработчик: Microsoft. Версия: MS Office 2010 и выше. 2. Microsoft Visual Studio – интегрированная среда разработки программного обеспечения. Разработчик: Microsoft. Версия: MS Visual Studio 2010 и выше. 14. Технические средства и материально-техническое обеспечение дисциплины (модуля). При освоении дисциплины для проведения лекционных занятий нужны учебные аудитории, оснащённые мультимедийным оборудованием, для проведения лабораторных занятий необходимы компьютерные классы. 15. Методические указания для обучающихся по освоению дисциплины (модуля). Для успешного сдачи зачёта студенты должны посещать лекции и практические занятия, выполнять домашние задания, выполнить все контрольные работы. Для более эффективного освоения и усвоения материала рекомендуется ознакомиться с теоретическим материалом по той или иной теме до проведения практического занятия. Работу с теоретическим материалом по теме с использованием учебника или конспекта лекций можно проводить по следующей схеме: - название темы; - цели и задачи изучения темы; - основные вопросы темы; - характеристика основных понятий и определений, необходимых для усвоения данной темы; 26 - краткие выводы, ориентирующие на определенную совокупность сведений, основных идей, ключевых положений, инструментальных возможностей, которые необходимо усвоить. Виды контроля деятельности студентов, применяемые на аудиторных занятиях, их оценка в рейтинговых баллах № п/п Вид контроля Максимальное количество баллов В случае пропуска лекции без 1. Посещение лекционных занятий уважительной причины текущий рейтинг снижается на 1 балла В случае пропуска занятия без 2. Посещение практических занятий уважительной причины текущий рейтинг снижается на 1 балла За защиту практической работы позже Выполнение практических 3. установленного срока количество баллов заданий снижается на 1. За выполнение по инициативе студента Выполнение индивидуальных индивидуальных заданий текущий 4. заданий в процессе рейтинг может быть повышен на самостоятельной работы величину 0 - 3 баллов за задание 0 - 8 баллов за ответ на вопрос теоретической части экзамена. 5. Экзамен по дисциплине 0 - 6 баллов за решения практического задания 27 Дополнения и изменения к рабочей программе на 201__ / 201__ учебный год В рабочую программу вносятся следующие изменения: _____________________________________________________________________________ _____________________________________________________________________________ _____________________________________________________________________________ _____________________________________________________________________________ _____________________________________________________________________________ _____________________________________________________________________________ _____________________________________________________________________________ _____________________________________________________________________________ ___________________________________________________________________________ Рабочая программа пересмотрена и одобрена на заседании кафедры ______________________________________ «__» _______________201 г. Заведующий кафедрой ___________________/___________________/ Подпись Ф.И.О. 28