Языки программирования
В коротком курсе (9 лекций) обсуждаются следующие вопросы, связанные с языками программирования:- Почему языков программирования так много и они такие разные?
- Как появлялись и развивались языки и технологии программированиия?
- В чем сходство и различие языков друг от друга, как их можно классифицировать?
- Базовые элементы языков программирования.
Домашние задания
Тесты
Статистика групп 201-203
Вопросы к экзамену
- Назначение языков программирования и их разнообразие.
- Компьютер как средство для выполнения программ. Уровни абстракции программного обеспечения от аппаратуры.
- Фон-Неймановская архитектура компьютера. Исполняемые программы для компьютера фон Неймана.
- Способ хранения числовых данных в компьютере.
- Способ хранения символьных данных в компьютере. Виды кодировок.
- Команды компьютера в машинных кодах. Язык ассемблера.
- Классификация языков программирования. Императивные и декларативные языки.
- Классификация языков программирования по видам типизации.
- Этапы развития технологий программирования и критерии качества программного обеспечения.
- «Стихийный» подход к программированию. Методы снижения сложности и повышения надежности программ.
- Структурный подход к программированию.
- Объектно-ориентированный и компонентный подходы к программированию.
- Общая структура языков программирования. Лексические, синтаксические и семантические правила.
- Описание синтаксиса языков программирования с помощью форм Бэкуса-Наура.
- Интерпретация и компиляция программ. Классические и смешанные схемы.
- Основные элементы языков программирования: переменные и структуры управления (последовательность, выбор, цикл).
- Подпрограммы как базовый элемент языков программирования. Связность подпрограмм.
Литература, материалы
- Обзорная лекция по языкам программирования Е.А. Зуева (кандидат физико-математических наук, ведущий программист Исследовательского центра Samsung). Доступны видео-запись лекции и презентация для нее.
- М. Густокашин "Разные языки программирования и их области применения". Лекция в Яндексе.
- Б. Мейер "Основы программирования", курс на сайте Intuit.ru
- Б. Мейер "Инструменты, алгоритмы и структуры данных", курс на сайте Intuit.ru
- Х. Абельсон, Д.Д. Сассман при участии Д. Сассман "Структура и интерпретация компьютерных программ". Добросвет, 2006 г. Классическая книга о программировании на основе вводного курса по программированию, читавшегося студентам Массачусетского технологического института. Данный курс отличается тем, что фокусируется на обучении тому, как составлять сложные программы, и на фундаментальных основах программирования.
- С. Макконнелл "Совершенный код. Мастер-класс". "Русская редакция", 2010 г. Одно из лучших практических руководств по методикам и технологиям программирования.
Презентации к лекциям
1. Назначение языков программирования и их разнообразие.
2. Двойная природа компьютера: математическая база и электронная реализация. Принципы и архитектура фон Неймана. Способы представления целых и вещественных чисел в памяти компьютера. Символьные данные и бинарный формат (символы ASCII, кодовые страницы, Unicode, кодировка UTF-8).
3. Классификация языков программирования. Низкоуровневные и высокоуровневые языки. Императивный и декларативный подходы к программированию. Типизация в языках программирования.
4. Технологии программирования: цели и этапы развития. Критерии качества ПО. Структурный подход к программированию.
5. Объектно-ориентированное программирование и компонентный подход.
6. Общая структура языков программирования. Лексические, синтаксические и семантические правила. Формы Бекуса-Наура, абстрактное синтаксическое дерево.
7. Интерпретация и комплиляция программ. Классические и смешанные схемы.
8. Базовые элементы языков программирования. Переменные и структуры управления.
Видеолекции (2017 год)
1. Популярные языки программирования. Три уровня абстракции программ от аппаратуры. Применимость языков к разным платформам (02.09.2017).
2. Принципы фон Неймана. Способы представления целых и вещественных чисел в памяти компьютера. Символьные данные и бинарный формат (символы ASCII, кодовые страницы, Unicode, кодировка UTF-8) (09.09.2017).