- •Основы алгоритмизации
- •Специфика решения задачи с использованием компьютера
- •Роль моделирования при решении сложных задач
- •Устройство компьютера как инструмента решения задач
- •Пример решения задачи с использованием компьютера
- •Вопросы для самоконтроля
- •Понятие алгоритма
- •Свойства алгоритмов и способы их задания
- •Понятие структурной алгоритмизации
- •Базовый набор алгоритмических структур
- •Примеры классических алгоритмов
- •Переменные-счетчики и аккумуляторы
- •Алгоритм перестановки значений двух переменных
- •Простейший алгоритм сортировки
- •Последовательный и двоичный поиск в массиве данных
- •Вопросы для самоконтроля
- •Основы программирования
- •Изучить три темы:
- •Ответить на вопросы для самоконтроля по каждой теме.
- •Эволюция программирования как деятельности
- •Развитие вычислительной техники
- •Парадигмы современного программирования
- •Уровни языков программирования
- •Современные языки программирования высокого уровня
- •Программирование как вид деятельности
- •Вопросы для самоконтроля
- •Инструменты программирования
- •Основные понятия программирования
- •Этапы разработки программы
- •Функции транслятора в процессе создания программы
- •Средства создания программ
- •Современные системы программирования
- •Вопросы для самоконтроля
- •Проектирование и внедрение программ
- •Этапы разработки программного обеспечения
- •Методы маркетинга программного обеспечения
- •Вопросы для самоконтроля
- •Технология алгоритмического программирования
- •Ответить на вопросы для самоконтроля по каждой теме.
- •Понятия алгоритмического программирования
- •Классификация данных
- •Базовые типы данных
- •Структурированные данные
- •Программа как совокупность операторов. Виды операторов
- •Вопросы для самоконтроля
- •Принципы структурного программирования
- •Понятие подпрограммы
- •Процедуры и функции как разновидность подпрограмм
- •Ответить на вопросы для самоконтроля по каждой теме.
- •Программный код экранной формы
- •Вопросы для самоконтроля
- •Объектно-ориентированное программирование
- •Понятие объекта и класса
- •Концепции объектно-ориентированного программирования
- •Вопросы для самоконтроля
- •Заключение
- •3.3. Глоссарий (краткий словарь терминов)
- •3.4 Технические и программные средства обеспечения дисциплины
-
Программирование как вид деятельности
Появление первых компьютеров породило программирование как науку. Этот этап характерен разработками:
-
математических теорий обработки информации,
-
средств доказательства правильности программ,
-
средств оптимизации кода,
-
эффективных компиляторов,
-
средств формального тестирования и т. д.
Появление универсальных языков программирования третьего поколения превратило программирование в искусство, направив исследования в область автоматической генерации исходных текстов и повышения эффективности компиляторов.
Рост сложности информационно-управляющих систем породил новые технологии коллективного программирования, поставив процесс разработки программного обеспечения (ПО) на поток и превратив программирование в ремесло на основе разработанных методологий и стандартов. В таблице 2.6 представлен примерный объем трудовых ресурсов, требуемый для создания программного продукта различной степени сложности, измеряемой количеством строк исходного кода.
Таблица 2.6 Потенциальные возможности человека при создании программного продукта
Объем проекта, строк исходного кода
|
Тип программы |
Время создания
|
Вероятность успешного завершения |
Число программистов |
100 |
Утилиты для временных нужд |
1 день |
100% |
1 |
1000 |
Небольшие приложения и дополнения, вносимые в готовые системы |
до 1 Месяца |
100% |
1 |
10000
|
Типичная средняя программа, разрабатываемая на заказ |
до 6 месяцев
|
85%
|
1 (предел возможностей)
|
100000
|
Большинство современных коммерческих автономных и небольших клиент-серверных приложений
|
1 год
|
85% для групп, 35% для одиночки
|
10
|
1 млн.
|
Крупные системы автоматизации
|
1,5-5 лет
|
50% для группы, 0% для одиночки
|
100
|
10 млн.
|
Операционные системы (Microsoft Windows, IBM VMS), большие военные комплексы. Предел сегодняшних возможностей. Стоимость подобной разработки может равняться стоимости большого стадиона или крупного корабля
|
5-8 лет
|
35%
|
до тысячи
|
Этапы эволюции программирования представлены на рис. 2.3.
Рис. 2.3 Эволюция программирования как деятельности
Вопросы для самоконтроля
-
Назовите основные этапы эволюции средств вычислительной техники
-
Какие ученые разработали логические основы компьютерной техники?
-
Как вы понимаете термин «парадигма программирования»?
-
В какой последовательности парадигмы программирования сменяли друг друга с течением времен?
-
Приведите примеры языков программирования в рамках каждой парадигмы
-
В чем отличие языков программирования низкого и высокого уровней?
-
Приведите примеры языков высокого уровня. Для чего они предназначены?
-
Как исторически менялся взгляд на программирование как деятельность?