Программа дисциплины "Программирование" для направления

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

Содержание


Бизнес Информатика
Область применения и нормативные ссылки
Цели освоения дисциплины
Компетенции обучающегося, формируемые в результате освоения дисциплины
Иметь навыки
Место дисциплины в структуре образовательной программы
Тематический план учебной дисциплины
Первый модуль (12 часов)
Второй модуль (32 часов)
Третий модуль (28 часов)
Четвёртый модуль (36 час)
Формы контроля знаний студентов
Текущий контроль
6.1. Критерии оценки знаний, навыков
Критерии определения оценки за задачу без реализации на ЭВМ
Содержание дисциплины
8.2. Методические указания студентам
9.1. Вопросы для оценки качества освоения дисциплины
Порядок формирования оценок по дисциплине
Формы работы
...
Полное содержание
Подобный материал:






Национальный исследовательский университет «Высшая школа экономики»
Программа дисциплины Программирование для направления 080700.62 Бизнес-информатика подготовки бакалавра






Правительство Российской Федерации

Федеральное государственное автономное образовательное учреждение высшего профессионального образования
"Национальный исследовательский университет
"Высшая школа экономики"


Факультет Бизнес Информатика

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

для направления 080700.62 «Бизнес-информатика»

подготовки бакалавра

Автор программы доцент, к.т.н. Б.Е. Поклонов

bpoklonov@hse.ru


Одобрена на заседании кафедры архитектуры программных систем

«___»____________ 2011 г.


Зав. кафедрой Назаров С.В.


Рекомендована секцией УМС

«___»____________ 2011 г.


Председатель Таратухина Ю.В.


Утверждена УС факультета бизнес-информатики

«___»_____________2011 г.


Ученый секретарь

________________________


Москва, 2011
  1. Область применения и нормативные ссылки


Настоящая программа учебной дисциплины устанавливает минимальные требования к знаниям и умениям студента и определяет содержание и виды учебных занятий и отчетности.

Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов направления 080700.62 подготовки бакалавра, обучающихся по специализации Бизнес-информатика изучающих дисциплину Программирование.

Программа разработана в соответствии с:
  • Образовательной программой 080700.62 Бизнес-информатика подготовки бакалавра.
  • Рабочим учебным планом университета по направлению 080700 Бизнес-информатика подготовки бакалавра, утвержденным в 2010г.


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


Дисциплина читается студентам бакалавриата на факультете бизнес-информатики ГУ-ВШЭ. Она входит в блок общих математических и естественнонаучных дисциплин и читается в первом, втором, третьем, четвёртом и пятом модулях первого курса обучения. Продолжительность курса составляет 108 аудиторных учебных часа, в том числе: 54 часа лекционных занятий, 54 часа практических занятий и 108 часов самостоятельной работы. Рубежный контроль - домашнее задание, 3 контрольные работы, курсовая работа и письменные экзамены по окончании второго и четвёртого модулей.

Освоение курса предполагает предварительное знакомство студентов с содержанием учебных дисциплин: "Математика".

Цель курса:

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

  1. Компетенции обучающегося, формируемые в результате освоения дисциплины



В результате освоения дисциплины студент должен:
  • Знать: методы и средства разработки алгоритмов и программ; средства описания данных и последовательность их обработки; приёмы процедурного и объектно-ориентированно программирования;
  • Уметь: применять методы и средства разработки алгоритмов и программ для решения прикладных и системных задач; тестировать и отлаживать программы современными способами и средствами;
  • Иметь навыки формализации предметной области и разработки структуры программ, программирования на языках высокого уровня, тестирования и отладки программ, имеющих модульную структуру.



В результате освоения дисциплины студент осваивает следующие компетенции:


Компетенция

Код по ФГОС/ НИУ

Дескрипторы – основные признаки освоения (показатели достижения результата)

Формы и методы обучения, способствующие формированию и развитию компетенции

Выпускник должен быть способен к обобщению, анализу, восприятию информации, постановке цели и выбору путей её достижения

ОК-1

воспроизводит, распознает, использует, демонстрирует, владеет

Практические занятия

Выпускник должен быть способен логически верно, аргументировано и ясно строить устную и письменную речь;

ОК-6

дает определение, воспроизводит, использует, демонстрирует, применяет, представляет связи, обосновывает, интерпретирует

Практические занятия, выполнение домашнего задания, выполнение курсовой работы

Выпускник должен иметь навыки работы с компьютером как средством управления информацией, способен работать с информацией в глобальных компьютерных сетях

ОК-13

использует, демонстрирует, владеет, применяет

Практические занятия

Выпускник должен быть способен работать с информацией из различных источников

ОК-16

распознает, использует, демонстрирует, применяет

Практические занятия, самостоятельная работа

Выпускник должен быть способен использовать основные методы естественнонаучных дисциплин в профессиональной деятельности для теоретического и экспериментального исследования

ПК-19

дает определение, распознает, использует, демонстрирует, владеет, применяет

Выполнение домашнего задания, выполнение курсовой работы



  1. Место дисциплины в структуре образовательной программы


Настоящая дисциплина относится к циклу математических и естественно научных дисциплин, обеспечивающих общенаучную подготовку.

Изучение данной дисциплины базируется на следующих дисциплинах:
  • математика;
  • введение в программирование.

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

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



  1. Тематический план учебной дисциплины





Название темы

Всего часов по дисциплине

Аудиторные часы

Самостоятельная работа










Лекции

Практические занятия




Первый модуль (12 часов)

1

Введение

4

2




2

2

Основные элементы программирования

20

4

6

10

Второй модуль (32 часов)

3

Массивы

24

6

6

12

4

Программирование с использованием классов

24

6

6

12

5

Исключения и отладка

16

4

4

8

Третий модуль (28 часов)

6

Событийное управление

12

2

2

8

7

Графический вывод.

22

6

6

10

8

Ввод-вывод.

22

6

6

10

Четвёртый модуль (36 час)

9

Интерфейсы и коллекции

34

8

8

18

10

Методы работы с файловой системой

36

8

10

18

11

Заключение

2

2










Итого:

216

54

54

108



  1. Формы контроля знаний студентов





Тип контроля

Форма контроля

1 год

Параметры **

1

2

3

4

Текущий

(неделя)

Контрольная работа




3

5

4

Письменная работа 80 минут

Курсовая







1




Письменный отчёт, проект, презентация

Домашнее задание







2




Письменный отчёт, проект, презентация

Промежуточный

Экзамен




8







Письменный экзамен 80 мин.

Итоговый

Экзамен










9

Письменный экзамен 120 мин


Текущий контроль предусмотрен по каждому модулю. Формы текущего контроля: 1 домашнее контрольное задание, 3 контрольные письменные работы и курсовая работа. Контрольное домашнее задание включает разработку, кодирование, тестирование и отладку программ решения нескольких задач из предметной области изучаемой темы. За одно контрольное домашнее задание выставляется одна оценка по десятибалльной шкале. Контрольная письменная работа предусматривает программную реализацию нескольких задач и выполняется на практических занятиях. На выполнение одной задачи в рамках практического занятия отводится 30-40 мин. учебного времени. За одну контрольную работу независимо от количества задач выставляется одна оценка по десятибалльной шкале.

Промежуточный контроль включает экзамен в конце 2-го модуля.

Итоговый контроль включает экзамен.

6.1. Критерии оценки знаний, навыков



При выполнении задачи на ЭВМ критерии делятся на две группы: основные и дополнительные. Основные критерии определяют нижний предел оценки по десятибалльной шкале в рамках соответствующей оценки по пятибалльной шкале. Дополнительные критерии определяют возможность повышения десятибалльной оценки


Основные критерии

ОТЛИЧНО”:

8 баллов

1.Программа полностью соответствует спецификации.

2.Студент может обосновать принятое решение.

3.Исходный текст документирован: назначение программы (условие задачи или ее номер по учебному пособию или номер варианта теста), номер учебной группы, фамилия и инициалы студента, дата выполнения, назначение используемых переменных, назначение и параметры определяемых программистом функций.


9 баллов

1.Программа соответствует критериям получения оценки 8 баллов.

2.Программа в целом соответствует дополнительным критериям.

10 баллов)

1.Программа соответствует критериям получения оценки 8 баллов.

2.Программа полностью соответствует дополнительным критериям.

3.Студент может выполнить анализ альтернативных вариантов решения задачи.


ХОРОШО”:

6 баллов

1.Программа в основном соответствует спецификации. Отклонения от спецификации допущены при реализации второстепенных подзадач.

2.Студент может объяснить принятое решение.

3.Исходный текст документирован.

7 баллов

1.Программа соответствует критериям получения оценки 6 баллов.

2.Программа в целом соответствует дополнительным критериям.


УДОВЛЕТВОРИТЕЛЬНО”:

4 балла

1.Программа имеет отклонения от спецификации при решении основной задачи.

2.Студент может объяснить функционирование программы по ее исходному тексту.

3.Исходный текст документирован.

5 баллов

1.Программа соответствует критериям получения оценки 4 балла.

2.Программа соответствует отдельным дополнительным критериям.


НЕУДОВЛЕТВОРИТЕЛЬНО”:

1 балл

1.Разработка программы не завершена.

2.Программа имеет синтаксические ошибки.

2 балла

1.Программа не соответствует спецификации или студент не может объяснить функционирование программы по ее исходному тексту.

2.Исходный текст документирован.

3 балла

1.Программа не соответствует спецификации.

2.Исходный текст документирован.

3.Программа соответствует отдельным дополнительным критериям.


Дополнительные критерии

1.Исходный текст структурирован.

2.Предусмотрена обработка исключительных ситуаций.

3.Предусмотрено повторное решение задачи без повторного запуска программы.

4.Программа имеет графический пользовательский интерфейс.

5.Программа имеет средства изменения размерности и формы представления данных без изменения исходного текста или при минимальных изменениях (динамическое выделение памяти, именованные константы, переопределение типов и т.п.).

6.Программа реализована по модульному принципу и декомпозирована по реализуемым функциям.


Критерии определения оценки за задачу без реализации на ЭВМ

Задача оценивается только в том случае, если применение ЭВМ не предусмотрено условием проведения теста. Критерии аналогичны критериям определения оценки за задачу при выполнении на ЭВМ, за исключением: наличие синтаксических ошибок, не приводящих к образованию новых семантически правильных конструкций и обнаруживаемых транслятором, снижает оценку не более чем на один балл.


  1. Содержание дисциплины


Введение. Задачи, цели, содержание и порядок прохождения дисциплины.

Тема 1. Информационные процессы и средства их реализации.

Понятие информации. Представление информации и единицы ее измерения. Обработка информации. Алгоритм и способы его записи. Структурный подход к разработке алгоритма. ЭВМ как средство обработки информации. Типовая структура ЭВМ. Логические основы построения ЭВМ. Математические основы построения ЭВМ. Представление числовой информации. Кодирование символьной информации. Программная модель процессора. Понятие формата команды. Фазы выполнения машинных команд Способы адресации команд и данных.

Понятие парадигмы программирования. Объектно-ориентированное программирование. Основные диаграммы языка UML. Понятие системы и среды программирования. Типы приложений. Понятие логической и физической структуры приложения. Структура исходного кода консольного приложения

Основная литература:

Г.Шилдт. С#. Учебный курс. С-Петербург: Питер, 2002. C.20-29

Фролов A.В. Язык С#. Самоучитель. М. Диалог-МИФИ, 2003, C.29-37

Г.Шилдт. Полный справочник по С#. M., С-Петербург. Киев. Издательский дом “Вильямс”, 2004. C.31-41

Дополнительная литература:

Д.Прайс, М.Гандерлой. Visual C#.NET. Полное руководство. М. Энтроп, С-Петербург. КОРОНАпринт, Киев. ВЕК, 2004. C.119-134

Секунов Н.Ю. Самоучитель С#. С-Петербург. БХВ-Петербург, 2001. C.135-137

Контрольные вопросы по теме:

- Назовите основные устройства центральной части ЭВМ и укажите их назначение.

- Выполните преобразование чисел из десятичной системы в заданную систему счисления.

- Выполните преобразование чисел из заданной системы счисления в десятичную систему счисления.

- Укажите правила получения дополнительного кода.

- Выполните операцию сложения в дополнительном коде.

- Выполните операцию вычитания в дополнительном коде.

- Что такое логический и абсолютного адрес. Укажите различия между ними.

- Какие диаграммы языка UML предназначены для отображения статического представления программы

- Какие диаграммы языка UML позволяют показать функциональное назначение программы

- Каким образом в языке UML отображается взаимодействие объектов при реализации функциональности программы


Тема 2. Основные элементы программирования

Определение класса. Пространство имен. Статические поля и методы. Значимые и ссылочные типы. Базовые значимые типы: предельные значения, свойства и методы. Константы, переменные, именованные константы. Арифметические операции и выражения. Проблема преобразования типов. Явное преобразование типов. Присваивание простое, составное, унарное. Проблема преобразования типов при присваивании. Инициализация переменных. Логические операции и операции отношения. Логические выражения. Условная операция. Первичное представление о строке символов. Операции присваивания, сравнения и конкатенации. Преобразование строки в значение базового типа и преобразование значения базового типа в строку Управляющие структуры. Блок операторов. Ветвление и сокращенное ветвление. Вложенность управляющих структур. Множественное ветвление. Использование строк в качестве переключателя. Циклы и средства управления итерациями. Понятие исключения и простейшие способы обработки исключений. Статические методы. Определение метода. Параметры метода и их модификаторы. Вызов метода. Понятие сигнатуры метода. Перегрузка методов.

Основная литература:

Г.Шилдт. С#. Учебный курс. С-Петербург: Питер, 2002. C.54-63. C.66-79. C.81-116. C.138-146. C.148-164.

Г.Шилдт. Полный справочник по С#. M., С-Петербург. Киев. Издательский дом “Вильямс”, 2004. C.53-126

Фролов A.В. Язык С#. Самоучитель. М. Диалог-МИФИ, 2003, C.55-108.

Дополнительная литература:

Д.Прайс, М.Гандерлой. Visual C#.NET. Полное руководство. М. Энтроп, С-Петербург. КОРОНАпринт, Киев. ВЕК, 2004. C.44-114

Секунов Н.Ю. Самоучитель С#. С-Петербург. БХВ-Петербург, 2001. C.53-74

Контрольные вопросы по теме:

- Перечислите стандартные типы данных и укажите форму их машинного представления.

- Укажите правила образования имен переменных.

- Какими средствами регулируется очередность выполнения операций в выражении.

- Какими средствами объявляются именованные константы.

- Дайте определение составного оператора и укажите, в каких случаях он применяется.

- Назовите операторы, с помощью которых можно управлять выполнением циклов.

- Укажите стандартные потоки ввода-вывода

- Дайте определение многомерного массива.

- Справедливо ли утверждение, что все строки являются объектами

- Каким образом можно получить значение длины строки

- Возможно ли непосредственное изменение элементов строки

- Объясните различие между строками и динамическими строками

- Справедливо ли утверждение, что статические методы вызываются через имя класса

- Укажите различие между статическими и обычными полями.

- Укажите правила соответствия между формальными и фактическими параметрами.

- Перечислите способы передачи данных в методы и укажите их достоинства и недостатки.

- Какими средствами могут обрабатываться ошибки времени исполнения программ

- В чем отличие исключения от прерывания

- Какими средствами поддерживается перехват исключений

- Что происходит в случае, если исключение не перехвачено


Тема 3. Массивы.

Одномерные массивы: объявление и инициализация. Доступ к элементу массива. Основные свойства и методы. Присваивание применительно к ссылкам. Проблема потери ссылок. Сборка мусора. Строки. Форматирование строки. Методы обработки строк. Преобразование строки в массив символов и обратное преобразование. Динамические строки. Преобразование строки в динамическую строку и обратное преобразование Массив строк. Параметры метода Main. Двухмерные массивы. Массивы с индивидуальной длиной строки. Массив объектов object. Упаковка и распаковка значений. Динамическая идентификация типов. Динамические массивы.

Основная литература:

Г.Шилдт. Полный справочник по С#. M., С-Петербург. Киев. Издательский дом “Вильямс”, 2004. C.154-164

Г.Шилдт. С#. Учебный курс. С-Петербург: Питер, 2002. C.164-180.

Фролов A.В. Язык С#. Самоучитель. М. Диалог-МИФИ, 2003, C.225-231.

Дополнительная литература:

Секунов Н.Ю. Самоучитель С#. С-Петербург. БХВ-Петербург, 2001. C.160-165

Контрольные вопросы по теме:

- К какой разновидности типов относятся массивы.

- Как назначаются номера элементам массива

- Можно ли элементу строки присвоить новое значение

- Что сравнивается при выполнении операций отношения применительно к массиву

- Сравните варианты реализации прямоугольной таблицы в виде двухмерного массива и массива массивов с точки зрения расхода основной памяти

- Сравните варианты реализации прямоугольной таблицы в виде двухмерного массива и массива массивов с точки зрения расхода времени доступа к элементу таблицы

- В чем заключается отличие массива от динамического массива с точки зрения изменения состава элементов

- Каким образом определить тип извлеченного из динамического массива элемента


Тема 4. Программирование с использованием классов

Определение собственных классов. Статические поля и методы. Инкапсуляция полей и методов. Поля только для чтения. Конструктор класса. Конструктор умолчания. Свойства классов Массив объектов классов, определяемых программистом. Отношение агрегации между классами. Конструктор копирования Отношение композиции. Структуры: Определение, объявление переменных, операции. Копирование полей при присваивании. Конструктор умолчания. Наследование. Переопределение методов. Виртуальные методы. Абстрактные классы Полиморфизм и его виды. Перегрузка операций

Основная литература:

Г.Шилдт. С#. Учебный курс. С-Петербург: Питер, 2002. C.288-360.

Фролов A.В. Язык С#. Самоучитель. М. Диалог-МИФИ, 2003, C.161-174. C.250-279.

Г.Шилдт. Полный справочник по С#. M., С-Петербург. Киев. Издательский дом “Вильямс”, 2004. C.256-349

Дополнительная литература:

Д.Прайс, М.Гандерлой. Visual C#.NET. Полное руководство. М. Энтроп, С-Петербург. КОРОНАпринт, Киев. ВЕК, 2004. C.351-405

Контрольные вопросы по теме:

- В чем заключается отличие объектов, создаваемых на базе классов и структур

- Объясните назначение конструктора и укажите отличие вызова конструктора от вызова обычных методов

- Каким способом производится замена параметров при вызове метода, если фактическим параметром является объект

- Может ли унаследованный класс получить доступ к закрытым членам базового класса

- Каким образом из конструктора унаследованного класса вызывается конструктор базового класса

- Можно ли получить доступ к скрытым переменным базового класса

- В каком порядке вызываются конструкторы в иерархии классов

- Какой принцип объектно-ориентированного программирования поддерживают виртуальные методы

- Могут ли динамические массивы содержать в качестве элементов объекты собственных классов


Тема 5. Событийное управление.

Понятие cобытия. Генерация и обработка событий. Типовая структура приложения, управляемого по событиям. Визуальное программирование. Понятие формы и элементов управления Визуальное программирование формы. Стандартные элементы управления. Установка свойств формы и ее элементов. Связывание элементов формы со стандартными обработчиками событий. Создание собственных обработчиков событий. Программное изменение свойств элементов. Многооконный интерфейс. Создание и отображение формы. Способы передачи данных между формами. Диалоговые окна.

Основная литература:

Г.Шилдт. Полный справочник по С#. M., С-Петербург. Киев. Издательский дом “Вильямс”, 2004. C.689-706

Фролов A.В., Фролов Г.В. Визуальное проектирование приложений С#. М. Кудиц-образ, 2003, C.9-17, C.175-225

Дополнительная литература:

Д.Прайс, М.Гандерлой. Visual C#.NET. Полное руководство. М. Энтроп, С-Петербург. КОРОНАпринт, Киев. ВЕК, 2004. C.806-837

Контрольные вопросы по теме:

- В чем отличие событийного управления от директивного управления

- Какими средствами поддерживается механизм управления по событиям

- Что такое обработчик события

- Каким образом можно изменить свойства элементов управления

- Каким образом связываются элементы управления и обработчики событий

- Какими средствами можно организовать передачу данных в подчиненную форму

- Каким образом организовать прием данных из подчиненной формы


Тема 6. Ввод-вывод.

Понятие потока и хранилища данных. Символьные потоки. Открытие и закрытие потока. Кодирование символов в файле. Методы чтения и записи Двоичные потоки. Открытие и закрытие потока. Особенности представления строк в файле. Методы чтения и записи. Потоки, ориентированные на байты. Открытие и закрытие потока. Методы чтения и записи. Понятие сериализации. Открытие потока. Определение объекта форматирования. Двоичное форматирование и форматирование SOAP

Основная литература:

Г.Шилдт. С#. Учебный курс. С-Петербург: Питер, 2002. C.386-419.

Фролов A.В. Язык С#. Самоучитель. М. Диалог-МИФИ, 2003, C.464-506.

Дополнительная литература:

Д.Прайс, М.Гандерлой. Visual C#.NET. Полное руководство. М. Энтроп, С-Петербург. КОРОНАпринт, Киев. ВЕК, 2004. C.531-536

Контрольные вопросы по теме:

- Что понимается под потоком ввода-вывода

- Назовите типы потоков

- Какие потоки являются предопределенными

- Каким образом определяется конец потока ввода

- Для каких целей используется буферизация потоков ввода-вывода

- Укажите средства, с помощью которых выполняется перенаправление потоков

- Укажите особенности представления строк в символьных и двоичных потоках


Тема 7. Графический вывод.

Организация графического вывода. Контекст отображения. Рисование на форме и в окне элемента управления. Идентификатор окна. Проблема перерисовки изображения и способы ее решения Рисование графических примитивов: линии, прямоугольники и многоугольники, эллипсы, сегменты, кривые, окрашенные фигуры. Растровые и векторные изображения. Буксировка, загрузка, рисование. Инструменты рисования: перья, кисти, шрифты. Вывод текста

Основная литература:

Фролов A.В., Фролов Г.В. Визуальное проектирование приложений С#. М. Кудиц-образ, 2003, C.9-17, C.388-448

Дополнительная литература:

Д.Прайс, М.Гандерлой. Visual C#.NET. Полное руководство. М. Энтроп, С-Петербург. КОРОНАпринт, Киев. ВЕК, 2004. C.667-683

Контрольные вопросы по теме:

- Что понимается под контекстом отображения

- Какими средствами можно получить контекст отображения

- На каких элементах формы можно выполнять рисование

- Каким образом решается проблема перерисовки изображения стандартных элементов управления

- Каким образом решается проблема перерисовки изображения, сформированного программой

- Сформулируйте отличия растрового и векторного изображения

- Укажите типы шрифтов, используемых при графическом выводе


Тема 8. Интерфейсы и коллекции.

Понятие интерфейса, реализация интерфейса. Стандартные интерфейсы. Динамический массив, стек, очередь и их использование в программировании Хэш-таблицы и их и их использование в программировании

Основная литература:

Г.Шилдт. С#. Учебный курс. С-Петербург: Питер, 2002. C.334-354.

Фролов A.В. Язык С#. Самоучитель. М. Диалог-МИФИ, 2003, C.430-457.

Г.Шилдт. Полный справочник по С#. M., С-Петербург. Киев. Издательский дом “Вильямс”, 2004. C.610-633

Дополнительная литература:

Д.Прайс, М.Гандерлой. Visual C#.NET. Полное руководство. М. Энтроп, С-Петербург. КОРОНАпринт, Киев. ВЕК, 2004. C.351-405

Контрольные вопросы по теме:

- Для чего предназначен интерфейс

- Какие элементы могут быть членами интерфейса

- Каким образом реализуются интерфейсы с помощью класса
  • В чем отличие динамических структур данных от массивов
  • Каким образом определить тип извлеченного из стека элемента
  • Чем отличается стек от динамического массива
  • Чем отличается очередь от динамического массива


Тема 9. Исключения и отладка.

Классические способы обработки ошибок. Предварительная проверка параметров. Проверка кодов возвратов методов. Исключения. Перехват исключения. Блок обработки исключения. Передача исключений во вложенных блоках. Передача исключений между методами. Создание собственных исключений. Понятие объекта-исключения.

Основная литература:

Г.Шилдт. С#. Учебный курс. С-Петербург: Питер, 2002. C.360-381.

Фролов A.В. Язык С#. Самоучитель. М. Диалог-МИФИ, 2003, C.283-310.

Г.Шилдт. Полный справочник по С#. M., С-Петербург. Киев. Издательский дом “Вильямс”, 2004. C.349-375

Дополнительная литература:

Д.Прайс, М.Гандерлой. Visual C#.NET. Полное руководство. М. Энтроп, С-Петербург. КОРОНАпринт, Киев. ВЕК, 2004, C.426-453.

Контрольные вопросы по теме:

- Что такое исключение

- Какими средствами могут обрабатываться ошибки времени исполнения программ

- Каким образом можно перехватывать все исключения

- Каким образом можно перехватить конкретное исключение

- Почему возникает необходимость в генерировании исключений самой программой

- Может ли исключение генерироваться повторно, после того, как оно было перехвачено

- Каким образом отображается трассировка событий, предшествовавших возникновению исключения


Тема 10. Методы работы с файловой системой.

Список логических дисков. Просмотр и выбор файла. Получение информации о файле. Просмотр и выбор каталога. Получение информации о каталоге. Проход по дереву каталогов. Отслеживание изменений

Основная литература:

Фролов A.В. Язык С#. Самоучитель. М. Диалог-МИФИ, 2003, C.506-515.

Дополнительная литература:

Д.Прайс, М.Гандерлой. Visual C#.NET. Полное руководство. М. Энтроп, С-Петербург. КОРОНАпринт, Киев. ВЕК, 2004, C.490-507.

Контрольные вопросы по теме:

- Можно ли определить время изменения файла

- Укажите типовые атрибуты файла

- Какими средствами можно изменить атрибуты файла

- Укажите типовые атрибуты каталога

- Какими средствами можно изменить атрибуты каталога

- Что такое текущий каталог

- Можно ли изменить текущий каталог


Заключение. Обзор дополнительных возможностей. Процессная и потоковая мультизадачность. Базы данных и WEB сервисы. Небезопасный код.

  1. Образовательные технологии


8.1. Методические рекомендации преподавателю


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

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

Студенты приобретают знания в области методов и средств разработки алгоритмов и программ для решения прикладных и системных задач, средств описания данных и последовательности их обработки, приемов процедурного и объектно-ориентированного программирования.

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

Дисциплина изучается на лекциях и практических занятиях. В рамках каждой темы последовательность занятий направлена на поддержание качественных изменений в освоении изучаемого материала. Целью является переход от пассивных форм восприятия к активным формам. Указанные изменения реализуются через последовательность от рассказа к показу, от показа к упражнению, от упражнения к самостоятельному применению полученных знаний.

На лекциях рассматриваются основополагающие теоретические вопросы по принципам построения алгоритмических систем программирования и методам решения в них задач прикладного и системного характера.

Лекции строятся на последовательном систематическом устном изложении преподавателем учебного материала, представляющего логически законченное целое.

Основные цели лекций:

- систематизировать основные научные знания в области методов разработки алгоритмов и программ;

- раскрыть принципы процедурного и объектно-ориентированного программирования;

- ознакомить студентов с особенностями и областями использования средств программирования;

- создать теоретические предпосылки для практического освоения приемов и методов программирования в современных интегрированных средах программирования.

Практические занятия проводятся с целью освоения средств описания данных и алгоритмов в современных системах программирования и приобретения навыков разработки и документирования программ в интегрированных средах. Практические занятия в рамках темы делятся на две подгруппы.

Практические занятия первой подгруппы обеспечивают изучение приемов и средств описания данных и организации вычислительного процесса в конкретных системах программирования.

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

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

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

При выполнении курсовых работ повышенной сложности комплексного характера студенты могут объединяться в группы по 3-5 человек с распределением функций между членами группы. Преподавателем в каждой группе из числа наиболее подготовленных студентов назначается руководитель программной разработки.


8.2. Методические указания студентам


Успешное освоение дисциплины основывается на систематической повседневной работе студентов. В процессе самостоятельной работы студенты в течение одного – двух дней прорабатывают материалы лекционных и практических занятий по конспектам и рекомендованной основной литературе.

Конспекты дополняются материалами, полученными при проработке дополнительной литературы. При подготовке к письменным контрольным работам рекомендуется самостоятельно решить 4 – 5 задач по теме работы. В качестве задач рекомендуется использовать задания из соответствующих глав учебного пособия по практикуму программирования. Выполнить тестирование вариантов решений задач на ЭВМ

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

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

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

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

  1. Оценочные средства для текущего контроля и аттестации студента


9.1. Вопросы для оценки качества освоения дисциплины

  • Перечислите стандартные типы данных и укажите форму их машинного
    представления.
  • Укажите правила образования имен переменных.
  • Какими средствами регулируется очередность выполнения операций в выражении.
  • Какими средствами объявляются именованные константы.
  • Дайте определение составного оператора и укажите, в каких случаях он
    применяется.
  • Назовите операторы, с помощью которых можно управлять выполнением циклов.
  • Укажите стандартные потоки ввода-вывода
  • Дайте определение многомерного массива.
  • Справедливо ли утверждение, что все строки являются объектами
  • Каким образом можно получить значение длины строки
  • Возможно ли непосредственное изменение элементов строки
  • Объясните различие между строками и динамическими строками
  • Справедливо ли утверждение, что статические методы вызываются через имя
    класса
  • Укажите различие между статическими и обычными полями.
  • Укажите правила соответствия между формальными и фактическими параметрами.
  • Перечислите способы передачи данных в методы и укажите их достоинства и
    недостатки.
  • Какими средствами могут обрабатываться ошибки времени исполнения программ
  • В чем отличие исключения от прерывания
  • Какими средствами поддерживается перехват исключений
  • Что происходит в случае, если исключение не перехвачено
  • К какой разновидности типов относятся массивы.
  • Как назначаются номера элементам массива
  • Можно ли элементу строки присвоить новое значение
  • Что сравнивается при выполнении операций отношения применительно к массиву
  • Сравните варианты реализации прямоугольной таблицы в виде двухмерного массива и массива массивов с точки зрения расхода основной памяти
  • Сравните варианты реализации прямоугольной таблицы в виде двухмерного массива и массива массивов с точки зрения расхода времени доступа к элементу таблицы
  • В чем заключается отличие массива от динамического массива с точки зрения изменения состава элементов
  • Каким образом определить тип извлеченного из динамического массива элемента
  • В чем заключается отличие объектов, создаваемых на базе классов и структур
  • Объясните назначение конструктора и укажите отличие вызова конструктора от вызова обычных методов
  • Каким способом производится замена параметров при вызове метода, если фактическим параметром является объект
  • Может ли унаследованный класс получить доступ к закрытым членам базового класса
  • Каким образом из конструктора унаследованного класса вызывается конструктор базового класса
  • Можно ли получить доступ к скрытым переменным базового класса
  • В каком порядке вызываются конструкторы в иерархии классов
  • Какой принцип объектно-ориентированного программирования поддерживают виртуальные методы
  • Могут ли динамические массивы содержать в качестве элементов объекты собственных классов
  • В чем отличие событийного управления от директивного управления
  • Какими средствами поддерживается механизм управления по событиям
  • Что такое обработчик события
  • Каким образом можно изменить свойства элементов управления
  • Каким образом связываются элементы управления и обработчики событий
  • Какими средствами можно организовать передачу данных в подчиненную форму
  • Каким образом организовать прием данных из подчиненной формы
  • Что понимается под потоком ввода-вывода
  • Назовите типы потоков
  • Какие потоки являются предопределенными
  • Каким образом определяется конец потока ввода
  • Для каких целей используется буферизация потоков ввода-вывода
  • Укажите средства, с помощью которых выполняется перенаправление потоков
  • Укажите особенности представления строк в символьных и двоичных потоках
  • Что понимается под контекстом отображения
  • Какими средствами можно получить контекст отображения
  • На каких элементах формы можно выполнять рисование
  • Каким образом решается проблема перерисовки изображения стандартных элементов управления
  • Каким образом решается проблема перерисовки изображения, сформированного программой
  • Сформулируйте отличия растрового и векторного изображения. Укажите типы шрифтов, используемых при графическом выводе
  • Для чего предназначен интерфейс
  • Какие элементы могут быть членами интерфейса
  • Каким образом реализуются интерфейсы с помощью класса
  • В чем отличие динамических структур данных от массивов
  • Каким образом определить тип извлеченного из стека элемента
  • Чем отличается стек от динамического массива
  • Чем отличается очередь от динамического массива
  • Что такое исключение
  • Какими средствами могут обрабатываться ошибки времени исполнения программ
  • Каким образом можно перехватывать все исключения
  • Каким образом можно перехватить конкретное исключение
  • Почему возникает необходимость в генерировании исключений самой программой
  • Может ли исключение генерироваться повторно, после того, как оно было перехвачено
  • Каким образом отображается трассировка событий, предшествовавших возникновению исключения
  • Можно ли определить время изменения файла
  • Укажите типовые атрибуты файла
  • Какими средствами можно изменить атрибуты файла
  • Укажите типовые атрибуты каталога
  • Какими средствами можно изменить атрибуты каталога
  • Что такое текущий каталог
  • Можно ли изменить текущий каталог



  1. Порядок формирования оценок по дисциплине



Итоговая оценка за первый семестр определяется как средневзвешенная оценка по десятибалльной системе О1 по формам контроля


Формы работы

Вклад в итоговую оценку (%) -

Контрольная 1 часть 1 (К1ч1)

30

Контрольная 1 часть 2 (К1ч2)

30

Экзамен (Э)

40


О1=0,2*К1ч1+0,3*К1ч2+0,5*Э

При выставлении зачёта за 1-й семестр средневзвешенная оценка округляется до меньшего числа, отбрасыванием дробной части.

Итоговая оценка за 2-й семестр определяется как средневзвешенная оценка по десятибалльной системе О2 по формам контроля


Формы работы

Вклад в итоговую оценку (%) -

Контрольная 2 (К2)

15

Контрольное домашнее задание (КДЗ)

15

Контрольная 4(К3)

70


О2=0,15*К2+0,15*КДЗ+0,7*К3


Итоговая оценка по учебной дисциплине определяется как средневзвешенная оценка по десятибалльной шкале Оит по формам контроля:


Формы работы

Вклад в итоговую оценку (%) -

Оценка итогового контроля за 1-й семестр (О1)

20

Оценка итогового контроля за 2-й семестр (О2)

30

Экзамен (ЭКЗ)

50

Оит = 0,2*О1 + 0,2*О2 + 0,5*ЭКЗ

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

Таблица соответствия оценок по десятибалльной и пятибалльной системам



По десятибалльной шкале

По пятибалльной шкале

1 - неудовлетворительно

2 - очень плохо

3 – плохо

неудовлетворительно – 2

4 - удовлетворительно

5 - весьма удовлетворительно

удовлетворительно – 3

6 - хорошо

7 - очень хорошо

хорошо – 4

8 - почти отлично

9 - отлично 10-блестяще

отлично – 5


В диплом ставится оценка за итоговый контроль, которая является результирующей оценкой по учебной дисциплине.


  1. Учебно-методическое и информационное обеспечение дисциплины


11.1. Базовые учебники

  • Г. Шилдт. С#. Учебный курс. С-Петербург: Питер, 2002..
  • Фролов А.В. Язык С#. Самоучитель. М. Диалог-МИФИ, 2003
  • Фролов А.В., Фролов Г.В. Визуальное проектирование приложений С#. М. Кудиц-
    образ, 2003



  • Г. Шилдт. Полный справочник по С#. М., С-Петербург. Киев. Издательский дом

11.2. Основная литература

  • Секунов Н.Ю. Самоучитель С#. С-Петербург. БХВ-Петербург, 2001.
  • Ч. Петцольд. Программирование в тональности С#. М. Microsoft Press, 2004.



  • Д. Прайс, М. Гандерлой. Visual C#.NET. Полное руководство. М. Энтроп, С-Петербург. КОРОН Апринт, Киев. ВЕК, 2004.
  • Жарков В.А. Компьютерная графика, мультимедиа и игры на Visual C#. M."Жарков Пресс", 2005


11.3. Программные средства


Для успешного освоения дисциплины, студент использует следующие программные средства:
  • Microsoft Visual Studio 2008 и более поздние версии.



  1. Материально-техническое обеспечение дисциплины



Для проведения лекционных занятий используются видеопроектор и аудиосистема.

Для проведения практических занятий используются персональные компьютеры и видеопроектор.


Автор программы: Поклонов Б.Е.