МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное образовательное учреждение

advertisement
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное образовательное учреждение
высшего профессионального образования
«Чувашский государственный университет имени И.Н.Ульянова»
Факультет дизайна и компьютерных технологий
«УТВЕРЖДАЮ»
Проректор по учебной работе
______________ А.Ю. Александров
«______»______________ 20__ г.
РАБОЧАЯ ПРОГРАММА ДИСЦИПЛИНЫ
«Разработка языков программирование»
Направление подготовки
231000 Программная инженерия
Профиль подготовки
Управление разработкой программных проектов
Квалификация (степень) выпускника
Бакалавр
Форма обучения
очная
Чебоксары
2011
Рабочая программа основана на требованиях Федерального государственного стандарта
высшего профессионального образования по направлению подготовки 231000 Программная
инженерия, утвержденного Приказом Минобрнауки 09.11.2009 г. № 542.
Составитель: доцент
________________Желтов П.В.
Рабочая программа рассмотрена и одобрена на заседании обеспечивающей кафедры –
компьютерных технологий (протокол № _____ от ___________2010 г.).
Зав. кафедрой: профессор
______________ Желтов В.П.
Рабочая программа согласована с Методической комиссией выпускающего факультета –
дизайна и компьютерных технологий
Председатель комиссии, декан: профессор
________________ Желтов В.П.
СОГЛАСОВАНО:
Зам. начальника УМУ: доцент
_____________М.Ю. Харитонов
1. Цели освоения дисциплины
Цель преподавания дисциплины – при написании языков программирования уделить
основное внимание программным и аппаратным архитектурам, необходимым для выполнения
программ, написанных на этих языках.
Учебная дисциплина «Разработка языков программирования» направлена на:
♦ представить обзор основных парадигм, используемых при разработке современных языков
программирования;
♦ уделить особое внимание нескольким языкам и описать их на таком уровне, чтобы
возможности этих языков можно было продемонстрировать на практических примерах;
♦ исследовать реализацию каждого языка до такой степени, чтобы студент получил
представление о соответствии между исходным текстом программы и ее поведением при
выполнении;
2. Место дисциплины в структуре ООП бакалвриата.
Дисциплина относится общепрофессиональному циклу. Дисциплина связана с
предшествующими ей курсами: «Математический анализ», «Дискретная математика»,
«Информационные технологии», «Основы ЭВМ».
3. Компетенции обучающегося, формируемые в результате освоения дисциплины
В результате изучения дисциплины студент должен
иметь представление:
 о роли и месте знаний по дисциплине при освоении смежных дисциплин по
выбранной специальности и в сфере профессиональной деятельности;
 о направлениях развития программного обеспечения вычислительной техники;
знать:
 принципы построения алгоритмов;
 типы данных и базовые конструкции изучаемых языков программирования;
 основные приемы программирования;
 интегрированные среды изучаемых языков программирования;
 основы объектно-ориентированного программирования;
уметь:
 составлять простые блок-схемы алгоритмов;
 составлять программы на алгоритмическом языке высокого уровня;
 работать в интегрированной среде изучаемых языков программирования.
4. Структура и содержание дисциплины
4.1. Структура дисциплины
Общая трудоемкость дисциплины составляет 5 зачетных единиц, 180 часов.
1
2
3
4
5
6
7
8
9
10
11
12
Проблемы
разработки языка
Влияние машинной
архитектуры
Вопросы трансляции
языка
Моделирование
свойств языка
Элементарные типы
данных
Инкапсуляция
Наследование
Управление
последовательностью
действий
Управление
подпрограммами
Управление памятью
Распределенная
обработка данных
Сетевое
программирование
Неделя семестра
Семестр
№
п/п
Виды учебной работы, включая самостоятельную
работу студентов и трудоемкость (в часах)
Раздел
дисциплины
Лекции
Практ.
зан.
Лабор.
зан.
КСР
*
СРС
**
5
4
4
5
5
2
2
5
5
2
2
5
5
2
2
5
5
4
4
10
5
5
5
4
2
2
4
2
5
5
5
5
2
2
5
5
5
2
2
2
4
5
9
5
4
2
5
32
32
2
2
69
Всего
180
Из
ауд.
зан. в
интер.
форме
Формы
текущего
контроля
успеваемости
(по неделям
семестра)
Форма
промежуточной
аттестации (по
семестрам)
экзамен,
курсовой проект
* Контроль самостоятельной работы: аудиторные занятия для проверки самостоятельной
работы студентов, приема зачета, проведения текущих консультаций.
** Самостоятельная работа студента, включая курсовой проект, курсовую работу, расчетнографические работы.
4.2. Содержание лекционных занятий (32 часа).
1. Проблемы разработки языка (4 часа)
Зачем изучать языки программирования? Краткая история языков программирования. Роль
языков программирования. Среда программирования. Обзор языка С.
2. Влияние машинной архитектуры (2 часа)
Структура и принципы работы компьютера. Виртуальные компьютеры и время связывания.
3. Вопросы трансляции языка (2 часа)
Синтаксис языка программирования. Этапы трансляции. Формальные модели трансляции.
4. Моделирование свойств языка (2 часа)
Формальные свойства языков. Семантика языка. Обзор языка ML.
5. Элементарные типы данных (4 часа)
Свойства типов и объектов. Скалярные типы данных. Составные типы данных. Обзор языка
FORTRAN.
6. Инкапсуляция (4 часа)
Структурированные типы данных. Абстрактные типы данных. Инкапсуляция при помощи
подпрограмм. Эквивалентность типов. Обзор языка С++
7. Наследование (2 часа)
Повторное рассмотрение абстрактных типов данных. Наследование. Полиморфизм
8. Управление последовательностью действий (2 часа)
Явное и неявное управление последовательностью действий. Древовидное представление во
время выполнения программы. Представление выражений. Обзор языка Prolog. Унификация.
9. Управление подпрограммами (2 часа)
Управление последовательностью подпрограмм. Атрибуты управления данными. Передача
параметров. Явно определяемая общая среда
10. Управление памятью (2 часа)
Размещаемые в памяти элементы. Память, управляемая программистом и системой.
Статическое управление памятью. Управление кучей
11. Распределенная обработка данных (2 часа)
Различные варианты управления подпрограммами. Параллельное программирование.
Развитие аппаратной части компьютера. Архитектура программного обеспечения
12. Сетевое программирование (4 часа)
Настольные издательские системы. Всемирная паутина WWW
4.3. Содержание лабораторных занятий (32 часа).
1. Составление блок-схем алгоритмов.
2. Составление таблиц истинности
3. Составление программ линейной структуры
4. Составление программ разветвляющейся структуры.
5. Составление программ разветвляющейся усложненной структуры.
6. Составление программ циклической структуры.
7. Составление программ усложненной структуры.
8. Обработка двухмерных массивов
9. Использование стандартных функций для работы с массивами.
10. Использование стандартных функций и процедур для работы со строками.
11. Организация процедур.
12. Разработка программ с чтением и записью файлов разных типов.
13. Создание библиотеки подпрограмм.
14. Изучение интегрированной среды разработчика.
5. Образовательные технологии
В процессе изучения дисциплины используются:
• раздаточный материал для изучения лекционного материала;
• учебный материал в электронном виде;
• контрольные программы по курсу для подготовки к сдаче семестровой аттестации и
экзамена;
• программное обеспечение в соответствии с содержанием дисциплины;
6. Учебно-методическое обеспечение самостоятельной работы студентов. Оценочные
средства для текущего контроля успеваемости, промежуточной аттестации по итогам
освоения дисциплины
6.1. Перечень заданий для самостоятельной работы и проведения текущего контроля.
1. Понятие алгоритма.
2. Формы записей алгоритмов.
3. Основные алгоритмические конструкции: линейные, разветвляющиеся, циклические.
4. Законы логических операций.
5. Эволюция языков программирования.
6. Классификация языков программирования.
7. Понятие системы программирования.
8. Исходный, объектный и загрузочный модули.
9. Типы приложений. Консольные приложения.
10. Оконные Windows приложения.
11. Синтаксис операторов: присваивания, ввода-вывода, безусловного и условного
переходов, циклов.
12. Массивы как структурированный тип данных.
13. Объявление массива.
14. Ввод и вывод двухмерных массивов. Обработка массивов
15. Структурированные типы данных: строки и множества.
16. Поиск, удаление, замена и добавление символов в строке.
17. Функции: способы организации и описание.
18. Вызов функций, рекурсия.
19. Типы файлов. Организация доступа к файлам.
20. Запись в файл и чтение из файла последовательного доступа.
21. Порядок работы с файлами произвольного доступа.
22. Стандартные процедуры и функции для файлов разного типа.
6. 2. Перечень примерных вопросов к экзамену
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Свойства алгоритмов.
Общие принципы построения алгоритмов.
Основы алгебры логики.
Логические операции с высказываниями: конъюнкция, дизъюнкция, инверсия.
Таблицы истинности.
Элементы языков программирования.
Интегрированная среда программирования.
Web-приложения. Библиотеки. Web-сервисы.
Составной оператор. Вложенные условные операторы.
Ввод и вывод одномерных массивов.
Объявление строковых типов данных.
Понятие подпрограммы.
Программирование рекурсивных алгоритмов. Стандартные функции.
Открытие и закрытие файла последовательного доступа.
Файлы произвольного доступа.
16.
17.
18.
19.
20.
Запись и считывание из файла произвольного доступа.
Операции со строками. Стандартные функции и процедуры для работы со строками.
Файлы последовательного доступа.
Использование файла произвольного доступа.
Создание структуры записи. Открытие и закрытие файла произвольного доступа.
6. 3. Перечень примерных вопросов к курсовому проекту
Разработать язык программирования. Описать идеи языка, достоинства, недостатки языка,
структуру программы языка, реализация компилятора-транслятора, пример программы на
разработанном языке.
7. Учебно-методическое и информационное обеспечение дисциплины
а) основная литература:
1.
Аляев Ю., Козлов О. Алгоритмизация и языки программирования Pascal, C++, Visual
Basic. – М.: Финансы и статистика, 2003.
2.
Баженова И. Delphi6: Самоучитель программиста. – М.: КУДИЦ-ОБРАЗ, 2002.
3.
Голицына О.Л., Попов И.И. Основы алгоритмизации и программирования: Учебное
пособие.– М.: Форум: Инфра-М, 2004.
4.
Грейди Буч. Объектно-ориентированный анализ и проектирование с примерами
приложений на C++ /Пер. с англ. – 2-е изд.– М.: Бином, 2000.
5.
Грызлов В.И., Грызлова Т.П. Турбо Паскаль 7.0. – М.: ДМК, 2000.
6.
Кетков Ю., Кетков А. Практика программирования: Visual Basic, С++Builder. – СПб.:
BHV, 2002.
7.
Немнюгин С.А. Тurbo Pascal. – CПб.: Питер, 2000.
8.
Семакин И.Г., Шестаков А.П. Основы программирования: Учебник. – М.: Мастерство,
2001.
9.
Фаронов В. Delphi6: Учебный курс. – СПб: Питер, 2002.
10. Эккель Б. Философия С++. Введение в стандартный С++. 2-е изд. — СПб.: Питер, 2004.
б) дополнительная литература:
1. Коллинз У.Дж. Структуры данных и стандартная библиотека шаблонов. — М.: ООО
"Бином-Пресс", 2004.
2. Хэзфилд Р., Кирби Л. и др. Искусство программирования на С. Фундаментальные
алгоритмы, структуры данных и примеры приложений. Энциклопедия программиста: Пер. с англ.
– К.: Издательство «ДиаСофт», 2001.
3. Чарнецки К., Айзенекер У. Порождающее программирование: методы, инструмента,
применение. Для профессионалов. — СПб.: Питер, 2005.
4. Шеферд Дж. Программирование на Microsoft Visual C++.NET. Мастер-класс / Пер. с англ.
— 2-е изд. — М.: Издательско-торговый дом «Русская редакция»; СПб.: Питер, 2005.
Бокс Д. Сущность технологии COM. — СПб.: Питер, 2001.
8 Материально-техническое обеспечение дисциплины:
Специально оборудованные кабинеты и аудитории: компьютерные классы, аудитории,
оборудованные мультимедийными средствами обучения.
Related documents
Download