2011-12 БИ ТОИ - Высшая школа экономики

реклама
Правительство Российской Федерации
Федеральное государственное автономное образовательное учреждение
высшего профессионального образования
"Национальный исследовательский университет
"Высшая школа экономики"
Факультет бизнес-информатики
Программа дисциплины
Теоретические основы информатики
для направления 080500.62 Бизнес-информатика
подготовки бакалавров
Авторы программы: Л.Н. Лядова, к.ф.-м.н., доцент, [email protected]
(И.О. Фамилия, учёная степень, звание, электронный адрес)
Одобрена на заседании кафедры информационных технологий в бизнесе «___»
Зав. кафедрой
201_ г.
О.Л. Викентьева
Утверждена Учебно-методическим Советом ПФ НИУ-ВШЭ «____»
Председатель
201_ г.
Г.Е. Володина
Пермь, 2012
Настоящая программа не может быть использована другими подразделениями
университета и другими вузами без разрешения кафедры-разработчика программы
Национальный исследовательский университет «Высшая школа экономики»
Программа учебной дисциплины «Теоретические основы информатики»
080500.62 Бизнес-информатика подготовки бакалавра
1. Область применения и нормативные ссылки
Настоящая программа учебной дисциплины устанавливает минимальные требования к
знаниям и умениям студента и определяет содержание и виды учебных занятий и отчетности
для дисциплины «Теоретические основы информатики», изучаемой на первом курсе
бакалавриата по направлению 080500.62 Бизнес-информатика в НИУ ВШЭ – Пермь.
Программа предназначена для преподавателей, ведущих данную дисциплину, учебных
ассистентов и студентов направления подготовки 080500.62 – Бизнес-информатика,
изучающих дисциплину «Теоретические основы информатики» на первом курсе.
Программа разработана в соответствии с:
 Образовательным стандартом государственного образовательного бюджетного
учреждения высшего профессионального образования
«Государственный
университет – Высшая школа экономики», в отношении которого установлена
категория «Национальный исследовательский университет» по направлению
подготовки 080500.62 Бизнес-информатика (Уровень подготовки: Бакалавр).
Утверждён 02.07.2010 г. (протокол от № 15).
 Образовательной программой для направления подготовки 080500.62 Бизнесинформатика, реализуемой в НИУ ВШЭ – Пермь.
 Рабочим учебным планом по направлению подготовки 080500.62 Бизнесинформатика, утвержденным в 2011 г.
2. Цели освоения дисциплины
Цель изучения дисциплины «Теоретические основы информатики» на первом курсе –
дать фундаментальную подготовку по теоретическим основам информатики, необходимую
для успешного освоения как дисциплин профессионального цикла, так и математического и
естественнонаучного цикла (базовых и вариативных частей), изучение которых связано с
применением теоретических основ информатики и информационно-коммуникационных
технологий, созданием эффективных алгоритмов решения задач, разработкой программного
обеспечения для различных предметных областей.
Освоение дисциплины должно обеспечить базовые знания в области информатики и
программирования, которые дадут возможность выпускнику успешно работать в сфере
организации процессов жизненного цикла ИС и ИКТ, обладать универсальными и
предметно-специализированными компетенциями, способствующими его социальной
мобильности и устойчивости на рынке труда.
Целью воспитания личности при реализации программы дисциплины является
формирование таких черт как организованность, трудолюбие и умение планировать время
для выполнения трудоёмких заданий, требующих значительных усилий, предполагающих
большой объём выполнения самостоятельной работы; ответственность, способность к
саморазвитию, повышению своей квалификации и мастерства.
3. Компетенции обучающегося, формируемые в результате освоения
дисциплины
Бакалавр бизнес-информатики в соответствии с ФГОС должен знать основные
технологии программирования, владеть методами и инструментальными средствами
разработки программ. Основы этих компетенция закладываются при изучении данной
дисциплины.
В результате освоения дисциплины студент должен:
 Знать:
 основные понятия информатики и программирования;
2
Национальный исследовательский университет «Высшая школа экономики»
Программа учебной дисциплины «Теоретические основы информатики»
080500.62 Бизнес-информатика подготовки бакалавра
 теоретические основы информатики: основы кодирования и представления
информации, модели данных; графовые модели алгоритмов и программ,
используемые для решения задач их анализа, оценки и оптимизации, и методы
анализа, основанные на этих моделях;
 основные способы формального описания языков программирования с
использованием различных нотаций, классификацию формальных грамматик;
 способы кодирования данных, их представления в памяти компьютера;
 способы организации файлов, обеспечивающие эффективное хранение и поиск
информации, выполнения операций над файлами, возможности их использования
при решении прикладных задач;
 этапы подготовки программ к выполнению, алгоритмы работы и структуры
данных, используемые трансляторами и компоновщиками;
 основные проблемы, связанные с реализацией параллельных и распределенных
вычислений, подходы к их решению, используемые математические модели и
алгоритмы;
 основы прикладной архитектуры современных персональных компьютеров.
 Уметь:
 применять математические методы и инструментальные средства для
исследования объектов профессиональной деятельности: в частности,
использовать математический аппарат для исследования свойств алгоритмов,
структур данных и программ, применять математические методы (методы теории
графов, формальных языков и грамматик, сети Петри и пр.) для их анализа и
оценки;
 решать задачи, связанные с проектированием параллельных и распределенных
программ, используя различные математические модели алгоритмов и программ,
информационных систем;
 разрабатывать приложения средней сложности, предназначенные для работы с
данными, хранящимися в файлах с различной организацией;
 конструировать типы данных, оценивать эффективность представления данных;
 понимать и разрабатывать формальные описания языков программирования,
описывать грамматики с использованием различных нотаций;
 систематизировать и обобщать информацию с использованием формальных
моделей алгоритмов и программ.
 Владеть (приобрести опыт):
 основами математического моделирования прикладных задач, решаемых
аналитическими методами, в частности, задач, связанных с моделированием
алгоритмов, данных и программ;
 навыками разработки приложений, обрабатывающих данные, хранящиеся на
внешних запоминающих устройствах, с использованием различных способов их
методами поиска, хранения и обработки информации: в частности, с
использованием различных структур данных и моделей данных, способов их
представления и кодирования, возможностей файловых систем, динамического
управления памятью и пр.;
 методами разработки формальных языков, интерпретаторов средней сложности;
 навыками решения задач связанных с проектированием параллельных и
распределенных приложений;
 навыками решения некоторых задач дискретной математики, основанных на
использовании графовых моделей, связанных с исследованием свойств
алгоритмов и программ;
3
Национальный исследовательский университет «Высшая школа экономики»
Программа учебной дисциплины «Теоретические основы информатики»
080500.62 Бизнес-информатика подготовки бакалавра
 навыками решения некоторых оптимизационных задач с ограничениями, в
частности задач, для решения которых используются алгоритмы теории графов.
Студенты также должны получить общее представление о теоретических основах и
инструментальных средствах создания информационных систем различного назначения: о
существующих подходах к моделированию информационных систем, различных классах
моделей, применяемых в области ИТ, о методах теории множеств, теории графов и конечных
автоматов, математической логики и неклассических логик, алгебры, применяемых при
проектировании и анализе информационных систем, их компонентов.
Студенты также должны получить общее представление о теоретических основах и
инструментальных средствах создания информационных систем различного назначения,
связи между ними.
В результате освоения дисциплины студент должен освоить следующие компетенции:
Компетенция
Код по
стандарту
Дескрипторы – основные признаки
освоения (показатели достижения
результата)
Владение культурой
мышления,
способность к
обобщению, анализу,
восприятию
информации,
постановке цели и
выбору путей её
достижения
Способность
логически верно,
аргументировано и
ясно строить устную и
письменную речь
ОНК-3
СЛК-1
Демонстрирует умение обосновывать
предлагаемые решения (не только
разрабатывать алгоритмы и программы,
реализующие их, но и уметь доказывать
правильность программ, анализировать и
оценивать эффективность решений)
Способность к
саморазвитию,
повышению своей
квалификации и
мастерства
СЛК-4
Демонстрирует способность
самостоятельно определять
формирующиеся дефициты знаний, умений
и навыков в ходе обучения
Показывает умение сформулировать
проблемы, связанные с недостатком знаний
и навыков, и выбрать подходы к их
решению
Владеет одним из
иностранных языков
на уровне не ниже
разговорного
Даёт четкие определения основных
понятий информатики и
программирования, видит их связь
Четко формулирует задачи, анализирует
условия и обоснованно выбирает методы
решения, уверенно интерпретирует
результаты
ИК-2
Демонстрирует умение самостоятельно
работать со справочной информацией,
руководствами, написанными на
английском языке
Владеет знаниями, достаточными для
самостоятельного изучения и понимания
описаний алгоритмов и программ,
формальных моделей , полученными из
источников на английском языке
4
Формы и методы
обучения,
способствующие
формированию и
развитию
компетенции
Аудиторные занятия
проводятся в форме,
предполагающей
активное участие
студентов в работе,
обсуждение
проблем и анализ
решений,
предлагаемых
студентами и
преподавателем на
лекциях и
практических
занятиях.
Самостоятельное
изучение отдельных
тем.
Выполнение
индивидуальных
заданий (с
получением
консультаций
преподавателя)
Изучение моделей,
алгоритмов,
методов и
инструментальных
средств
программирования с
использованием
источников на
английском языке
при выполнении
заданий
Национальный исследовательский университет «Высшая школа экономики»
Программа учебной дисциплины «Теоретические основы информатики»
080500.62 Бизнес-информатика подготовки бакалавра
Формы и методы
обучения,
Дескрипторы – основные признаки
Код по
способствующие
Компетенция
освоения (показатели достижения
стандарту
формированию и
результата)
развитию
компетенции
Готовность работать с
ИК- 4 / Показывает навыки уверенного владения
Самостоятельное
информацией из
ИК-6
средствами поиска информации в Internet, в изучение отдельных
различных
различных источниках, рекомендованных тем при подготовке
источников /
для самостоятельного изучения.
к контрольным
Владение навыками
мероприятиям,
работы с компьютером
выполнение
Демонстрирует умение оценивать и
как средством
домашних заданий,
отбирать наиболее важную информацию,
управления
требующее
максимально полезную для решения
информацией,
самостоятельно
поставленных задач при выполнении
способность работать
находить
домашних заданий, при подготовке к
с информацией в
информацию
контрольным мероприятиям
глобальных
компьютерных сетях
Способность к
СЛК -7 Демонстрирует способность применять
Выполнение
организованному
полученные знания для решения новых
заданий с
подходу к освоению и
задач в различных областях
постепенным
приобретению новых
наращиванием
Владеет навыками самостоятельного
навыков и
требований к
поиска, изучения и выбора методов и
компетенций
сложности,
средств решения поставленных задач
используемым
методам и
Подготовлен к самостоятельному
средствам решения
изучению новых технологий,
инструментальных средств разработки
программ
Использовать
ПК-22
Уверенно использует способы
Использование и
соответствующий
формального описания структур данных и сравнение
математический
алгоритмов их обработки
формальных средств
аппарат и
при изучении
Владеет различными способами
инструментальные
формального описания языков, умеет дать основных методов
средства для
разработки
описания языковых конструкций, может
обработки, анализа и
программ и средств
прочитать и использовать на практике
систематизации
языка Pascal.
формальные описания языков с
информации по теме
Получение
использованием различных нотаций
исследования
формальных оценок
Знает и может использовать на практике
и сравнение их с
математический аппарат, формальные
результатами,
средства, лежащие в основе различных
полученными при
методов разработки алгоритмов и
практической
программ
Может построить формальное описание и реализации
доказать языков программирования с
использованием формальных методов
Знает основы организации файлов:
- владеет средствами выполнения
операций над файлами с различной
организацией,
- умеет выбрать оптимальные способы
представления данных и использовать
эффективные средства их обработки
при решении задач обработки массивов
данных, хранящихся во внешней памяти
5
Выполнение
практических
заданий с
использованием
языка Pascal.
Выполнение
контрольных работ.
Выборочный опрос
и экспресс-
Национальный исследовательский университет «Высшая школа экономики»
Программа учебной дисциплины «Теоретические основы информатики»
080500.62 Бизнес-информатика подготовки бакалавра
Компетенция
Готовить научнотехнические отчеты,
презентации, научные
публикации по
результатам
выполненных
исследований
Формы и методы
обучения,
Дескрипторы – основные признаки
Код по
способствующие
освоения (показатели достижения
стандарту
формированию и
результата)
развитию
компетенции
Знает основы методов трансляции и умеет тестирование на
их использовать при разработке программ: лекциях и
- использует знания при выборе
практических
оптимальных структур данных и
занятиях.
управляющих структур;
Выполнение
- способен разработать интерпретатор
практических
средней сложности
заданий с
использованием
языка Pascal
ПК-23
Умеет грамотно оформлять отчеты о
Оформление
выполнении домашних заданий,
результатов
включающие постановку задач, описание
выполнения заданий
решений и оценки результатов
с использованием
требований к
оформлению
Владеет навыками грамотного оформления
отчетов,
и документирования текстов программ,
современных
результатов их тестирования
технологий
подготовки
документов
4. Место дисциплины в структуре образовательной программы
Настоящая дисциплина относится к циклу математических и естественнонаучных
дисциплин (базовая часть).
Изучение данной дисциплины базируется на следующих дисциплинах:
 Базовый школьный курс информатики и/или выравнивающий факультатив по основам
программирования на языке Pascal.
 Линейная алгебра.
 Программирование.
Для освоения учебной дисциплины студенты должны владеть следующими знаниями и
компетенциями:
 Знание основ функционирования персональных компьютеров.
 Знание основ организации обработки данных с помощью компьютеров.
 Базовые навыки работы с персональным компьютером в среде Microsoft Windows.
 Базовые знания и навыки работы с офисными приложениями (текстовым процессором
и электронными таблицами).
 Знание основных понятий линейной алгебры, операций над векторами и матрицами.
Основные положения дисциплины будут использованы в дальнейшем при изучении
следующих дисциплин учебного плана:
 Программирование.
 Дискретная математика.
 Основы офисного программирования.
 Объектно-ориентированный анализ и программирование.
 Основы программирования на C++.
 Основы программирования на C# в VS.NET.
6
Национальный исследовательский университет «Высшая школа экономики»
Программа учебной дисциплины «Теоретические основы информатики»
080500.62 Бизнес-информатика подготовки бакалавра







Функциональное программирование и интеллектуальные системы.
Основы эволюционных вычислений и теория алгоритмов.
Информационные процессы, системы и сети.
Вычислительные системы, сети, телекоммуникации.
Управление данными (Часть 1 – Базы данных, Часть 2 – Хранилища данных).
Моделирование информационных систем.
Имитационное моделирование.
Раздел 1. Кодирование информации и
представление данных в памяти компьютера
1 Понятие типа данных и стандартные типы данных
2 Конструирование типов, рекурсивные типы данных
3
4
5
6
7
8
9
10
11
12
13
14
Раздел 2. Формальные языки и основы
трансляции
Понятие языка программирования
Понятие формальной грамматики
Описание формального языка с помощью диаграмм
Описание формального языка с помощью
металингвистических формул
Процедуры синтаксического разбора
Синтаксический разбор и вывод
Интерпретация выражений
Раздел 3. Теоретические основы разработки
распределенных систем
Понятия процесса и классификация процессов
Понятия ресурса и классификация ресурсов
Выполнение программ и управление процессами
Проблема взаимного исключения
Проблема тупика и её решение
Раздел 4. Хранение и поиск данных
15 Понятие модели данных
16 Представление данных во внешней памяти
17 Индексация данных и поиск
7
Всего
Наименование разделов и тем
(с разбивкой по модулям)
28
6
6
12
16
12
16
2
4
2
4
4
8
8
8
82
14
14
28
54
6
8
8
8
2
2
2
2
0
2
2
2
2
4
4
4
4
4
4
4
22
10
20
2
2
2
4
2
2
6
4
4
16
6
16
62
14
12
26
36
6
6
6
22
22
2
2
2
4
4
0
0
0
6
6
2
2
2
10
10
4
4
4
12
12
44
8
10
26
6
2
2
2
8
2
2
4
14
4
4
6
30
4
6
20
Всего
часов
Лекции
№
Практические
занятия
Аудиторные часы
Самостоятельная
работа
5. Тематический план учебной дисциплины
Всего:
216
40
Всего
Всего
часов
Практические
занятия
Наименование разделов и тем
(с разбивкой по модулям)
№
Лекции
Аудиторные часы
40
80
Самостоятельная
работа
Национальный исследовательский университет «Высшая школа экономики»
Программа учебной дисциплины «Теоретические основы информатики»
080500.62 Бизнес-информатика подготовки бакалавра
136
6. Контроль знаний студентов
6.1. Формы контроля знаний студентов
Тип
контроля
Форма контроля
Текущий
(неделя)
Контрольная работа
Домашнее задание
Итоговый
Экзамен
1 год
1
2
Параметры
3
4
4
1
11
*
Письменная работа (90 минут)
Разработка программ на языке Pascal
Разработка программ на языке Pascal
Письменный экзамен (90 минут)
6.2. Критерии оценки знаний, навыков
Текущий контроль предусматривает выполнение письменной контрольной работы,
двух домашних заданий в 4 модуле.
Оценки по всем формам текущего контроля выставляются по 10-ти балльной шкале.
Критерии оценки контрольной работы (4 модуль) и требования к ответам
Цель – проверка формирования следующих компетенций:
 Использовать соответствующий математический аппарат и инструментальные
средства для обработки, анализа и систематизации информации по теме
исследования (ПК-22).
 Владение культурой мышления, способность к обобщению, анализу, восприятию
информации, постановке цели и выбору путей её достижения (ОНК-3).
 Способность логически верно, аргументировано и ясно строить устную и
письменную речь (СЛК-1).
 Способность к саморазвитию, повышению своей квалификации и мастерства
(СЛК-4).
При выполнении контрольной работы проверяются знания, полученные по темам:
 Кодирование и представление данных.
 Формальные языки и грамматики.
 Распределенные и параллельные вычисления: взаимное исключение и тупики.
В ходе выполнения контрольной работы студент должен показать, что он
 Умеет выполнить перевод числовых значений из одной системы счисления в
другую.
 Может представить данные во внутреннем представлении с использованием
различных форматов и интерпретировать внутреннее представление данных
различных типов.
 Уверенно использует способы формального описания языков программирования.
 Владеет основными методами синтаксического анализа и разбора.
8
Национальный исследовательский университет «Высшая школа экономики»
Программа учебной дисциплины «Теоретические основы информатики»
080500.62 Бизнес-информатика подготовки бакалавра
 Знает и может использовать на практике математический аппарат, формальные
средства, лежащие в основе решения задач параллельного и распределенного
программирования.
 Способен к обобщению, анализу, восприятию информации, постановке цели и
выбору путей её достижения на основе известных решений с использованием
методов, изученных в рамках дисциплины по указанным темам.
Темы заданий и их вес в определении оценки за выполнение контрольной работы
приведены в таблице:
Кодирование и
Формальные языки
Взаимное
Тема
представление
Тупики
и грамматики
исключение
данных
Вес
2
2
3
3
Примеры заданий для подготовки к контрольной работе приведены в Приложении 1.
Критерии оценки выполнения заданий:
Характеристика решения
Оценка
Приведено полное решение с использованием
соответствующего математического аппарата и дано его
объяснение, обоснование
Приведено полное решение, но имеются неточности в
формулировках или незначительные ошибки / Решение
неполное, сужает постановку задачи
Выбран верный подход к решению, но приведено неполное
решение, в формулировках имеются недочеты, допущены
отдельные существенные ошибки
Решение не соответствует постановке задачи, выбран неверный
метод, в решении имеются существенные ошибки
8-10
6-7
4-5
менее 4
Предусматривается возможность «защиты» выполненных письменных работ, если
приведенное решение допускает неоднозначность оценки. Защита предусматривает:
 Объяснение студентом всех использованных в решении методов, конструкций, их
оценка и обоснование.
 Внесение предложенных преподавателем изменений в условия и пояснение, какие
изменения это вызовет в приведенном студентом решении.
 Рассмотрение и анализ альтернативных решений.
В ходе защиты студент должен продемонстрировать знание профессиональной
терминологии в рамках соответствующей темы, продемонстрировать знание теоретического
материала и умение на практике применять эти знания, а также владение математическим
аппаратом для получения формального описания алгоритмов, доказательства их свойств и
получения оценки эффективности решений. Кроме того, он должен показать, что владеет
культурой мышления, способен к обобщению, анализу, восприятию информации, постановке
цели и выбору путей ее достижения, способен логически верно, аргументировано и ясно
строить речь.
Критерии оценки домашних заданий
Контрольное домашнее задание предусматривает программную реализацию на
компьютере программ по заданным темам курса. Выполнение включает разработку
кодирование и документирование, тестирование и отладку программ решения нескольких
задач по указанным ниже темам. По каждому домашнему заданию оформляется отчет,
9
Национальный исследовательский университет «Высшая школа экономики»
Программа учебной дисциплины «Теоретические основы информатики»
080500.62 Бизнес-информатика подготовки бакалавра
включающий самодокументированный текст программы, разработанной студентом, а также
набор тестов.
Цель – проверка формирования следующих компетенций:
 Готовность работать с информацией из различных источников (ИК- 4).
 Владение навыками работы с компьютером как средством управления информацией,
способность работать с информацией в глобальных компьютерных сетях (ИК-6).
 Способность к организованному подходу к освоению и приобретению новых
навыков и компетенций (СЛК -7).
 Владение культурой мышления, способность к обобщению, анализу, восприятию
информации, постановке цели и выбору путей её достижения (ОНК-3).
 Способность к саморазвитию, повышению своей квалификации и мастерства
(СЛК-4).
 Использовать соответствующий математический аппарат и инструментальные
средства для обработки, анализа и систематизации информации по теме
исследования (ПК-22).
 Готовить научно-технические отчеты, презентации, научные публикации по
результатам выполненных исследований (ПК-23).
 Способность логически верно, аргументировано и ясно строить устную и
письменную речь (СЛК-1).
В ходе выполнения домашних заданий студент должен показать, что он
 чётко формулирует задачи, анализирует условия и обоснованно выбирает методы
решения, уверенно интерпретирует полученные результаты;
 владеет методами и средствами разработки программ, в частности основными
возможностями современных систем программирования, языков высокого уровня:
- знает возможности системы программирования и может разрабатывать
программы средней сложности на языке Pascal;
- владеет средствами тестирования и отладки программ с использованием
возможностей системы программирования Pascal;.
 знает основы прикладной архитектуры современных персональных компьютеров,
их использование в современных системах программирования:
- знает форматы представления данных в памяти компьютера, применяет знания
на практике;
- имеет представление об аппаратной поддержке управляющих структур языков
высокого уровня;
- знает основы организации и основы методов статического и динамического
управления памятью, их особенности;
 способен самостоятельно определять формирующиеся дефициты знаний, умений
и навыков в ходе обучения, может сформулировать проблемы, связанные с
недостатком знаний и навыков, и выбрать подходы к их решению;
 владеет навыками поиска и использования информации, необходимой для
выполнения заданий (поиск описаний алгоритмов, методов их оценки и пр.), из
различных источников;
 умеет самостоятельно работать со справочной информацией, руководствами,
написанными на английском языке, и владеет знаниями, достаточными для
самостоятельного изучения и понимания описаний алгоритмов и программ,
формальных моделей, полученными из источников на английском языке;
 способен обосновывать предлагаемые решения (не только разрабатывать
алгоритмы и программы, реализующие их, но и уметь доказывать правильность
программ, анализировать и оценивать эффективность решений);
10
Национальный исследовательский университет «Высшая школа экономики»
Программа учебной дисциплины «Теоретические основы информатики»
080500.62 Бизнес-информатика подготовки бакалавра
 владеет навыками грамотного оформления и документирования текстов программ,
результатов их тестирования;
 умеет грамотно оформлять отчеты о выполнении домашних заданий, включающие
постановку задач, описание решений и оценки результатов.
Предусматривается возможность «защиты» выполненных домашних заданий. Защита
предусматривает:
 Объяснение студентом использованных методов решения, реализованных в
программе алгоритмов.
 Объяснение студентом всех использованных в программном коде конструкций,
типов данных и управляющих структур.
 Рассмотрение и анализ возможных альтернативных решений.
 Внесение предложенных преподавателем изменений в код программы и анализ
последствий этих изменений, их результатов.
В ходе защиты студент должен продемонстрировать знание профессиональной
терминологии в рамках соответствующей темы, продемонстрировать знание теоретического
материала по теме, а также умение оценивать эффективность решений. Кроме того, он
должен показать, что владеет культурой мышления, способен к обобщению, анализу,
восприятию информации, постановке цели и выбору путей ее достижения, способен
логически верно, аргументировано и ясно строить речь.
6.2.1. Итоговый контроль
Итоговый контроль осуществляется в форме письменной работы.
Итоговая оценка определяется в соответствии с «Положением об организации контроля
знаний», утверждённым протоколом ученого совета НИУ ВШЭ от 24.06.2011 № 26.
Формы и сроки проведения определяются учебным планом и графиком учебного
процесса.
При проведении зачета выполняются задания по всем темам курса, которые изучаются в
соответствии с программой курса. Примерный перечень вопросов и заданий для подготовки
к зачету приведен в Приложениях.
Итоговый экзамен включает теоретические вопросы и решение задач. Теоретические
вопросы включают вопросы по темам всего курса, которые изучались в 3-4 модулях. При
проведении экзамена выполняются практические задания по всем темам курса, которые
изучаются в соответствии с программой курса в 3-4 модулях. Примерный перечень вопросов
и заданий для подготовки к экзамену по дисциплине приведен в приложениях.
7. Содержание дисциплины
Раздел 1. КОДИРОВАНИЕ ИНФОРМАЦИИ И ПРЕДСТАВЛЕНИЕ ДАННЫХ В
ПАМЯТИ КОМПЬЮТЕРА (28 часов)
Тема 1. Понятие типа данных и стандартные типы данных
Понятие типа данных, стандартные типы данных и их аппаратная поддержка. Двоичная
система – основа представления данных в памяти компьютера. Алгоритмы перевода.
Представление целых чисел в форме с фиксированной точкой, знаковые и беззнаковые
числа. Представление вещественных чисел.
Лекции: 2 часа.
Практические занятия: 2 часа.
Самостоятельная работа: 8 часов.
11
Национальный исследовательский университет «Высшая школа экономики»
Программа учебной дисциплины «Теоретические основы информатики»
080500.62 Бизнес-информатика подготовки бакалавра
Тема 2. Конструирование типов, рекурсивные типы данных (16 часов)
Понятие конструктора типов. Конструирование массивов, записей. Рекурсивные типы:
линейные списки, деревья. Динамическое распределение памяти и конструирование типов.
Операции над рекурсивными данными.
Лекции: 4 часа.
Практические занятия: 4 часа.
Самостоятельная работа: 8 часов.
Литература по разделу:
1. Лядова Л.Н. Основы информатики и информационных технологий : учеб. пособие /
Л.Н. Лядова, Б.И. Мызникова, Н.В. Фролова. Пермь : Изд-во Перм. ун-та , 2004. –
310 с. Раздел 2.
2. Лядова Л.Н. Презентация по теме «Представление и кодирование информации».
Формы и методы проведения занятий по разделу, применяемые
учебные технологии:
При проведении занятий используются:
‒ решение задач на практических занятиях;
‒ экспресс-опросы по темам курса;
‒ проверочные тесты, доступные в LMS, время выполнения которых и количество
попыток не ограничены – задания выполняются до получения правильных
ответов на 100% заданий.
Раздел 2. ФОРМАЛЬНЫЕ ЯЗЫКИ И ОСНОВЫ ТРАНСЛЯЦИИ
(82 часа)
Тема 3. Понятие языка программирования
Определение формального языка. Описание лексики, синтаксиса, семантики и
прагматики.
Лекции: 2 часа.
Самостоятельная работа: 4 часа.
Тема 4. Понятие формальной грамматики
Определение формальной грамматики. Описание формального языка с помощью
грамматики. Классификация формальных грамматик по Хомскому.
Лекции: 2 часа.
Практические занятия: 2 часа.
Самостоятельная работа: 4 часа.
Тема 5. Описание формального языка с помощью диаграмм
Описание синтаксиса языка с помощью диаграмм. Основные элементы диаграмм Вирта.
Описание конструкций языка Pascal: примеры.
Лекции: 2 часа.
Практические занятия: 2 часа.
Самостоятельная работа: 4 часа.
Тема 6. Описание формального языка с помощью металингвистических
формул
Описание грамматики с помощью металингвистических формул (БНФ), понятие
метаязыка. Примеры.
Лекции: 2 часа.
12
Национальный исследовательский университет «Высшая школа экономики»
Программа учебной дисциплины «Теоретические основы информатики»
080500.62 Бизнес-информатика подготовки бакалавра
Практические занятия: 2 часа.
Самостоятельная работа: 4 часа.
Тема 7. Процедуры синтаксического разбора
Описание грамматики выражений. Алгоритмы синтаксического разбора и схема
реализации. Структуры данных, используемые в процессе разбора (таблицы
идентификаторов, деревья и пр.)
Лекции: 2 часа.
Практические занятия: 4 часа.
Самостоятельная работа: 16 часов.
Тема 8. Синтаксический разбор и вывод
Алгоритмы разбора и вывод конструкция языка. Примеры построения дерева разбора.
Лекции: 2 часа.
Практические занятия: 2 часа.
Самостоятельная работа: 6 часов.
Тема 9. Интерпретация выражений
Интерпретация и компиляция, сравнение. Процедуры интерпретации, алгоритмы и
структуры данных: деревья, обратная польская запись (ОПЗ).
Лекции: 2 часа.
Практические занятия: 2 часа.
Самостоятельная работа: 16 часов.
Литература по разделу:
1. Лядова Л.Н. Конспект лекций по теме «Формальные языки и основы трансляции».
Электронный ресурс.
2. Залогова Л.А. Разработка Паскаль-компилятора. М.: БИНОМ. Лаборатория базовых
знаний, 2007.
Формы и методы проведения занятий по разделу, применяемые
учебные технологии:
При проведении занятий используются:
‒ решение задач на практических занятиях;
‒ экспресс-опросы по темам курса;
‒ проверочные тесты, доступные в LMS, время выполнения которых и количество
попыток не ограничены – задания выполняются до получения правильных
ответов на 100% заданий;
‒ самостоятельная разработка программ при выполнении домашнего задания;
‒ индивидуальные консультации по выполнению домашнего задания по теме.
Раздел 3. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ РАЗРАБОТКИ РАСПРЕДЕЛЕННЫХ
СИСТЕМ (62 часа)
Тема 10. Понятия процесса и классификация процессов
Программы и процессы. Определение и классификация процессов. Отношения между
процессами, их поддержание. Управление процессами. Необходимость ресурсов. Примеры.
Лекции: 2 часа.
Самостоятельная работа: 4 часа.
13
Национальный исследовательский университет «Высшая школа экономики»
Программа учебной дисциплины «Теоретические основы информатики»
080500.62 Бизнес-информатика подготовки бакалавра
Тема 11. Понятия ресурса и классификация ресурсов
Понятие ресурса и свойства ресурсов. Классификация ресурсов Задачи управления
ресурсами. Примеры.
Лекции: 2 часа.
Самостоятельная работа: 4 часа.
Тема 12. Выполнение программ и управление процессами
Состояния процессов и задачи их поддержания. Развитие процессов, допустимые
изменения состояний, причины. Примеры.
Лекции: 2 часа.
Самостоятельная работа: 4 часа.
Тема 13. Проблема взаимного исключения
Проблема взаимного исключения. Понятие критической секции, свойства, условие
реализации. Методы решения. Семафорная техника взаимного исключения. Реализация
средствами ОС и систем программирования, СУБД.
Лекции: 4 часа.
Практические занятия: 6 часов.
Самостоятельная работа: 12 часов.
Тема 14. Проблема тупика и её решение
Проблема тупика. Математические модели, лежащие в основе решения. Задачи
предотвращения, распознавания, обхода тупиков, вывод системы из тупика. Решение задач
для систем с разными типами ресурсов.
Лекции: 4 часа.
Практические занятия: 6 часов.
Самостоятельная работа: 10 часов.
Литература по разделу:
1. Лядова Л.Н. Конспект лекций по курсу «Теоретические основы информатики»:
Электронный ресурс. 2011.
Формы и методы проведения занятий по разделу, применяемые
учебные технологии:
При проведении занятий используются:
‒ решение задач на практических занятиях;
‒ экспресс-опросы по темам курса;
‒ проверочные тесты, доступные в LMS, время выполнения которых и количество
попыток не ограничены – задания выполняются до получения правильных
ответов на 100% заданий;
‒ индивидуальные консультации по решению задач по теме.
Раздел 4. ХРАНЕНИЕ И ПОИСК ДАННЫХ (44 часа)
Тема 15. Понятие модели данных
Типы данных и модели данных. Определение модели данных, примеры. Реализация
моделей данных.
Лекции: 2 часа.
Практические занятия: 2 часа.
Самостоятельная работа: 4 часа.
14
Национальный исследовательский университет «Высшая школа экономики»
Программа учебной дисциплины «Теоретические основы информатики»
080500.62 Бизнес-информатика подготовки бакалавра
Тема 16. Представление данных во внешней памяти
Файлы и представление данных с использованием различных моделей. Понятие
метаданных. Операции над файлами и задачи поиска и обработки данных.
Лекции: 2 часа.
Практические занятия: 2 часа.
Самостоятельная работа: 6 часов.
Тема 17. Индексация данных и поиск
Проблема поиска данных. Индексация. Понятие В-дерева. Операции над В-деревьями.
Индексация с помощью В-деревьев. Внешние сортировки и индексация данных.
Лекции: 2 часа.
Практические занятия: 4 часа.
Самостоятельная работа: 20 часов.
Литература по разделу:
1. Лядова Л.Н. Конспект лекций по теме «Файловая система». Электронный ресурс.
2. Кузнецов С.Д. Методы сортировки и поиска. Электронный ресурс.
Формы и методы проведения занятий по разделу, применяемые
учебные технологии:
При проведении занятий используются:
‒ решение задач на практических занятиях;
‒ экспресс-опросы по темам курса;
‒ самостоятельная разработка программ при выполнении домашнего задания;
‒ индивидуальные консультации по выполнению домашнего задания по теме.
8. Образовательные технологии
Используется «проблемное» чтение лекций по дисциплине с использованием
компьютерного мультимедийного оборудования, предусматривающее разбор практических
задач, моделирование типовых ситуаций, возникающих при разработке программного
обеспечения различного назначения с использованием универсальных языков
программирования высокого уровня, а также особенностей архитектуры персональных
компьютеров.
На практике используются инструментальные средства (системы программирования)
учебного назначения, позволяющие получить базовые навыки работы со средствами
разработки программного обеспечения, подготовить студентов к использованию для
разработки промышленных технологий.
Текущий и итоговый контроль предусматривает организацию «защит» выполненных
заданий с оформлением и публичным представлением результатов. В качестве основы для
оформления документов рекомендуются стандарты оформления программной документации
(ЕСПД), отчетов о НИР и НИОКР.
8.1. Методические рекомендации преподавателю
Рекомендации направлены на достижение поставленной цели – обеспечение
фундаментальной подготовки студентов по теоретическим основам информатики,
необходимой для успешного освоения дисциплин, основанных на применении базовых
знаний в области информатики и информационных технологий.
Для достижения поставленной цели при изучении дисциплины решаются следующие
задачи:
 познакомить студентов с базовыми понятиями информатики;
15
Национальный исследовательский университет «Высшая школа экономики»
Программа учебной дисциплины «Теоретические основы информатики»
080500.62 Бизнес-информатика подготовки бакалавра
 познакомить студентов с теоретическими основами представления и кодирования
информации, основными структурами данных;
 дать навыки практической работы со сложно организованными данными;
 познакомить студентов с основными этапами подготовки программ, с основами
формальных языков и грамматик, методов трансляции, теоретическими основами
компоновки программ;
 дать практические навыки разработки компонентов трансляторов, интерпретатора
выражений;
 познакомить студентов с теоретическими основами функционирования
компьютеров;
 дать представление о проблемах, решаемых при проектировании сложных
программных систем и подходами к их решению;
 дать навыки практического применения различных методов решения проблем
проектирования программных систем, связанных с конкуренцией за ресурсы;
 привить студентам навыки исследовательской работы, предполагающей
самостоятельное изучение алгоритмов решения типовых задач информатики и
программирования, методов и средств их реализации, анализа и оценки решений.
Содержание программы дисциплины должно обеспечить базовую подготовку
студентов в процессе формирования устойчивых знаний и практических навыков решения
задач проектирования и реализации программных систем, разработки алгоритмов и
программ, их оценки, заложить основы для успешного освоения курсов, посвященных
созданию современных информационных систем (в частности, курсов «Программирование»,
«Управление данными» и пр.).
Курс также призван повысить общую эрудицию студентов, показать возможности
применения алгоритмического подхода к решению задач в различных областях.
На лекциях используется «проблемный» подход к изложению материала: материал
каждой лекции иллюстрируется примерами, рассматриваются нестандартные ситуации,
требующие решения с использованием рассматриваемого материала. При этом студенты
должны активно участвовать в обсуждении вопросов, выработке решений, предлагаемые
студентами решения, обсуждаются, анализируются и оцениваются в ходе лекции.
Предлагается рассматривать не только «верные», оптимальные решения, но и решения,
приводящие к ошибкам. По каждому рассматриваемому на лекции вопросу следует
предложить задачи для самостоятельного решения и вопросы для самостоятельного
изучения с использованием материалов, размещенных на сервере.
На практических занятиях используются следующие методы обучения и контроля
усвоения материала:
1) выполнение заданий по теме занятия сопровождается контрольным опросом;
2) обсуждение различных вариантов решения, предложенных студентами, сравнение
решений, анализ возможных ситуаций.
Рекомендуется использовать «защиту» выполненных домашних и контрольных заданий,
проведение защит в форме деловой игры.
8.2. Методические указания студентам
Для решения практических задач и выполнения домашних заданий, для подготовки к
контрольным работам рекомендуется использовать следующие основные источники:
1. Залогова Л.А. Разработка Паскаль-компилятора. М.: БИНОМ. Лаборатория базовых
знаний, 2007.
2. Королев Л.Н., Миков А.И. Информатика. Введение в компьютерные науки. М.:
Высшая школа, 2011.
16
Национальный исследовательский университет «Высшая школа экономики»
Программа учебной дисциплины «Теоретические основы информатики»
080500.62 Бизнес-информатика подготовки бакалавра
3. Лядова Л.Н. Архитектура современных вычислительных систем: Учебное пособие
[Электронный ресурс]. Пермь.: Перм. ун т, 2006.
4. Плаксин М.А. Тестирование и отладка программ – для профессионалов будущих и
настоящих. М.: БИНОМ. Лаборатория базовых знаний, 2007.
5. Методические материалы по курсу (тексты лекций, презентации), размещенные на
сервере НИУ ВШЭ – Пермь.
При разработке программ на языке Pascal рекомендуется использовать справочную
систему системы программирования, примеры и рекомендации по решению задач,
приведенные в электронных пособиях по курсу, указанных в списке дополнительной
литературы.
Студенту рекомендуется следующая схема подготовки к практическому занятию:
1) проработать конспект лекций;
2) проанализировать основную и дополнительную литературу, рекомендованную по
изучаемому разделу;
3) при необходимости найти дополнительную информацию в Internet, на сайтах
электронных библиотек;
4) проанализировать варианты решений, предложенные преподавателем, найденные в
дополнительных источниках;
5) при затруднениях сформулировать вопросы к преподавателю.
Студенту рекомендуется следующая схема подготовки к лекции:
1) проработать конспект лекций;
2) изучить материал, предложенный для самостоятельного изучения;
3) выполнить предложенные преподавателем задания;
4) при затруднениях задать вопросы к преподавателю при проведении
индивидуальных консультаций.
Рекомендуется при выполнении домашних заданий и подготовке к контрольным
работам рассмотреть возможность защиты предложенных решений, подготовить
документацию и «презентацию» работы.
Для самостоятельного изучения и подготовки к лекциям предлагается использовать
электронные ресурсы, размещаемые на сервере НИУ ВШЭ – Пермь.
9. Оценочные средства для текущего контроля и аттестации студента
9.1.
Тематика заданий текущего контроля
Тематика контрольных работ:
При выполнении контрольной работы проверяются знания, полученные по темам:
 Кодирование и представление данных.
 Формальные языки и грамматики.
 Распределенные и параллельные вычисления: взаимное исключение и тупики.
Тематика домашних заданий:
Тема первого домашнего задания – синтаксический анализ и интерпретация выражения.
Требования к выполнению приведены в Приложении 3.
Тема второго домашнего задания – индексация и поиск данных.
Требования к выполнению приведены в Приложении 4.
Примерный перечень заданий, выполняемых на практических занятиях:
 перевод данных из одной системы счисления в другую;
 представление числовых данных в памяти компьютера в различных форматах;
17
Национальный исследовательский университет «Высшая школа экономики»
Программа учебной дисциплины «Теоретические основы информатики»
080500.62 Бизнес-информатика подготовки бакалавра




синтаксический разбор конструкций формальных языков;
интерпретация выражений;
проблема взаимного исключения;
проблема тупика.
Полученные оценки учитываются при определении оценки за работу на семинарах. План
практических занятий приведён в Приложении 1.
9.2. Вопросы для оценки качества освоения дисциплины
Вопросы приведены в Приложении 2.
9.3. Примеры заданий итогового контроля
Примерные задания приведены в Приложении 1 (по каждой теме практических занятий
приведены задания для самостоятельного выполнения).
10. Порядок формирования оценок по дисциплине
Итоговая оценка определяется в соответствии с «Положением об организации контроля
знаний», утверждённым протоколом ученого совета НИУ ВШЭ от 24.06.2011 № 26.
В НИУ ВШЭ принята следующая система весов:
 40% результирующей оценки – взвешенная сумма оценок за контрольные
мероприятия;
 20% результирующей оценки – оценка за работу на семинарских (практических)
занятиях;
 40% результирующей оценки – оценка за итоговый/промежуточный контроль.
Таким образом, 60% результирующей оценки – это накопительная оценка и 40% – это
собственно оценка за итоговый/промежуточный контроль.
Накопительная оценка рассчитывается как взвешенная сумма оценок за отдельные
формы текущего контроля, к которым относятся: работа на семинарских (практических)
занятиях, контрольные мероприятия (контрольные работы, домашние задания и т.п.),
которые определены учебным планом.
Формулы расчета оценок:
Оценка за текущий контроль (3 и 4 модули):
О текущая = n1∙О1 + n2∙О2 + n3∙О3,
где Оi – оценки за контрольные мероприятия (О1 – оценка за первое домашнее задание; О1 –
оценка за контрольную работу, О2 – оценка за второе домашнее задание); ni – вес
контрольных мероприятий (n1 = 0,325 – вес оценки за первое домашнее задание, n2 = 0,375 –
вес оценки за контрольную работу, n3 = 0,375 – вес оценки за второе домашнее задание).
Накопленная за 3 и 4 модули оценка:
О накопительная = k1∙Отекущая + k2∙Оаудиторная
где ki – вес текущей и аудиторной оценки, при этом k1=2/3, k2=1/3.
Результирующая оценка за экзамен (4 модуль):
О результирующая = q1∙Онакопительная + q2∙Оитог.контроль
где q1 – вес накопительной оценки (q1=0,6), q2 – вес оценки за итоговый контроль,
полученной на зачёте по дисциплине (q2=0,4).
18
Национальный исследовательский университет «Высшая школа экономики»
Программа учебной дисциплины «Теоретические основы информатики»
080500.62 Бизнес-информатика подготовки бакалавра
11. Учебно-методическое и информационное обеспечение дисциплины
11.1. Базовый учебник
Лядова Л.Н. Конспект лекций по курсу «Теоретические основы информатики»:
Электронный ресурс. 2011.
11.2. Основная литература
1. Лядова Л.Н. Основы информатики и информационных технологий : учеб. пособие /
Л.Н. Лядова, Б.И. Мызникова, Н.В. Фролова. Пермь : Изд-во Перм. ун-та , 2004. –
310 с.
2. Окулов С.М. Программирование в алгоритмах: учеб. пособие. М.: БИНОМ.
Лаборатория знаний , 2007. – 383 с.
3. Павловская Т.А. Паскаль. Программирование на языке высокого уровня: учебник.
СПб. : ПИТЕР, 2010. – 460 с.
4. Плаксин М.А. Тестирование и отладка программ – для профессионалов будущих и
настоящих. М.: БИНОМ. Лаборатория базовых знаний, 2007.
11.3. Дополнительная литература
1. Андреева Т.А. Программирование на языке Pascal: Учебное пособие. М.: 2006.234 с. [Электронный ресурс].
2. Борисенко В.В. Основы программирования: Учебное пособие. М.: Интернетуниверситет информационных технологий; МГУ им. М. В. Ломоносова, 2005.328 с.
[Электронный ресурс].
3. Залогова Л.А. Разработка Паскаль-компилятора. М.: БИНОМ. Лаборатория базовых
знаний, 2007.
4. Костюкова Н.И. Графы и их применение. Комбинаторные алгоритмы для
программистов : учеб. пособие. М.: Интернет-Университет Информационных
Технологий ; М. : БИНОМ. Лаборатория знаний , 2010. – 311 с.
5. Конспект лекций по курсу «Информатика и программирование». М.: ГУ-ВШЭ
[Электронный ресурс]
6. Основы алгоритмизации и программирования. [Электронный ресурс]
11.4. Справочники, словари, энциклопедии
Интерактивная справочная система Pascal ABC.
11.5. Программные средства
Для успешного освоения дисциплины, студент использует следующие программные
средства:
 Средства разработки, тестирования, отладки программ, написанных на языке
Pascal (Pascal ABC, Free Pascal).
 Система контроля стиля программирования Style Checker.
 Система тестирования программ и проведения олимпиад по программированию.
 Интегрированный пакет Microsoft Office (MS Word и Excel) для оформления
тестов и тестирования программ, а также отчетов по выполненным заданиям.
 Средства, обеспечивающие возможность доступа к материалам для подготовки к
занятиям в различных форматах (документы MS Word, документы в формате
HTML, презентации MS Power Point), размещенные на сервере, доступные в
Internet.
19
Национальный исследовательский университет «Высшая школа экономики»
Программа учебной дисциплины «Теоретические основы информатики»
080500.62 Бизнес-информатика подготовки бакалавра
11.6. Дистанционная поддержка дисциплины
Дистанционная поддержка (средства проверки программ) используется для выполнения
домашних заданий. Программное обеспечение устанавливается на сервере.
Программа дисциплины, материалы по дисциплине, предназначенные для
самостоятельного изучения, презентации по темам лекций, тесты и домашние задания
размещены в LMS. Контрольные материалы, тесты, используются как для проведения
итогового, так и текущего контроля.
12. Материально-техническое обеспечение дисциплины
Для проведения лекционных занятий используется компьютер с установленным
программным обеспечением для демонстрации презентаций и проектор.
Практические занятия проводятся в компьютерных классах с установленным
программным обеспечением, перечисленным выше.
20
Национальный исследовательский университет «Высшая школа экономики»
Программа учебной дисциплины «Теоретические основы информатики»
080500.62 Бизнес-информатика подготовки бакалавра
Приложение 1
План практических занятий
Раздел 1. КОДИРОВАНИЕ ИНФОРМАЦИИ И ПРЕДСТАВЛЕНИЕ ДАННЫХ В
ПАМЯТИ КОМПЬЮТЕРА (28 часов)
Тема 1. Понятие типа данных и стандартные типы данных
Понятие типа данных, стандартные типы данных и их аппаратная поддержка. Двоичная
система – основа представления данных в памяти компьютера. Алгоритмы перевода.
Представление целых чисел в форме с фиксированной точкой, знаковые и беззнаковые
числа. Представление вещественных чисел. Типы данных, поддерживаемые процессорами
Intel: числа (целые со знаком и без знака, двоично-десятичные и вещественные), строки,
битовые цепочки, указатели: форматы, представление в памяти.
Лекции: 2 часа.
Практические занятия: 2 часа.
Самостоятельная работа: 8 часов.
Задания:
1. Перевести во внутреннее представление в памяти компьютера следующие числа:
a) 123 – в формат числа со знаком и числа без знака (использовать формат, наиболее
подходящий для представления числа);
b) 254 – в формат числа со знаком и числа без знака (использовать формат, наиболее
подходящий для представления числа);
c) –129 – в формат числа со знаком (использовать формат, наиболее подходящий для
представления числа);
d) 4589 – в формат двоично-десятичного числа;
e) –24,125 – в формат числа с плавающей точкой;
f) 0,03125 – в формат числа с плавающей точкой.
2. Перевести во внутреннее представление в памяти компьютера следующие числа:
a) 123 – в формат числа со знаком и числа без знака (использовать формат, наиболее
подходящий для представления числа);
b) 254 – в формат числа со знаком и числа без знака (использовать формат, наиболее
подходящий для представления числа);
c) –129 – в формат числа со знаком (использовать формат, наиболее подходящий для
представления числа);
d) 4589 – в формат двоично-десятичного числа;
e) –24,125 – в формат числа с плавающей точкой;
f) 0,03125 – в формат числа с плавающей точкой.
3. Как можно интерпретировать следующую строку битов (рассмотрите разные типы данных,
поддерживаемые процессором Intel):
a) 01001111000011110101010101010100;
b) 11100111010101011111000000000000;
4. Написать процедуры перевода чисел (данные вводятся как строка символов с клавиатуры и
результаты выводятся в символьном виде на экран):
c) из десятичной системы в двоичную;
d) из двоичной системы в десятичную;
e) из двоичной системы в шестнадцатеричную;
f) из шестнадцатеричной системы в двоичную;
g) из двоичной системы в восьмеричную;
h) из восьмеричной системы в двоичную;
i) из десятичной системы в двоичнно-десятичную;
j) из двоично-десятичной системы в двоичнную.
21
Национальный исследовательский университет «Высшая школа экономики»
Программа учебной дисциплины «Теоретические основы информатики»
080500.62 Бизнес-информатика подготовки бакалавра
Тема 2. Конструирование типов, рекурсивные типы данных (16 часов)
Понятие конструктора типов. Конструирование массивов, записей. Рекурсивные типы:
линейные списки, деревья. Динамическое распределение памяти и конструирование типов.
Операции над рекурсивными данными.
Лекции: 4 часа.
Практические занятия: 4 часа.
Самостоятельная работа: 8 часов.
Задания:
1. Сконструируйте типы данных для решения следующих задач:
a. Организации очередей с различными дисциплинами.
b. Организации бинарного поиска данных по уникальным ключам.
c. Организации бинарного поиска данных по ключам, значения которых могут повторяться.
d. Решения задачи поиска кратчайшего пути (размерность задачи заранее неизвестна).
e. Решения задачи построения остовного дерева (размерность задачи заранее неизвестна).
f. Решения задачи коммивояжера (размерность задачи заранее неизвестна).
Разработайте процедуры выполнения операций над соответствующими структурами данных.
Раздел 2. ФОРМАЛЬНЫЕ ЯЗЫКИ И ОСНОВЫ ТРАНСЛЯЦИИ
(82 часа)
Тема 4. Понятие формальной грамматики
Определение формальной грамматики. Описание формального языка с помощью
грамматики. Классификация формальных грамматик по Хомскому.
Лекции: 2 часа.
Практические занятия: 2 часа.
Самостоятельная работа: 4 часа.
Задания:
1. Опишите грамматики:
a. Целых чисел без знака.
b. Целых чисел со знаком.
c. Вещественных чисел со знаком.
К каким классам они относятся.
Тема 5. Описание формального языка с помощью диаграмм
Описание синтаксиса языка с помощью диаграмм. Основные элементы диаграмм Вирта.
Описание конструкций языка Pascal: примеры.
Лекции: 2 часа.
Практические занятия: 2 часа.
Самостоятельная работа: 4 часа.
1. Опишите с помощью диаграмм грамматики:
a. Целых чисел без знака.
b. Целых чисел со знаком.
c. Вещественных чисел со знаком.
d. Выражений в языке Pascal.
22
Национальный исследовательский университет «Высшая школа экономики»
Программа учебной дисциплины «Теоретические основы информатики»
080500.62 Бизнес-информатика подготовки бакалавра
Тема 6. Описание формального языка с помощью металингвистических
формул
Описание грамматики с помощью металингвистических формул (БНФ), понятие
метаязыка. Примеры.
Лекции: 2 часа.
Практические занятия: 2 часа.
Самостоятельная работа: 4 часа.
1. Опишите с помощью металингвистических формул грамматики:
a. Целых чисел без знака.
b. Целых чисел со знаком.
c. Вещественных чисел со знаком.
d. Выражений в языке Pascal.
.
Тема 7. Процедуры синтаксического разбора
Описание грамматики выражений. Алгоритмы синтаксического разбора и схема
реализации. Структуры данных, используемые в процессе разбора (таблицы
идентификаторов, деревья и пр.)
Лекции: 2 часа.
Практические занятия: 4 часа.
Самостоятельная работа: 16 часов.
1. Разработайте процедуры синтаксического разбора правил грамматики для заданных строк:
a. Целых чисел без знака.
b. Целых чисел со знаком.
c. Вещественных чисел со знаком.
d. Выражений в языке Pascal.
Тема 8. Синтаксический разбор и вывод
Алгоритмы разбора и вывод конструкция языка. Примеры построения дерева разбора.
Лекции: 2 часа.
Практические занятия: 2 часа.
Самостоятельная работа: 6 часов.
1. Проверьте, выводимы ли строки для построенных грамматик:
a. Целых чисел без знака.
b. Целых чисел со знаком.
c. Вещественных чисел со знаком.
d. Выражений в языке Pascal.
Тема 9. Интерпретация выражений
Интерпретация и компиляция, сравнение. Процедуры интерпретации, алгоритмы и
структуры данных: деревья, обратная польская запись (ОПЗ).
Лекции: 2 часа.
Практические занятия: 2 часа.
Самостоятельная работа: 16 часов.
23
Национальный исследовательский университет «Высшая школа экономики»
Программа учебной дисциплины «Теоретические основы информатики»
080500.62 Бизнес-информатика подготовки бакалавра
1. Постройте ОПЗ для заданных выражений:
a. (1+5)*(3-10)+5*7.
b. ((1)).
Раздел 3. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ РАЗРАБОТКИ ПАРАЛЛЕЛЬНЫХ И
РАСПРЕДЕЛЕННЫХ СИСТЕМ (62 часа)
Тема 13. Проблема взаимного исключения
Проблема взаимного исключения. Понятие критической секции, свойства, условие
реализации. Методы решения. Семафорная техника взаимного исключения. Реализация
средствами ОС и систем программирования, СУБД.
Лекции: 4 часа.
Практические занятия: 6 часов.
Самостоятельная работа: 12 часов.
Проблема взаимного исключения: программные методы решения
Решите следующие задачи:
1. Задача: решить программным способом задачу взаимного исключения. Являются ли
приведенные ниже процедуры решением поставленной задачи? Если нет, объясните,
когда могут возникнуть ошибки?
Решение:
process INIT; common boolean C1. C2;
begin С1:=false; С2:=false; start(P1); start(P2); end;
process P1;
Begin
while true do
begin BEFORE1; C1:=true; while C2 do ; CS1; C1:=false; AFTER1; end
end;
process P2;
Begin
while true do
begin BEFORE2; while C1 do ; C2:=true; CS1; C2:=false; AFTER2; end
end;
2. Решить задачу взаимного исключения, используя логические переменные и процедуру
перевода процесса в состояние задержки (приостановки) Delay(T), где параметр T задает
время задержки процесса (время, на которое он выводится из конкуренции за время
процессора).
3. Алгоритм Деккера можно сформулировать следующим образом:
Процедура
инициализации
procedure INIT;
common boolean C1,C2 ;
common integer N ;
begin
C1 := false ;
C2 := false ;
N := 1 ;
start(P1) ;
Первый процесс
process P1;
common boolean C1,C2 ;
common integer N ;
begin
while true do
begin BEFORE1 ;
C1 := true ;
while C2 do
24
Второй процесс
process P2;
common boolean C1,C2 ;
common integer N ;
begin
while true do
begin BEFORE2 ;
C2 := true ;
while C1 do
Национальный исследовательский университет «Высшая школа экономики»
Программа учебной дисциплины «Теоретические основы информатики»
080500.62 Бизнес-информатика подготовки бакалавра
start(P2)
end INIT .
begin
if N<>1 then
begin
C1 := false ;
while N<>1 do ;
C1 := true ;
end
end ;
CS1 ;
C1 := false; N := 2;
AFTER1 ;
end
end P1 .
begin
if N<>2 then
begin
C2 := false ;
while N<>2 do ;
C2 := true ;
end
end ;
CS2 ;
C2 := false; N:=1;
AFTER2 ;
end
end P2 .
Написать алгоритм Деккера для N процессов.
4. Решается ли в приведенных ниже программах проблема взаимного исключения (random
– процедура, генерирующая случайное число, delay(T) – процедура задержки процесса на
время T, в течение которого процесс не будет конкурировать за время процессора)?
process INIT; common boolean C1. C2; common integer N; common real T1, T2;
begin С1:=false; С2:=false; T1:= random; T2:= random; N:=1; start(P1); start(P2);
end;
process P1;
Begin while true do
begin BEFORE1;
C1:=true;
while C2 and (N<>1) do delay(T1);
CS1;
C1:=false; N:=2;
AFTER1;
end
end;
process P2;
Begin while true do
begin BEFORE2;
C2:=true;
while C1 and (N<>2) do delay(T2);
CS2;
C2:=false; N:=1;
AFTER2;
end
end;
3. Проблема взаимного исключения: использование семафоров
1. Задача: написать процедуры, моделирующие семафорные примитивы для общего
семафора (допускаются только неотрицательные значения целочисленной переменной,
моделирующей считающий семафор). При написании процедур можно использовать
бинарные семафоры. Ниже приведен код процедур PP и VP, которые моделируют работу
семафорных примитивов для общего семафора в соответствии с поставленной задачей.
Решена ли задача? Найти в приведенном ниже псевдокоде ошибки, объяснить и
исправить их, если они есть.
25
Национальный исследовательский университет «Высшая школа экономики»
Программа учебной дисциплины «Теоретические основы информатики»
080500.62 Бизнес-информатика подготовки бакалавра
a. Решение:
Init: proc (var S: integer; value: integer);
common binary semaphore B1, B2;
begin B1:=1; B2:=1; S:=value end;
PP: procedure (var S: integer); common binary semaphore B1, B2;
Begin P(B2); P(B1); S:=S–1; if S>0 then V(B2); V(B1) end;
VP: procedure (var S: integer); common binary semaphore B1, B2;
Begin P(B1); S:=S+1; V(B1); V(B2 ) end;
b. Решение:
Init: proc (var S: integer; value: integer);
common binary semaphore B1, B2;
begin B1:=1; B2:=1; S:=value end;
PP: procedure (var S: integer);
common binary semaphore B1, B2;
Begin P(B2); P(B1); S:=S–1; V(B1) end;
VP: procedure (var S: integer);
common binary semaphore B1, B2;
Begin P(B1); S:=S+1; V(B1); V(B2 ) end;
c. Решение:
Init: proc (var S: integer; value: integer);
common binary semaphore B1, B2;
begin B1:=1; B2:=1; S:=value end;
PP: procedure (var S: integer);
common binary semaphore B1, B2;
Begin P(B2); while S<=0 do; P(B1); S:=S–1; V(B1); V(B2) end;
VP: procedure (var S: integer);
common binary semaphore B1, B2;
Begin P(B1); S:=S+1; V(B1); V(B2 ) end;
d. Решение:
Init: proc (var S: integer; value: integer);
common binary semaphore B;
begin B:=1; S:=value end;
PP: procedure (var S: integer);
common binary semaphore B;
Begin P(B); if S>0 then S:=S–1; V(B) end;
VP: procedure (var S: integer);
common binary semaphore B;
Begin P(B); S:=S+1; V(B) end;
26
Национальный исследовательский университет «Высшая школа экономики»
Программа учебной дисциплины «Теоретические основы информатики»
080500.62 Бизнес-информатика подготовки бакалавра
2. Задача: написать процедуры, моделирующие семафорные примитивы для общего
семафора (допускаются любые значения целочисленной переменной, моделирующей
считающий семафор). При написании процедур можно использовать бинарные
семафоры. Ниже приведен код процедур PP и VP, которые моделируют работу
семафорных примитивов для общего семафора в соответствии с поставленной задачей.
Решена ли задача? Найти в приведенном ниже псевдокоде ошибки, объяснить и
исправить их, если они есть.
a. Решение:
Init: proc (var S: integer; value: integer); begin S:=value end;
PP: procedure (var S: integer);
common binary semaphore B1, B2;
Begin P(B1); S:=S–1; if S<0 then begin V(B1); P(B2) end
Else V(B1) end;
VP: procedure (var S: integer);
common binary semaphore B1, B2;
Begin P(B1); S:=S+1; if S<=0 then V(B2); V(B1 ) end;
b. Решение:
Init: proc (var S: integer; value: integer);
common binary semaphore B1, B2;
begin B1:=1; B2:=0; S:=value end;
PP: procedure (var S: integer);
common binary semaphore B1, B2;
Begin P(B1); S:=S–1; P(B2) end;
VP: procedure (var S: integer);
common binary semaphore B1, B2;
Begin P(B2); S:=S+1; V(B1 ) end;
c. Решение:
Init: proc (var S: integer; value: integer); common binary semaphore B;
begin B:=1; S:=value end;
PP: procedure (var S: integer);
common binary semaphore B;
Begin if S>0 then begin P(B); S:=S–1; V(B) end end;
VP: procedure (var S: integer);
common binary semaphore B;
Begin P(B); S:=S+1; V(B) end;
d. Решение:
Init: proc (var S: integer; value: integer); begin S:=value end;
PP: procedure (var S: …); common binary semaphore B1, B2;
Begin P(B1); S:=S–1; if S<0 then P(B2) Else V(B1) end;
VP: procedure (var S: …); common binary semaphore B1, B2;
Begin P(B1); S:=S+1; if S<=0 then V(B2); V(B1 ) end;
e. Решение:
Init: proc (var S: integer; value: integer);
common binary semaphore B1, B2;
27
Национальный исследовательский университет «Высшая школа экономики»
Программа учебной дисциплины «Теоретические основы информатики»
080500.62 Бизнес-информатика подготовки бакалавра
begin B1:=1; B2:=1; S:=value end;
PP: procedure (var S: integer);
common binary semaphore B1, B2;
Begin P(B1); S:=S–1; if S<0 then P(B2) Else V(B1) end;
VP: procedure (var S: integer);
common binary semaphore B1, B2;
Begin P(B1); S:=S+1; if S>0 then V(B2); V(B1 ) end;
Тема 14. Проблема тупика и её решение
Проблема тупика. Математические модели, лежащие в основе решения. Задачи
предотвращения, распознавания, обхода тупиков, вывод системы из тупика. Решение задач
для систем с разными типами ресурсов.
Лекции: 4 часа.
Практические занятия: 6 часов.
Самостоятельная работа: 10 часов.
Проблема взаимного исключения: программные методы решения
Решите следующие задачи:
3. Задача “обедающие философы” формулируется следующим образом: “Пять философов
садятся обедать за круглый стол, в центре которого стоит одно блюдо со спагетти. На
столе имеется пять тарелок и пять вилок между ними. Философ может начать есть, если у
него есть тарелка и две вилки, которые он может взять с двух сторон от своей тарелки.
Философ может отдать одну вилку ближайшему соседу только после того, как он
положит в свою тарелку спагетти, а вторую – после того, как закончит обед”. О
соображениях гигиены мы здесь умалчиваем. Может ли описанный ниже на псевдокоде
процесс представить алгоритм поведения философа за столом?
a. Решение:
Инициализация:
{ “Вилки”, которые используются философами – это разделяемые ресурсы,
защищенные бинарными семафорами: }
common B: array[0..4] of binary semaphore; { глобальный массив семафоров}
for I:=0 to 4 do B[I]:=1; { все “вилки” свободны }
process Философ(I: Integer);
{ Это процесс, описывающий поведение I-го философа. }
{ “Вилки”, которыми он ест, защищаются двумя бинарными семафорами. }
common B: array[0..4] of binary semaphore
begin { Пытается получить вилки: }
while (P(B[I])=0) or (P(B[(I+1) mod 5])=0) do ;
{ Ест спагетти, используя вилки, находящиеся слева и справа } …
{ Освобождает вилки: } V(B[(I+1) mod 5]); V(B[I]);
end;
28
Национальный исследовательский университет «Высшая школа экономики»
Программа учебной дисциплины «Теоретические основы информатики»
080500.62 Бизнес-информатика подготовки бакалавра
b. Решение:
Инициализация:
{ “Вилки”, которые используются философами – это разделяемые ресурсы,
защищенные бинарными семафорами: }
common B: array[0..4] of binary semaphore; { глобальный массив семафоров}
for I:=0 to 4 do B[I]:=1; { все “вилки” свободны }
process Философ(I: Integer);
{ Это процесс, описывающий поведение I-го философа. }
{ “Вилки”, которыми он ест, защищаются двумя бинарными семафорами. }
common B: array[0..4] of binary semaphore
begin
{ Пытается получить вилки: }
P(B[I]); P(B[(I+1) mod 5]);
{ Ест спагетти, используя вилки, находящиеся слева и справа } …
{ Освобождает вилки: }
V(B[(I+1) mod 5]); V(B[I]);
end;
1. Проблема взаимного исключения: анализ состояний системы для выявления тупиков
1. Пусть в системе есть два процесса P1 и P2 и два единичных повторно используемых
ресурса R1 и R2. Процессы имеют следующее описание:
Процесс 1
process P1 ;
begin ...
While true do
begin …
request ( R1, 1) ;
...
request ( R2, 1) ;
...
release ( R2, 1) ;
...
release ( R1, 1) ;
...
end
...
end.
Процесс 2
process P2 ;
begin ...
While true do
begin …
request ( R2, 1) ;
...
request ( R1, 1) ;
...
release ( R2, 1) ;
...
release ( R1, 1) ;
...
end
...
end.
Построить граф состояний системы. Возможны ли в системе тупиковые
состояния? Обоснуйте ответ.
1. Пусть в системе есть два процесса P1 и P2 и два потребляемых ресурса R1 и R2,
используемых этими процессами. Ресурс R1 производится процессом P1, а R2 – P2.
Процессы имеют следующее описание:
Процесс 1
process P1 ;
begin ...
While true do
Процесс 2
process P2 ;
begin ...
While true do
29
Национальный исследовательский университет «Высшая школа экономики»
Программа учебной дисциплины «Теоретические основы информатики»
080500.62 Бизнес-информатика подготовки бакалавра
begin …
request ( R2, 1) ;
...
release ( R1, 1) ;
...
end
...
end.
begin …
request ( R1, 1) ;
...
release ( R2, 1) ;
...
end
...
end.
Построить граф состояний системы. Возможны ли в системе тупиковые
состояния? Обоснуйте ответ (проанализируйте ситуации для различных начальных
состояний системы).
Раздел 4. ХРАНЕНИЕ И ПОИСК ДАННЫХ (44 часа)
Тема 15. Понятие модели данных
Типы данных и модели данных. Определение модели данных, примеры. Реализация
моделей данных.
Лекции: 2 часа.
Практические занятия: 2 часа.
Самостоятельная работа: 4 часа.
Задачи:
Рассмотрите алгоритмы выполнения операций над данными, для представления которых
используются различные модели.
Тема 16. Представление данных во внешней памяти
Файлы и представление данных с использованием различных моделей. Понятие
метаданных. Операции над файлами и задачи поиска и обработки данных.
Лекции: 2 часа.
Практические занятия: 2 часа.
Самостоятельная работа: 6 часов.
Задачи:
Сконструируйте типы данных для представления метаданных, которые можно
использовать
для
генерации
пользовательского
интерфейса
приложения,
предназначенного для работы с файлами записей.
Тема 17. Индексация данных и поиск
Проблема поиска данных. Индексация. Понятие В-дерева. Операции над В-деревьями.
Индексация с помощью В-деревьев. Внешние сортировки и индексация данных.
Лекции: 2 часа.
Практические занятия: 4 часа.
Самостоятельная работа: 20 часов.
Задачи:
Сконструируйте типы данных для представления
 уникального индекса;
 индекса, в котором допускаются повторения ключей.
Опишите алгоритмы выполнения операций над данными в файле с соответствующей
организацией индекса.
30
Национальный исследовательский университет «Высшая школа экономики»
Программа учебной дисциплины «Теоретические основы информатики»
080500.62 Бизнес-информатика подготовки бакалавра
Приложение 2
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Вопросы для самоконтроля
Дайте определение модели. Приведите общую классификацию математических
моделей. Сравните различные методы моделирования (использующие аналитические
модели, численное моделирование, имитационное моделирование).
Определите понятие процесса. Дайте классификацию процессов. Какие отношения
могут возникать между процессами? Какие проблемы необходимо решать для
параллельных процессов, между которыми есть отношение конкуренции? Какие задачи
решаются для взаимодействующих процессов? Для каких процессов необходимо
поддерживать отношение предшествования? Приведите примеры.
Определите понятие ресурса. Дайте классификацию ресурсов. Какие проблемы связаны
с разделением ресурсов процессами? Приведите примеры.
Сформулируйте проблему взаимного исключения. Приведите примеры.
Дайте понятие критической секции. Сформулируйте свойства критической секции.
Каковы общие условие решения задачи взаимного исключения? Приведите примеры.
Опишите и сравните различные программные методы решение проблемы взаимного
исключения (использование логических переменных, счетчиков, задержек при
выполнении процессов). Приведите примеры.
Дайте понятие семафора. Опишите семафорные примитивы для бинарных семафоров и
семафоров со счетчиками. Приведите примеры использования семафоров (для решения
задачи взаимного исключения, синхронизации процессов, решения задачи поддержания
отношения предшествования).
Дайте определение тупика. Сформулируйте задачи, связанные с проблемой тупика,
кратко охарактеризуйте подходы к решению. Приведите примеры.
Дайте формальное определение системы с использованием математической модели.
Дайте формальное определение заблокированного процесса, процесса, находящегося в
тупике. Какое состояние является тупиковым? Какое состояние называется
безопасным? Какое состояние называется выгодным? Приведите примеры.
Сформулируйте необходимые условия возникновения тупика. Опишите подходы к
решению задачи предотвращения тупика, сравните их. Приведите примеры.
Дайте определение графа ПИР (повторно используемых ресурсов). Для решения каких
задач используется граф ПИР? Приведите примеры.
Опишите алгоритм редукции графа ПИР. Сформулируйте основную теорему о тупике.
На чем основано ее доказательство? Приведите примеры.
Покажите, как решается задача распознавания тупика для систем с единичными
ресурсами? Сформулируйте используемые алгоритмы. Приведите примеры.
Как решается задача распознавания тупика для систем в выгодном состоянии?
Сформулируйте используемые алгоритмы. Приведите примеры.
Сформулируйте задачу обхода тупика. Опишите общий подход к решению с
использованием «алгоритма банкира». Какая модель используется для решения задачи?
Приведите примеры.
Сформулируйте задачу вывода системы из тупика. Каковы общие подходы к решению?
Для каких условий можно решить задачу с использованием алгоритма уничтожения
узла?
Дайте определение графа ПР (потребляемых ресурсов). Для решения каких задач
используется граф ПР? Приведите примеры.
Опишите алгоритм редукции графа ПР. Действует ли для потребляемых ресурсов
основная теорема о тупике? Каковы особенности решения задачи распознавания тупика
в системах с потребляемыми ресурсами?
31
Национальный исследовательский университет «Высшая школа экономики»
Программа учебной дисциплины «Теоретические основы информатики»
080500.62 Бизнес-информатика подготовки бакалавра
19. Опишите граф обобщенных ресурсов. Как этот граф можно использовать для решения
задач распознавания, обхода тупиков?
20. Дайте определение файла. Опишите способы организации файлов (файлы с
последовательной организацией, индексированные файлы).
21. Дайте определение B-дерева. Опишите алгоритмы выполнения операций над
B-деревьями: добавление записи, поиск записи, удаление записи.
32
Национальный исследовательский университет «Высшая школа экономики»
Программа учебной дисциплины «Теоретические основы информатики»
080500.62 Бизнес-информатика подготовки бакалавра
Приложение 3
Домашнее задание 1
Домашнее задание 1. Работайте процедуры синтаксического разбора и
интерпретации выражений, используя приведенные в методических указаниях по теме
описания грамматики языка выражений и тексты процедур разбора и интерпретации.
Этап 1.
Разработайте самостоятельно или переработайте процедуры разбора, включая
процедуры перехода к следующему символу в строке, а также процедуры вывода сообщений
об ошибках (в случае обнаружения ошибки разбор должен быть прекращен, на экран должно
быть выведено сообщение об ошибке с указанием причины ошибки, рекомендацией по её
исправлению (возможные ошибочные ситуации описаны в методических указаниях)).
Обратите внимание на фрагмент кода процедуры EXPRESSION, выделенный зелёным
цветом: всегда ли сообщения об ошибке будут выводиться только в случае возникновения
ошибки? Приведите пример неверного вывода сообщения об ошибке, если такая ситуация
возможна. Исправьте код, если это необходимо. При разработке процедуры NEXTSYMBOL
перехода к следующему символу в строке необходимо предусмотреть ситуацию, когда
анализируемая строка «неожиданно» заканчивается. Как предотвратить ошибку при
выполнении процедур разбора в этом случае (процедуры разбора можно преобразовать в
функции, которые в качестве результата возвращают код возврата, который можно
анализировать, чтобы распознать необходимость и возможность продолжения разбора)?
Внесите необходимые изменения в приведенный выше код процедур.
Приведите описания тестов для разработанных вами процедур разбора выражений.
Этап 2.
Внесите изменения в тексты процедур синтаксического разбора для построения:
а) дерева, синтаксически правильное выражение в форме, пригодной для интерпретации
(узлы дерева – операции или операнды (листовые вершины представляют переменные или
константы));
б) обратной польской записи в форме, пригодной для интерпретации (элементы –
записи, представляющие операции или операнды).
В случае обнаружения ошибки структуры данных, используемые для построения дерева
или ОПЗ, должны быть очищены.
Этап 3.
Разработайте «Калькулятор» – интерпретатор, вычисляющий значение синтаксически
правильного выражения, используя:
а) построенное дерево;
б) обратную польскую запись.
Обязательные требования к выполнению задания:
1. Выявление и локализация синтаксических ошибок в выражении, вывод сообщений об
ошибке с указанием типа ошибки, ошибочного символа и контекста.
2. Контроль выполнения арифметических операций и обработка исключений, связанных
с неправильным вводом данных, несоответствием типов, ошибками при выполнении
операций (переполнение, деление на ноль и т.п.).
3. Возможность повторного вычисления значения выражения с другими исходными
данными, вводимыми пользователем, при использовании в выражении переменных.
33
Национальный исследовательский университет «Высшая школа экономики»
Программа учебной дисциплины «Теоретические основы информатики»
080500.62 Бизнес-информатика подготовки бакалавра
Критерии оценки интерпретатора выражений
Базовые оценки
Дополнительные баллы*
№
Содержание работы
1
2
Синтаксический анализ
выражения и
интерпретация с
использованием
промежуточного
представления в виде
дерева
Синтаксический анализ
выражения и
интерпретация с
использованием
промежуточного
представления в виде
обратной польской
записи (без построения
дерева)**
Итого:
Баллы
4
3
Содержание работы
Баллы
Создание таблицы идентификаторов (бинарного
дерева и/или хеш-таблицы), обеспечивающей
однократность ввода данных (значений переменных)
1
Возможность использования в качестве имен
переменных идентификаторов, представляющих собой
последовательность букв и цифр
1
Возможность работы с разными типами данных:
целыми и вещественными числами
1
Возможность использования в записи выражения
разделителей (пробелов)
1
Организация вычислений с использованием таблиц
идентификаторов и констант, содержащих поля, в
которые записываются значения соответствующих
типов (целых (и вещественных, если реализовано)
чисел), а не строки (исключается повторный перевод
значений в виде строк в числовые значения)
1
Нейтрализация ошибок – анализ выполняется до конца
(не до первой ошибки), при этом часть строки,
содержащая ошибку, отбрасывается
1
Итого:
7
6
* Дополнительные баллы можно получить, выполнив соответствующие задачи в одном из
вариантов
(с
использованием
дерева
и/или
ОПЗ).
«Лишние» полученные баллы будут добавлены (с соответствующим весом) к
экзаменационной оценке.
** Если ОПЗ строится по ранее построенному дереву, но интерпретируется выражение,
представленное в этой ОПЗ (упрощенный вариант – переписывается процедура
вычисления с использованием не дерева, а стека, представляющего ОПЗ), то базовый
балл за выполнение этого задания снижается до 1 или 2 – в зависимости от способа
построения ОПЗ:
- 2 балла – если ОПЗ представлена в виде линейного списка с дисциплиной LIFO,
- 1 балл, если для представления ОПЗ используется массив, элементами которого
являются записи, представляющие операции и операнды, помещенные в ОПЗ
(указателем вершины стека будет номер элемента массива, который содержит запись,
которая помещена в массив последней);
- 3 балла можно получить при реализации двух способов (список и массив).
34
Национальный исследовательский университет «Высшая школа экономики»
Программа учебной дисциплины «Теоретические основы информатики»
080500.62 Бизнес-информатика подготовки бакалавра
Приложение 4
Домашнее задание 2
Задание: Разработать приложение, в котором реализуются операции над данными,
размещенными в файлах.
Требования к данным: программа должна работать со структурированными
данными – записями; каждая запись содержит данные различных типов (числа,
строки и пр.); в каждой записи имеется поле, значение которого уникально для
всего набора записей – ключ записи.
Требования к операциям: при работе с данными должны быть реализованы
следующие операции:
1. Добавление записи: новая запись добавляется в конец файла данных.
2. Удаление записи: запись для удаления ищется по значению ключевого поля.
* Для получения максимального балла нужно реализовать два варианта
выполнения операции удаления:
 Запись при выполнении операции удаляется из файла без возможности
восстановления.
 Удаляемая запись в файле помечается для удаления в специальном
служебном поле. Удаленные записи не отображаются при просмотре
файла пользователем, но для работы с ними должны быть реализованы
дополнительные процедуры: просмотра списка удаленных записей,
восстановления записи, выбранной пользователем в списке удаленных
записей (для выполнения операции пользователю показывается список
всех помеченных для удаления записей), удаления всех записей,
помеченных для удаления (после выполнения этой операции
восстановление будет невозможно – пользователь должен получить
предупреждение об этом).
Реализация только первого варианта выполнения операции – 6 баллов за
реализацию операции удаления. Реализация второго варианта – 8 баллов.
Реализация двух вариантов – 10 баллов.
3. Редактирование (изменение) записи: запись для редактирования выбирается
по значению ключевого поля. Пользователь при этом не должен заново
вводить значения всех полей – ему должна быть предоставлена возможность
редактирования ранее введенных значений полей.
4. Индексация файла: для ускорения поиска записей строится индекс. Нужно
реализовать несколько вариантов индексации:
 Построение индекса в памяти в виде бинарного дерева:
а) для уникального ключа;
б) для ключевых полей, значения которых могут повторяться в
нескольких записях.
Например: номер зачетной книжки – уникальный ключ для записи,
содержащей информацию о студенте; номер школы, в которой учился
студент до поступления в вуз,– ключевое поле, которое не является
уникальным.
При поиске информации по уникальному ключу на экран выводится
информация из одной найденной записи или сообщение, что данные не
найдены.
При поиске информации в файле по ключу, допускающему повторение
значений в нескольких записях, в качестве результата выводится список
35
Национальный исследовательский университет «Высшая школа экономики»
Программа учебной дисциплины «Теоретические основы информатики»
080500.62 Бизнес-информатика подготовки бакалавра
записей, удовлетворяющих условиям поиска, или сообщение о том, что
данные не найдены.
Для проиндексированных файлов должны быть реализованы все
перечисленные выше операции: поиск и редактирование записей,
добавление новых записей, удаление записей. Выполнение операций
может потребовать перестройки индекса: при добавлении записи в файл
добавляется и соответствующая запись в индекс; при удалении записи
удаляется и запись о ней в индексе; при редактировании ключевого поля
изменится и индекс (запись в индексе со старым значением ключа
должна быть удалена, а с новым значением – включена в индекс).
При реализации только первого варианта (а) максимальная оценка –
8 баллов. При реализации второго варианта (б) – 10 баллов.
 Построение индекса в отдельном файле, который связывается с
основным файлом.
Для данного файла-индекса должна выполняться процедура его
сортировки по значению ключевого поля (внешняя сортировка –
сортировка файла). Для поиска записи в индексе по ключу используется
метод деления пополам (бинарный поиск). При выполнении операций
над файлом, содержащим данные, должен быть соответствующим
образом изменен и файл-индекс.
Все операции над данными, размещенными в файлах, реализуются с помощью процедур
или функций.
Индексы используются для поиска информации – записей, над которыми пользователь
собирается выполнить операции редактирования или удаления. При выполнении операций
над проиндексированным файлом (добавление/удаление записи, редактирование записи
(если изменяется ключевое поле)) соответствующие операции выполняются и над
индексом (в него добавляется или из него удаляется элемент, при изменении ключевого поля
индекс перестраивается – сортируется с учетом изменений элемента).
36
Скачать