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

Содержание

Слайд 2

Как устроен компьютер?

Как устроен компьютер?

Слайд 3

Как устроен компьютер? Шеннон основал новый раздел информатики — теория информации.

Как устроен компьютер?

Шеннон основал новый раздел информатики — теория информации. В 1948 году

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

Первый язык программирования высокого уровня – ФОРТРАН – был создан Дж.Бэкусом,

Первый язык программирования высокого уровня – ФОРТРАН – был создан Дж.Бэкусом,

чтобы математики могли программировать на уровне формул.

1950

1960

1970

1980

1990

2000

2010

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

Слайд 5

Императивные языки программирования • программирование переключателей • машинные коды • язык

Императивные языки программирования

• программирование переключателей

• машинные коды

• язык ассемблера

• FORTRAN

1950

1960

1970

1980

1990

2000

2010

♦ LISP

С, Pascal

○ С++

○ Java

○ C#

○ Python

Слайд 6

Императивные (алгоритмические) языки программирования Программы состоят из операторов Операторы «что-то делают»:

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

Программы состоят из операторов
Операторы «что-то делают»: изменяют состояние

памяти
Состояние памяти определяется переменными

var num1, num2, a: extended;
i: integer;
begin
num2 := x;
a := x;
i := 0;
repeat
num1 := num2;
a := a * (sqr(x) / (4*sqr(i) + 10*i + 6));
num2 := num1 + a;
Inc(i);
until abs(num2 - num1) < e;

Слайд 7

Объектно-ориентированные языки Необходимо как-то структурировать код Мир состоит из объектов и

Объектно-ориентированные языки

Необходимо как-то структурировать код
Мир состоит из объектов и классов объектов,

со своими свойствами
Более «конкретные» объекты наследуют свойства более абстрактных
Ключевые свойства:
Инкапсуляция
Наследование
Полиморфизм (абстракция)
Слайд 8

Функциональные языки программирования Иногда удобно представлять процесс обработки данных как применение

Функциональные языки программирования

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

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

let solve a b c =
let d = b*b-4.0*a*c
(-b+sqrt(d))/2./a, (-b+sqrt(d))/2./a
solve 1.0 2.0 5.0

Слайд 9

Эволюция языков программирования • программирование переключателей • машинные коды • язык

Эволюция языков программирования

• программирование переключателей

• машинные коды

• язык ассемблера

• FORTRAN

1950

1960

1970

1980

1990

2000

2010

♦ FP

LISP

• С, Pascal

○ С++

○ Java

○ C#

♦ Haskell

♥ Prolog

♥ Mercury

♦ F#

♦ OCaml

♦ ML

♦ Miranda

○ Python

Слайд 10

Платформа .NET

Платформа .NET

Слайд 11

Когда нужны разные языки?

Когда нужны разные языки?

Слайд 12

Другие компьютерные языки (web программирование) Разметка текста (HTML, XAML, CSS, …)

Другие компьютерные языки (web программирование)

Разметка текста (HTML, XAML, CSS, …)
Представление данных

(XML, KML)
Запросы к данным (SQL)

Слайд 13

Разметка текста - HTML Привет! Это пример разметки в HTML

Разметка текста - HTML



Привет!


Это пример
разметки в

HTML




Слайд 14

Представление данных - XML @shwars title="Programming Languages" />

Представление данных - XML



@shwars


title="Programming Languages" />


Слайд 15

Запросы к данным - SQL People Publications SELECT People.Name, Publications.Title FROM

Запросы к данным - SQL

People

Publications

SELECT People.Name, Publications.Title
FROM People, Publications
WHERE

People.ID = Publications.Person_ID

SELECT People.PName,
(SELECT COUNT(*) FROM Publications
WHERE Publications.Person_ID=People.ID)
AS Count FROM People

Слайд 16

Основная литература: 1. Тюгашев А.А. Языки программирования: Учебное пособие. Стандарт третьего

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

1. Тюгашев А.А. Языки программирования: Учебное пособие. Стандарт
третьего

поколения. – СПб: Питер, 2015. – 336 с.
2. Орлов С.А. Теория и практика языков программирования: Учебник для
вузов. Стандарт 3-го поколения. – СПб.: Питер, 2014. – 688 с.
3. Фаронов В.В. Delphi. Программирование на языке высокого уровня:
Учебник для вузов. – СПб.: Питер, 2011. – 640 с.
4. Белов В.В., Чистякова В.И. Программирование в Delphi: процедурное,
объектно-ориентированное, визуальное. Учебное пособие для вузов. –
М.:Горячая линия-Телеком, 2014. – 240 с.
5. Голицына О.Л., Попов И.И. Основы алгоритмизации и программирова-
ния. – М.: ФОРУМ:ИНФРА-М, 2015. – 432 с.

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

1. Федерико Бьянкуцци, Шейн Уорден. Пионеры программирования. –
СПб:Символ-плюс, 2011. – 608 с.
2. Довек Жиль, Леви Жан-Жак. Введение в теорию языков программирова-
ния. – М.:ДМК пресс, 2013. – 134 с.
3. Гавриков М.М. и др. Теоретические основы разработки и реализации
языков программирования. – М.:КНОРУС, 2013. – 178 с.

Слайд 17

Распределение учебной нагрузки студента по дисциплине «Языки программирования» в 2016/2017 уч.

Распределение учебной нагрузки студента по дисциплине «Языки программирования» в 2016/2017 уч. году

Задания:
1.

ПР №1 (Императивное программирование (Delphi – консоль или Turbo Pascal 7.1): 1.1. Беспроцедурное и 1.2. Процедурное
2. ПР №2 (Объектно-ориентированное программирование Delphi 7, см. методические указания) - к аттестации в сер. семестра
3. ПР №3 (Функциональное программирование) – необязательное выполнение
4. Отчет о практических работах №1,№2 и №3 (см. Образец!).
5. КСР №1 и КСР №2 (≡ участие в Интернет-олимпиадах, соответственно «Информатика» и «Математика»)
6. КСР №3 (≡ доклад-презентация и отчет)
Слайд 18

Экзамен«автоматом»: Успешное и в срок прохождение семестровой аттестации (ПР1 и ПР2)

Экзамен«автоматом»:

Успешное и в срок прохождение семестровой аттестации (ПР1 и ПР2)
2. Защита

обязательных ПР (ПР №1 и ПР №2) на «отлично»
3. Доклад-презентация и участие в Интернет-олимпиаде(ах);
4. Успешное выполнение КСР №1, №2 и №3 (или аналог)
Иметь книги (Основная литература);
Дополнить две обязательные ПР (ПР №1 – «Императивное программирование» и ПР №2 – «Объектно-ориентированное программирование») - ПР №3 – «Функциональное программирование»
7. Альтернативой пунктам 3,4,5 и 6 – участие в конференции студентов и аспирантов МИИГАиК’2017 с публикацией в электронном/традиционном журнале.
Слайд 19

Индивидуальный вариант задания при выполнении практических работ (ПР1÷ПР3) на тему: «Вычисление определенного интеграла методом средних прямоугольников»

Индивидуальный вариант задания при выполнении практических работ (ПР1÷ПР3) на тему: «Вычисление определенного

интеграла методом средних прямоугольников»