гОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

Дальневосточный государственный университет путей сообщения

Естественнонаучный институт

УТВЕРЖДАЮ:

Заведующий кафедрой

профессор

___________________

«______»_________ 2010 г.

Рабочая программа

дисциплины  Языки программирования и методы трансляции

полное наименование дисциплины

для специальности / направления подготовки  – Прикладная математика и информатика.

Составитель (и)  ст. преподаватель

должность, Ф. И.О.

Обсуждена на заседании кафедры  Прикладная математика

полное наименование кафедры-разработчика

«__» ____________ 20____ г., протокол № ___

Одобрена на заседании методической комиссии   Естественнонаучного института

полное наименование института/факультета

«__» ____________ 20____ г., протокол № ___

2010 г.

ОГЛАВЛЕНИЕ

ВВЕДЕНИЕ. 3

1. ЦЕЛИ ПРЕПОДАВАНИЯ ДИСЦИПЛИНЫ.. 3

2. ЗАДАЧИ ДИСЦИПЛИНЫ.. 3

3. СВЯЗЬ С ДРУГИМИ ДИСЦИПЛИНАМИ.. 3

4. ОБЪЕМ ДИСЦИПЛИНЫ И ЕГО РАСПРЕДЕЛЕНИЕ ПО ВИДАМ РАБОТ. 4

5. ТРЕБОВАНИЯ ГОС К ОБЯЗАТЕЛЬНОМУ МИНИМУМУ СОДЕРЖАНИЯ ОСНОВНОЙ ОБРАЗОВАТЕЛЬНОЙ ПРОГРАММЫ.. 4

6. СОДЕРЖАНИЕ ДИСЦИПЛИНЫ.. 4

6.1. Содержание лекционного курса. 4

6.2. Содержание лабораторных занятий. 5

6.3. Задания для РГР. 6

6.4. Самостоятельная работа студентов. 6

6.5. Перечень и темы промежуточных форм контроля. 6

7. ВОПРОСЫ К ЭКЗАМЕНУ.. 7

8. КАЛЕНДАРНЫЙ План ДИСЦИПЛИНЫ.. 8

9. УЧЕБНО-МЕТОДИЧЕСКИЕ МАТЕРИАЛЫ ДИСЦИПЛИНЫ.. 10

НЕ нашли? Не то? Что вы ищете?

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

9.2. Дополнительная литература. 11

10. МАТЕРИАЛЬНО-ТЕХНИЧЕСКОЕ ОБЕСПЕЧЕНИЕ ДИСЦИПЛИНЫ.. 11

11. ТЕХНОЛОГИЧЕСКАЯ КАРТА ИЗУЧЕНИЯ ДИСЦИПЛИНЫ.. 12


ВВЕДЕНИЕ

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

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

1. ЦЕЛИ ПРЕПОДАВАНИЯ ДИСЦИПЛИНЫ

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

2. ЗАДАЧИ ДИСЦИПЛИНЫ

К задачам дисциплины относится ознакомление студентов с принципами построения современных алгоритмических языков, с приемами конструирования алгоритмов при решении различного рода задач, с концепциями современного программирования на языках Паскаль, С, С++, с процессом трансляции программ.

3. СВЯЗЬ С ДРУГИМИ ДИСЦИПЛИНАМИ

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

Дисциплина «Языки программирования и методы трансляции» является естественным продолжением дисциплины «Информатика», изучаемой студентами в 1 семестре. Базовые знания и умения, полученные ими на занятиях по информатике, закрепляются в процессе изучения дисциплины «Языки программирования и методы трансляции».

4. ОБЪЕМ ДИСЦИПЛИНЫ И ЕГО РАСПРЕДЕЛЕНИЕ ПО ВИДАМ РАБОТ

Вид учебной работы

Всего

Очное

Семестры

2 семестр

Аудиторные занятия, в т. ч.

72

72

- лекции

18

18

- лабораторные занятия

54

54

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

78

78

Всего часов

150

150

РГР

+++

+++

Экзамен

+

+

5. ТРЕБОВАНИЯ ГОС К ОБЯЗАТЕЛЬНОМУ МИНИМУМУ СОДЕРЖАНИЯ ОСНОВНОЙ ОБРАЗОВАТЕЛЬНОЙ ПРОГРАММЫ

ОПД. Ф.05

Языки программирования и методы трансляции:

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

6. СОДЕРЖАНИЕ ДИСЦИПЛИНЫ

6.1. Содержание лекционного курса

Номер семестра и недели

Шифр лекции

Содержание лекции

Кол-во

часов

2.2

ЛК.1

Адресация памяти. Использование типа данных «указатель»

2

2.4

ЛК.2

Динамические структуры данных. Работа с линейным списком. Обработка многосвязных списков

2

2.6

ЛК.3

Операции по созданию и управлению структурами данных стек, очередь

2

2.8

ЛК.4

Основные понятия и методы объектно-ориентированного программирования

2

2.10

ЛК.5

Использование объектно-ориентированного подхода при разработке ПО

2

2.12

ЛК.6

Структура микропроцессора. Знакомство с языками программирования низкого уровня

2

2.14

ЛК.7

Формальные языки и грамматики: основные понятия

2

2.16

ЛК.8

Трансляторы: принципы работы, построения

2

2.18

ЛК.9

Обзорная лекция

2

Всего

18

6.2. Содержание лабораторных занятий

Номер семестра и недели

Шифр ЛР

Тема ЛР

Кол-во часов

1

ЛР.1

Входной контроль знаний. Использование основных типов данных

4

2

ЛР.2

Решение задач с использованием одномерных массивов

2

3

ЛР.3

Решение задач с использованием многомерных массивов

4

4

ЛР.4

Динамические массивы

2

5

ЛР.5

Массивы. Задачи повышенной сложности

4

6

ЛР.6

Структуры, записи

2

7

ЛР.7

Комбинированные типы данных, массивы структур

4

8

ЛР.8

Решение задач с использованием динамических структур данных

2

9

ЛР.9

Работа с односвязными списками

4

10

ЛР.10

Работа с двусвязными списками

2

11

ЛР.11

Использование очередей при решении задач

4

12

ЛР.12

Использование стека для решения задач. Различные варианты реализации стека

2

13

ЛР.13

Работа с текстовыми файлами

4

14

ЛР.14

Работа с двоичными файлами

2

15

ЛР.15

Реализация математической модели вычислений

4

16

ЛР.16

Использование различных библиотек языков программирования C++ и Паскаль для решения математических задач

2

17

ЛР.17

Обзорная работа по стандартной библиотеке С++

4

18

ЛР.18

Итоговое занятие

2

Всего

54

6.3. Задания для РГР

Расчетно-графическая работа 1.

Тема: работа с С-строками.

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

Расчетно-графическая работа 2.

Тема: динамические структуры данных.

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

Расчетно-графическая работа 3.

Тема: объектно-ориентированное программирование.

Задание: разработать класс для работы с «длинной арифметикой». Реализовать функции сложения, вычитания, умножения и целочисленного деления чисел, в десятичной записи которых присутствует до 500 знаков.

6.4. Самостоятельная работа студентов

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

Формы самостоятельной работы:

1.  Проработка лекционного материала.

2.  Доработка лабораторных работ.

3.  Оформление результатов РГР.

6.5. Перечень и темы промежуточных форм контроля

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

Темы промежуточного контроля:

1.  Парадигмы программирования.

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

3.  Одномерные и многомерные массивы в языке программирования С++.

4.  Динамическая память, указатели.

5.  Динамические массивы.

6.  Динамические структуры данных.

7. ВОПРОСЫ К ЭКЗАМЕНУ

1.  Типы данных, определяемые пользователем. Переименование типов, перечисления.

2.  Типы данных, определяемые пользователем. Структуры и объединения.

3.  Типы данных, определяемые пользователем. Битовые поля.

4.  Базовые типы данных С++. Размеры данных разных типов.

5.  Объявления и определения. Понятия и различия. Объявление нескольких имён.

6.  Константы и переменные. Область видимости и время жизни.

7.  Выражения и инструкции. Инициализация. Lvalue.

8.  Операторы для организации циклов. Операторы безусловного перехода.

9.  Ввод-вывод в стиле С.

10.  Ввод-вывод в стиле С++.

11.  Файловый ввод-вывод в стиле С.

12.  Указатели и массивы. Инициализация массивов. Связь указателей и массивов.

13.  Ссылки. Нулевой указатель. Синтаксис операторов new и delete.

14.  Динамические массивы. Выделение и освобождение памяти.

15.  Явные преобразования типов. Принудительное задание типов неименованным константам.

16.  Объявления и определения функций. Передача аргументов, возвращаемое значение.

17.  Передача массивов в качестве аргументов функции.

18.  Функции. Указатели на функцию.

19.  Макросы.

20.  Условная компиляция. Стражи включения.

21.  Путь от исходного текста программы к исполнимому машинному коду.

22.  Компилятор, препроцессор, компоновщик. Заголовочные файлы.

23.  Динамические структуры данных. Списки.

24.  Динамические структуры данных. Очереди.

25.  Динамические структуры данных. Деревья.

26.  Динамические структуры данных. Стеки.

8. КАЛЕНДАРНЫЙ План ДИСЦИПЛИНЫ

План лекций, практических и лабораторных занятий

Недели

Количество часов

Тема и структура лекций

Формы проведения. Использование ТСО, ЭВМ

Количество часов

Тема и содержание практических и лабораторных занятий

Формы проведения. Использование ТСО, ЭВМ

Контроль качества усвоения материала

1

2

3

4

5

6

7

8

1

2

Адресация памяти. Использование типа данных «указатель»

4

Входной контроль знаний. Использование основных типов данных

ЭВМ

Опрос

2

2

Решение задач с использованием одномерных массивов

ЭВМ

Опрос

3

2

Динамические структуры данных. Работа с линейным списком. Обработка многосвязных списков

4

Решение задач с использованием многомерных массивов

ЭВМ

Опрос

4

2

Динамические массивы

ЭВМ

Опрос

5

2

Операции по созданию и управлению структурами данных стек, очередь

4

Массивы. Задачи повышенной сложности

ЭВМ

Опрос

6

2

Структуры, записи

ЭВМ

Опрос

7

2

Основные понятия и методы объектно-ориентированного программирования

4

Комбинированные типы данных, массивы структур

ЭВМ

Опрос

8

2

Решение задач с использованием динамических структур данных

ЭВМ

Опрос

9

2

Использование объектно-ориентированного подхода при разработке ПО

4

Работа с односвязными списками

ЭВМ

Опрос

10

2

Работа с двусвязными списками

ЭВМ

Опрос

11

2

Структура микропроцессора. Знакомство с языками программирования низкого уровня

4

Использование очередей при решении задач

ЭВМ

Опрос

12

2

Использование стека для решения задач. Различные варианты реализации стека

ЭВМ

Опрос

13

2

Формальные языки и грамматики: основные понятия

4

Работа с текстовыми файлами

ЭВМ

Опрос

14

2

Работа с двоичными файлами

ЭВМ

Опрос

15

2

Трансляторы: принципы работы, построения

4

Реализация математической модели вычислений

ЭВМ

Опрос

16

2

РГР. Построение математических моделей, использование различных библиотек языков программирования C++ и Паскаль для решения математических задач

ЭВМ

Опрос

17

2

Обзорная лекция

4

Выполнение расчетно-графической работы

ЭВМ

Опрос

18

2

Защита расчетно-графической работы

Выполнение графика самостоятельной работы.

Наименование вида работы (подготовка к аудиторным занятиям, РГР, КП, КР и т. д.)

Часы самост. работы

Срок выдачи

Срок сдачи

Рейтинговые баллы по неделям и видам работ

Рейтинг по виду работ

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

Подготовка к Л. Р. 1

4

1

1

3

3

Подготовка к Л. Р. 2

4

1

2

3

3

Подготовка к Л. Р. 3

4

2

3

3

3

Подготовка к Л. Р. 4

4

3

4

3

3

Подготовка к Л. Р. 5

4

4

5

3

3

Подготовка к Л. Р. 6

4

5

6

3

3

Подготовка к Л. Р. 7

4

6

7

3

3

Подготовка к Л. Р. 8

4

7

8

3

3

Подготовка к Л. Р. 9

4

8

9

3

3

Подготовка к Л. Р. 10

4

9

10

3

3

Подготовка к Л. Р. 11

4

10

11

3

3

Подготовка к Л. Р. 12

4

11

12

3

3

Подготовка к Л. Р. 13

4

12

13

3

3

Подготовка к Л. Р. 14

4

13

14

3

3

Подготовка к Л. Р. 15

4

14

15

3

3

Подготовка к Л. Р. 16

4

15

16

3

3

РГР

14

12

18

12

12

Экзамен

40

Рейтинг за неделю

6

6

6

6

6

6

6

6

12

Рейтинг с нарастанием

6

12

18

24

30

36

42

48

60

100

9. УЧЕБНО-МЕТОДИЧЕСКИЕ МАТЕРИАЛЫ ДИСЦИПЛИНЫ

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

1. C/С++. Программирование на языке высокого уровня – СПб.: Питер, 2005 – 464 с.: ил.

2. . С++. Объектно-ориентированное программирование: учебное пособие. – СПб.: Питер, 2008 – 464 с.: ил.

3. , С++. Объектно-ориентированное программирование: Практикум. – СПб.: Питер, 2005. – 265с.: ил.

4. , Самойленко программирования и методы трансляции. – СПб.: БХВ-Петербург, 2005.

5. Карпов и технология программирования. Основы построения трансляторов. – СПб.: БХВ-Петербург, 2005.

6. Свердлов программирования и методы трансляции: Учебное пособие. – СПб.: Питер, 2007. – 638 с.: ил.

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

7. Язык программирования С++. Специальное издание. Пер. с англ. – М.: -Пресс», 2004 г. – 1104 с.: ил.

8. Объектно-ориентированное программирование в С++. Классика Computer Science. 4-е изд. – СПб.: Питер, 2006. – 928 с.: ил.

9. Ахо, Лам, Сети, Рави, Ульман, Компиляторы: принципы, технологии и инструментарий, 2-е изд.: Пер. с англ. – М.: . Д. Вильямс», 2008 – 1184 с.: ил.

10. МАТЕРИАЛЬНО-ТЕХНИЧЕСКОЕ ОБЕСПЕЧЕНИЕ ДИСЦИПЛИНЫ

Программное обеспечение:

1. Среда разработки Embarcadero RAD Studio 2010 (Delphi 2010 и C++ Builder 2010) или более поздние версии.

2. Среда разработки Microsoft Visual Studio 2008 (Microsoft Visual C++) или более поздние версии

11. ТЕХНОЛОГИЧЕСКАЯ КАРТА ИЗУЧЕНИЯ ДИСЦИПЛИНЫ

Направление 010500 – Прикладная математика и информатика

Специальность – Математик, системный программист

Семестр 2

Трудоемкость дисциплины _5_ зач. ед.

Число часов в семестре _150_

Число часов в неделе _4_

лекций _18_

лабораторных работ _54_

практических (семинарских) занятий _0_

самостоятельной работы _78ч_

Форма отчетности _РГР, экзамен_

Семестровая технологическая карта дисциплины

Наименование элемента модуля

Неделя начала изучения элемента модуля

Номера разделов

основных учебников

Аудиторная работа

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

работа

Рубежный контроль

Лекции

Лабораторные работы

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

Затраты времени

в часах

Учебно-методическая

литература

Неделя рубежного контроля

Рейтинговый балл

Номер лекции

Затраты времени

в часах

ТСО

Учебно-методическая литература

Номер

лабораторной

работы

Затраты времени

в часах

ТСО

Учебно-методическая литература

Номер практического (семинарского)

занятия

Затраты времени

в часах

ТСО

Учебно-методическая

литература

Алгоритмические языки программирования

1

1[1],

1-5[2],

1[3], 1-3[5]

1

2

3

4

5

10

[1],

[2],

[3],

[5]

1-18

54

ПК,

[1],

[3]

-

-

-

-

52

[3]

[5]

10

30

Формальные языки и грамматики. Трансляция.

11

1-3[4],

6[5],

1[6]

6

7

8

9

8

[4],

[5],

[6]

-

-

-

-

-

-

-

-

26

[4]

18

100