ВОПРОСЫ ДЛЯ ПОДГОТОВКИ К ЭКЗАМЕНУ*
по дисциплине
Компьютерные науки
для студентов специальности 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. Разработка подпрограмм: выбор вида формальных параметров, понятие модульного программирования, модульная структура программы.
Структура программы на ЯП высокого уровня. Понятия определяющего и использующего вхождения идентификатора, области действия и видимости декларации. Локальные и глобальные переменные. Понятие побочного эффекта подпрограммы. Распределение памяти программы: сегмент данных, сегмент стека, куча.
Технология программирования
Сложность -- основная проблема программирования. Основные причины сложности. Понятие технологии программирования, концептуальные, организационные и программные средства технологии программирования. Понятие жизненного цикла программного обеспечения. Этапы жизненного цикла: анализ, спецификация, проектирование, кодирование, тестирование, сопровождение. Основные проблемы, с которыми сталкиваются разработчики при создании программного обеспечения.
Структуры данных
Понятие структуры данных. Логическая и физическая структура данных. Классификация структур данных. Последовательные списки: стек, очередь, дек. Связные списки: однонаправленный список, двунаправленный список, циклический список. Бинарные деревья: алгоритмы обходов бинарного дерева, построения бинарного дерева поиска, поиска элемента, уничтожения дерева.
Акулов О.А., Медведев Н.В. Информатика: базовый курс. -М.: Омега, 2004. -551 с.
Бройдо В.Л., Матвеев Л.А., Макарова Н.В. Информатика. -М.: Финансы и статистика, 2001. -768 с.
Бен-Ари М. Языки программирования. Практический сравнительный анализ. -М.: Мир, 2000. -366 с.
Себеста У. Основные концепции языков программирования. -М.: Вильямс, 2001. -672 с.
Йенсен К., Вирт Н. Паскаль: руководство для пользователя. -М.: Компьютер, 1993. -254 с.
Зуев Е.А. Язык программирования Turbo Pascal 6.0. -М.: Унитех, 1992. -298 с.
Керниган Б., Ритчи Д. Язык программирования Си. -М.: Финансы и статистика, 1992. -272 с.
|
* Данный список не является списком вопросов экзаменационных билетов. |
Изменено 24.09.2016 |
© М.Л. Цымблер |