Поиск по базе сайта:
Протокол № от \" \" 2000 г. Цель курса Программа предназначена для студентов III-IV курсов физического факультета icon

Протокол № от " " 2000 г. Цель курса Программа предназначена для студентов III-IV курсов физического факультета




Скачати 116.94 Kb.
НазваПротокол № от " " 2000 г. Цель курса Программа предназначена для студентов III-IV курсов физического факультета
Дата конвертації12.02.2013
Розмір116.94 Kb.
ТипПротокол



ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ



ФИЗИЧЕСКИЙ ФАКУЛЬТЕТ


КАФЕДРА ОБЩЕЙ И ЭКСПЕРИМЕНТАЛЬНОЙ ФИЗИКИ



"УТВЕРЖДАЮ"


Декан физического факультета


________________Кузнецов В.М.


"____"_________________2000г.



РАБОЧАЯ ПРОГРАММА КУРСА

"ЯЗЫКИ ПРОГРАММИРОВАНИЯ ВЫСОКОГО УРОВНЯ"



(специальность физика - 010400)


Томск - 2000


Программа обсуждена на заседании кафедры общей и экспериментальной физики


Зав. кафедрой общей и экспериментальной физики

профессор
^

В. П. Демкин




Одобрено методической комиссией физического факультета


Председатель методической комиссии

доцент

В.М. Вымятнин




Рассмотрено и одобрено Ученым советом физического факультета


Протокол № от "____"______________________2000 г.


^ Цель курса

Программа предназначена для студентов III-IV курсов физического факультета

После изучения курса студент должен:


  • знать основные функциональные возможности современных императивных универсальных языков программирования высокого уровня;

  • владеть навыками разработки программ в рамках различных моделей программирования;

  • уметь использовать при этом интегрированные среды разработки программ.


Требования к разделам программы определяются государственным образовательным стандартом высшего профессионального образования к уровню подготовки выпускника по специальности 010400-физика.


Курс рассчитан на два семестра.


^ Объем курса


Раздел

Семестр

Объем в часах

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







Лекции

Прак-тика

Лабора- тория

Лекции

Прак-тика

Лабора- тория

Часть I. Языки программирования высокого уровня и их базовые средства описания данных и действий.

6

36

18




зачет

Контр. задания




Часть II. Механизмы абстрагирования и модели программирования.

7

36

18




экз.

Контр.

задания






^ Тематический план дисциплины

«Языки программирования высокого уровня»








Всего часов по учебному плану


В том числе аудиторных



п/п

Наименование разделов и тем




Всего часов

Лекций

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

Контрольные работы

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




^ Часть I. Языки программирования высокого уровня и их базовые средства описания данных и действий

72

54

36

18

2

18

1

Алгоритмы

9




6

0

1

3

2

Язык и мышление. Естественные и искусственные языки.

3




2

0




1

3

Языки программирования.

10




8

0




2

4

Базовые средства описания данных и действий в языках программирования высокого уровня.

43




16

18




9

5

Доказательство правильности программ.

7




4

0

1

3




^ Часть II. Механизмы абстрагирования и модели программирования

72

54

36

18

2

18

6

Механизмы абстрагирования и модели программирования.

10




6

0

1

4

7

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

52




24

16

1

12

8

Дополнительные возможности языков программирования высокого уровня

10




6

2




2



^ Аннотация курса

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

Существует два основных подхода к изучению универсальных языков программирования. Первый подход заключается в изучении конкретного языка или набора языков независимо друг от друга, не обращая внимания на их общие черты. При этом все внимание сосредотачивается на овладении синтаксическими конструкциями языка и основными правилами приведения задач к такой форме, для которой эти конструкции можно было бы применить. В рамках второго, альтернативного, подхода изучается то, что определяет сходство универсальных языков программирования – семантика средств описания данных и действий в отрыве от синтаксиса конкретного языка, используя для ее представления псевдосинтаксис. В аннотируемом курсе такой подход взят за основу. Но параллельно с псевдосинтаксисом рассматриваются и синтаксические представления изучаемых семантических конструкций в разных языковых системах (Basic, Turbo и Delphi Pascal, C++, Java), тем самым не лишая теоретическое общее языкознание конкретной языковой базы. Кроме этого в курсе уделяется пристальное внимание различным моделям программирования, создание и реализация которых в универсальных языках программирования обусловливает появление новых средств описания данных и действий, расширяющих семантику языка. В программу курса также включено рассмотрение вопросов, связанных с формализацией понятия алгоритма и ролью различных систем исчисления в становлении и развитии языков программирования. Анализируется проблема выбора языка. Изучаются способы доказательства правильности программ в рамках структурного программирования. Много времени уделяется рассмотрению объектно-ориентированного программирования. На практических занятиях курса прививаются навыки в проектировании и разработке программ с использованием современных интегрированных сред разработки.

Целью данного курса является:

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

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

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


^

ПРОГРАММА КУРСА



Часть I. Языки программирования высокого уровня

и их базовые средства описания данных и действий.


Раздел 1. Алгоритмы.

Буквы, слова, алфавиты. Нормальные алгоритмы Маркова. Машина Тьюринга.


Раздел 2. Язык и мышление. Естественные и искусственные языки.

Мышление, основанное на языке. Проблема выбора языка. Гипотеза Ворфа и принцип Черча.


Раздел 3. Языки программирования.

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


Раздел 4. Базовые средства описания данных и действий в языках программирования высокого уровня.

Объекты данных. Типы данных. Простые типы данных. Структурные типы данных. Динамические структуры данных. Выражения и операции. Арифметические операции. Логические операции и операции отношения. Поразрядные операции. Операции преобразования типа. Операторы. Простые операторы или операторы действий. Структурные операторы или операторы управления действиями. Блоки и подпрограммы. Блоки. Процедуры. Функции. Принцип совмещения.


Раздел 5. Доказательство правильности программ.

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


^ Часть II. Механизмы абстрагирования и модели программирования.


Раздел 6. Механизмы абстрагирования и модели программирования.

Процедуры. Абстракция через параметризацию. Абстракция через спецификацию. Модули. Разделение пространства имен. Интерфейс и реализация. Маскировка информации. Принцип Парнаса. Зацепление и связность. Абстрактный тип данных. Инкапсуляция. Маскировка данных. Объекты: сообщения, наследование, полиморфизм.


Раздел 7. Объектно-ориентированное программирование.

Основы объектно-ориентированного программирования. Классы и методы. Разновидности классов. Интерфейс и реализация в объектно-ориентированном программировании. Классы и методы в различных языках программирования. Сообщения, экземпляры и инициализация. Синтаксис пересылки сообщений. Механизмы создания и инициализации. Наследование. Подкласс, подтип и принцип подстановки. Формы наследования. Одиночное и множественное наследование в различных языках программирования. Повторное использование кода. «Быть экземпляром» и «включать как часть». Композиция и наследование. Закрытое наследование. Связывание методов и сообщения. Статическое и динамическое связывание. Проблема обращения полиморфизма. Связывание в различных языках программирования. Полиморфизм. Разновидности полиморфизма. Полиморфные переменные. Полиморфизм в различных языках программирования.


Раздел 8. Дополнительные возможности языков программирования.

Обработка файлов. Потоки ввода и вывода. Обработка исключений. Параллельная обработка.


^ ТЕМЫ ПРАКТИЧЕСКИХ ЗАНЯТИЙ


  1. Использование различных нотаций при написании программ. Структура программ в С++.

  2. Линейное программирование. Написание программ сортировки массива данных простого типа на С++.

  3. Написание программ сортировки массива данных структурного типа на С++.

  4. Структурное программирование. Использование подпрограмм в С++ при решении задач сортировки массива.

  5. Использование операций в С++, определяемых пользователем. Принцип совмещения.

  6. Структура программ в Turbo Pascal.

  7. Линейное программирование. Написание программ сортировки массива данных простого типа на Turbo Pascal.

  8. Написание программ сортировки массива данных структурного типа на Turbo Pascal.

  9. Структурное программирование. Использование подпрограмм в Turbo Pascal при решении задач сортировки массива.

  10. Модульное программирование. Создание модулей в С++ и в Delphi Pascal.

  11. Использование модулей при реализации объектно-ориентированного программирования. Классы и методы в Delphi Pascal.Создание и инициализация объектов.

  12. Наследование, полиморфизм и обращение полиморфизма в Delphi Pascal.

  13. Классы и методы в С++. Создание и инициализация объектов в С++.

  14. Реализация векторной алгебры с использованием функциональных возможностей языка С++.

  15. Классы и методы в Java. Создание и инициализация объектов.

  16. Подклассы и подтипы в Java. Интерфейсы.

  17. Параллельная обработка в Java.



Литература





  1. Ершов Ю. Л., Палютин Е. А. Математическая логика. – М.: Наука, 1979. – 320 с.

  2. Марков А. А. Теория алгоритмов // Труды математического института им. В. А. Стеклова, 1951, № 38, с. 176 – 189.

  3. Вирт Н. Алгоритмы и структуры данных: пер. с англ. – М.: Мир, 1989. – 360 с.

  4. Языки мира: Проблема языковой вариативности / Под ред. член-корр. АН СССР В. Н. Ярцева. – М.: Наука, 1990. – 214 с.

  5. Серебренников Б. А. Роль человеческого фактора в языке. Язык и мышление / Отв. ред. В. М. Солнцев, АН СССР, Ин-т языкознания. – М.: Наука, 1988. – 244 с.

  6. Язык компьютера: пер.с англ. / Под ред. и с предисл. В. М. Курочкина. – М.: Мир, 1989. – 240 с.

  7. Калинин А. Г., Мацкевич И. В. Универсальные языки программирования. Семантический подход. – М.: Радио и связь, 1991. – 400 с.

  8. Дал У., Дейкстра Э., Хоор К. Структурное программирование: пер. с англ. / Под ред. Э. З. Любимского и В. В. Мартынюка. – М.: Мир, 1975. – 247 с.

  9. Турский В. Методология программирования: пер. с англ. Н. А. Черных и И. В. Шитовой / Под ред. и с предисл. А. П. Ершова. – М.: Мир, 1981. – 264 с.

  10. Лисков Б., Гатэг Дж. Использование абстракций и спецификаций при разработке программ: пер. с англ. – М.: Мир, 1989. – 424 с.

  11. Практическое руководство по программированию: пер. с англ. / Б. Мик, П. Хит, Н. Рашби и др.; под ред. Б. Мика, П. Хит, Н. Рашби. – М.: Радио и связь, 1986. – 168 с.

  12. Бадд Т. Объектно-ориентированное программирование в действии: пер. с англ. – СПб.: Питер, 1997. – 464 с.

  13. Холзнер С. Microsoft Visual C++ 5 с самого начала: пер. с англ. – СПб.: Питер, 1998. – 480 с.

  14. Топп У., Форд У. Структуры данных в С++: пер. с англ. – М.: ЗАО «Издательство БИНОМ», 1999. – 816 с.

  15. Пол А. Объектно-ориентированное программирование на С++: пер. с англ. – СПб.: Невский Диалект, М.: "Издательство БИНОМ", 1999. – 462 с.

  16. Мейсо Б. Visual J++: основы программирования: пер. с англ. – К.: Издательская группа BHV, 1997. – 400 с.

  17. Вебер Д. Технология JavaTM в подлиннике: пер. с англ. – СПб.: BHV - Санкт-Петербург, 1997. – 1104 с.

  18. Епанешников А., Епанешников В. Программирование в среде Turbo Pascal 7.0. – М.: «ДИАЛОГ-МИФИ», 1998. – 288 с.

  19. Фаронов В. В. Турбо Паскаль 7.0. Практика программирования. Учебное пособие. – М.: «Нолидж», 1997. – 432 с.

  20. Культин Н. Delphi 3. Программирование на Object Pascal. – СПб.: BHV – Санкт-Петербург. 1998. – 304 с.

  21. Microsoft Visual Basic 5. Шаг за шагом: Практ. пособ. / Пер. с англ. – М.: Издательство ЭКОМ, 1998. – 432 с.

  22. Крейг Дж. К., Уэбб Дж. Microsoft Visual Basic 5.0. Мастерская разработчика: пер. с англ. – М.: Издательский отдел «Русская Редакция» ТОО «Channel Trading Ltd.», 1998. – 616 с.



Программу составил И. А. Нечаев



Схожі:




База даних захищена авторським правом ©lib.exdat.com
При копіюванні матеріалу обов'язкове зазначення активного посилання відкритою для індексації.
звернутися до адміністрації