ВОПРОСЫ ДЛЯ ПОДГОТОВКИ К ЭКЗАМЕНУ*

по дисциплине

Компьютерные науки

для студентов специальности 010100 "Математика"

 

Введение в компьютерные науки

Термины Computer Science и Informatics. Предмет компьютерных наук. Приоритетные направления компьютерных наук.

Понятие информации. Информация и данные. Измерение информации: синтаксическая, семантическая и прагматическая меры информации. Представление информации в компьютере. Таблица кодов ASCII. Единицы измерения информации в компьютере.

Понятия компьютера, компьютерной программы, машинной команды, системы команд компьютера. Принципы построения компьютера: основные составляющие устройства (процессор, память, устройство ввода, устройство вывода), их взаимосвязи, структура и функции. Принципы Фон Неймана: принцип программного управления, принцип однородности памяти, принцип адресности памяти. Цикл работы компьютера. Понятие архитектуры компьютера. Классификация архитектур компьютера: классическая архитектура, многопроцессорная архитектура, кластерная архитектура. Эволюция компьютеров: 1-5 поколения компьютеров, их отличительные признаки и краткая характеристика компьютеров. Классификация компьютеров: различные критерии классификации, классификация компьютеров по производительности, примеры соответствующих компьютеров.

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

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

Понятие языка программирования (ЯП). Эволюция языков программирования: 1-4 поколения языков программирования, примеры и краткая характеристика соответствующих ЯП. Классификация языков программирования: различные критерии классификации, классификации языков по уровню абстракции, базовой парадигме языка, примеры соответствующих ЯП. Основные элементы ЯП: алфавит, синтаксис и семантика ЯП, лексемы, типы данных, константы, переменные, операторы, подпрограммы, библиотеки; примеры данных элементов на соответствующих ЯП. Стандартизация ЯП, понятие мобильности программ.

Понятие среды (системы) программирования. Основные компоненты среды программирование, их назначение. Понятие цикла разработки программы на некотором ЯП: назначение этапов цикла и действия разработчика. Классификация ошибок в программе: синтаксические, семантические ошибки, ошибки времени выполнения. Понятие отладчика: назначение и основные функции.

Понятие константы в ЯП. Объявление и использование констант в языках C (также константы-макросы) и Pascal (также типизированные константы).

Понятие выражения в ЯП. Классификация и приоритет операций в языках C и Pascal.Построение и вычисление выражений в языках C и Pascal.

Понятие типа данных в ЯП. Типы данных в языке C: стандартные типы, средство typedef для определения синонимов типов. Типы данных в языке Pascal: классификация, примеры. Понятие эквивалентности типов данных, структурная и именная эквивалентность типов. Понятие совместимости типов, совместимость по присваиванию. Преобразование типов.

Файловые типы данных. Классификация файловых типов в языках C и Pascal. Стандартные подпрограммы работы с файлами в языках C и Pascal.

Ссылочные типы данных и указатели. Статические и динамические переменные программы. Стандартные подпрограммы работы с указателями в языках C и Pascal.

Понятие оператора в ЯП. Классификация операторов. Примеры операторов в языках C и Pascal. Понятие структурного программирование. Теорема о структурном программировании (с доказательством).

Понятие подпрограммы в ЯП. Виды подпрограмм в языках C и Pascal. Спецификация подпрограммы. Формальные и фактические параметры подпрограммы: определение, назначение, установление взаимного соответствия. Взаимно рекурсивные подпрограммы. Способы передачи фактических параметров в подпрограмму. Виды формальных параметров в языке Pascal. Разработка подпрограмм: выбор вида формальных параметров, понятие модульного программирования, модульная структура программы.

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

Технология программирования

Сложность -- основная проблема программирования. Основные причины сложности. Понятие технологии программирования, концептуальные, организационные и программные средства технологии программирования. Понятие жизненного цикла программного обеспечения. Этапы жизненного цикла: анализ, спецификация, проектирование, кодирование, тестирование, сопровождение. Основные проблемы, с которыми сталкиваются разработчики при создании программного обеспечения.

Структуры данных

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

ЛИТЕРАТУРА

К разделу "Введение в компьютерные науки"

К разделу "Языки программирования"


* Данный список не является списком вопросов экзаменационных билетов.

Изменено 24.09.2016

© М.Л. Цымблер