Правительство Российской Федерации Государственное образовательное бюджетное учреждение высшего профессионального образования ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ ВЫСШАЯ ШКОЛА ЭКОНОМИКИ ПЕРМСКИЙ ФИЛИАЛ Факультет бизнес-информатики Программа дисциплины Теоретические основы информатики Для направления 080500.62 Бизнес-информатика подготовки бакалавра Авторы программы: Л.Н. Лядова, к.ф.-м.н., доцент, LyadovaLN@hse.perm.ru (И.О. Фамилия, учёная степень, звание, электронный адрес) Одобрена на заседании кафедры информационных технологий в бизнесе «29» октября 2010 г. И.о. зав. кафедрой Т.А. Казаченко Утверждена Учебно-методическим Советом ПФ ГУ-ВШЭ «09» декабря 2010 г. Председатель Г.Е. Володина Пермь, 2010 Настоящая программа не может быть использована другими подразделениями университета и другими вузами без разрешения кафедры-разработчика программы. "Государственный университет Высшая школа экономики" Программа учебной дисциплины Теоретические основы информатики 080500.62 Бизнес-информатика подготовки бакалавра 1. Область применения и нормативные ссылки Настоящая программа учебной дисциплины устанавливает минимальные требования к знаниям и умениям студента и определяет содержание и виды учебных занятий и отчетности. Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов направления подготовки 080500.62 Бизнес-информатика, изучающих дисциплину Теоретические основы информатики. Программа разработана в соответствии с: Образовательным стандартом государственного образовательного бюджетного учреждения высшего профессионального образования «Государственный университет – Высшая школа экономики», в отношении которого установлена категория «Национальный исследовательский университет» по направлению подготовки 080500.62 Бизнес-информатика (уровень подготовки: Бакалавр). Утверждён 02.07.2010 г. (протокол № 15); Учебным планом по направлению подготовки 080500.62 Бизнес-информатика, утвержденным в 2010 г. 2. Цели освоения дисциплины Целями изучения дисциплины «Теоретические основы информатики» являются: В области обучения – подготовка в области основ математических и естественнонаучных знаний, получение высшего профессионально профилированного (на уровне бакалавра) образования, позволяющего выпускнику успешно работать в сфере проектирования архитектуры предприятия, стратегического планирования развития ИС и ИКТ управления предприятием, организации процессов жизненного цикла ИС и ИКТ управления предприятием, аналитической поддержки процессов принятия решений для управления предприятием, обладать универсальными и предметно-специализированными компетенциями, способствующими его социальной мобильности и устойчивости на рынке труда. Основная задача – дать фундаментальную подготовку по теоретическим основам информатики, необходимую для успешного освоения как дисциплин профессионального цикла, так и математического и естественнонаучного цикла (базовых и вариативных частей), изучение которых связано с применением теоретических основ информатики и информационно-коммуникационных технологий, созданием эффективных алгоритмов решения задач, разработкой программного обеспечения для различных предметных областей. В области воспитания – формирование социально-личностных качеств студентов: целеустремленности, организованности, трудолюбия, ответственности, готовности к ответственному и целеустремленному решению поставленных задач во взаимодействии с коллективом, партнёрами, способность проявлять высокую общую культуру в общении с подчиненными и сотрудниками всех уровней, способность к саморазвитию, повышению своей квалификации и мастерства, понимание социальной значимости своей будущей профессии, высокую мотивацию к выполнению профессиональной деятельности. Освоение дисциплины должно обеспечить базовые знания в области информатики и программирования, которые дадут возможность выпускнику успешно работать в сфере организации процессов жизненного цикла ИС и ИКТ, обладать универсальными и предметно-специализированными компетенциями, способствующими его социальной мобильности и устойчивости на рынке труда. 2 "Государственный университет Высшая школа экономики" Программа учебной дисциплины Теоретические основы информатики 080500.62 Бизнес-информатика подготовки бакалавра 3. Компетенции обучающегося, формируемые в результате освоения дисциплины В результате освоения дисциплины студент должен: Знать: основные понятия информатики и программирования; теоретические основы информатики: основы кодирования и представления информации, модели данных; графовые модели алгоритмов и программ, используемые для решения задач их анализа, оценки и оптимизации, и методы анализа, основанные на этих моделях; основные способы формального описания языков программирования с использованием различных нотаций, классификацию формальных грамматик; способы кодирования данных, их представления в памяти компьютера; способы организации файлов, обеспечивающие эффективное хранение и поиск информации, выполнения операций над файлами, возможности их использования при решении прикладных задач; этапы подготовки программ к выполнению, алгоритмы работы и структуры данных, используемые трансляторами и компоновщиками; основные проблемы, связанные с реализацией параллельных и распределенных вычислений, подходы к их решению, используемые математические модели и алгоритмы; основы прикладной архитектуры современных персональных компьютеров. Уметь: применять математические методы и инструментальные средства для исследования объектов профессиональной деятельности: в частности, использовать математический аппарат для исследования свойств алгоритмов, структур данных и программ, применять математические методы (методы теории графов, формальных языков и грамматик, сети Петри и пр.) для их анализа и оценки; решать задачи, связанные с проектированием параллельных и распределенных программ, используя различные математические модели алгоритмов и программ, информационных систем; разрабатывать приложения средней сложности, предназначенные для работы с данными, хранящимися в файлах с различной организацией; конструировать типы данных, оценивать эффективность представления данных; понимать и разрабатывать формальные описания языков программирования, описывать грамматики с использованием различных нотаций; систематизировать и обобщать информацию с использованием формальных моделей алгоритмов и программ. Владеть (приобрести опыт): основами математического моделирования прикладных задач, решаемых аналитическими методами, в частности, задач, связанных с моделированием алгоритмов, данных и программ; навыками разработки приложений, обрабатывающих данные, хранящиеся на внешних запоминающих устройствах, с использованием различных способов их методами поиска, хранения и обработки информации: в частности, с использованием различных структур данных и моделей данных, способов их представления и кодирования, возможностей файловых систем, динамического управления памятью и пр.; методами разработки формальных языков, интерпретаторов средней сложности; 3 "Государственный университет Высшая школа экономики" Программа учебной дисциплины Теоретические основы информатики 080500.62 Бизнес-информатика подготовки бакалавра навыками решения задач связанных с проектированием параллельных и распределенных приложений; навыками решения некоторых задач дискретной математики, основанных на использовании графовых моделей, связанных с исследованием свойств алгоритмов и программ; навыками решения некоторых оптимизационных задач с ограничениями, в частности задач, для решения которых используются алгоритмы теории графов. Студенты также должны получить общее представление о теоретических основах и инструментальных средствах создания информационных систем различного назначения: о существующих подходах к моделированию информационных систем, различных классах моделей, применяемых в области ИТ, о методах теории множеств, теории графов и конечных автоматов, математической логики и неклассических логик, алгебры, применяемых при проектировании и анализе информационных систем, их компонентов. Студенты также должны получить общее представление о теоретических основах и инструментальных средствах создания информационных систем различного назначения, связи между ними. В результате освоения дисциплины студент должен освоить следующие компетенции: Компетенция Код по ФГОС/ НИУ Дескрипторы – основные признаки освоения (показатели достижения результата) Владение культурой мышления, способность к обобщению, анализу, восприятию информации, постановке цели и выбору путей её достижения Способность логически верно, аргументировано и ясно строить устную и письменную речь ОНК-3 СЛК-1 Демонстрирует умение обосновывать предлагаемые решения (не только разрабатывать алгоритмы и программы, реализующие их, но и уметь доказывать правильность программ, анализировать и оценивать эффективность решений) Способность к саморазвитию, повышению своей квалификации и мастерства СЛК-4 Демонстрирует способность самостоятельно определять формирующиеся дефициты знаний, умений и навыков в ходе обучения Показывает умение сформулировать проблемы, связанные с недостатком знаний и навыков, и выбрать подходы к их решению Владеет одним из иностранных языков на уровне не ниже разговорного Даёт чёткие определения основных понятий информатики и программирования, видит их связь Чётко формулирует задачи, анализирует условия и обоснованно выбирает методы решения, уверенно интерпретирует результаты ИК-2 Демонстрирует умение самостоятельно работать со справочной информацией, руководствами, написанными на английском языке 4 Формы и методы обучения, способствующие формированию и развитию компетенции Аудиторные занятия проводятся в форме, предполагающей активное участие студентов в работе, обсуждение проблем и анализ решений, предлагаемых студентами и преподавателем на лекциях и практических занятиях. Самостоятельное изучение отдельных тем. Выполнение индивидуальных заданий (с получением консультаций преподавателя) Изучение моделей, алгоритмов, методов и инструментальных "Государственный университет Высшая школа экономики" Программа учебной дисциплины Теоретические основы информатики 080500.62 Бизнес-информатика подготовки бакалавра Формы и методы обучения, Дескрипторы – основные признаки Код по способствующие Компетенция освоения (показатели достижения ФГОС/ НИУ формированию и результата) развитию компетенции Владеет знаниями, достаточными для средств самостоятельного изучения и понимания программирования с описаний алгоритмов и программ, использованием формальных моделей , полученными из источников на источников на английском языке английском языке при выполнении заданий Готовность работать с ИК- 4 / Показывает навыки уверенного владения Самостоятельное информацией из ИК-6 средствами поиска информации в Internet, в изучение отдельных различных различных источниках, рекомендованных тем при подготовке источников / для самостоятельного изучения. к контрольным Владение навыками мероприятиям, работы с компьютером выполнение Демонстрирует умение оценивать и как средством домашних заданий, отбирать наиболее важную информацию, управления требующее максимально полезную для решения информацией, самостоятельно поставленных задач при выполнении способность работать находить домашних заданий, при подготовке к с информацией в информацию контрольным мероприятиям глобальных компьютерных сетях Способность к организованному подходу к освоению и приобретению новых навыков и компетенций Использовать соответствующий математический аппарат и инструментальные средства для обработки, анализа и систематизации информации по теме исследования СЛК -7 Демонстрирует способность применять полученные знания для решения новых задач в различных областях Владеет навыками самостоятельного поиска, изучения и выбора методов и средств решения поставленных задач ПК-22 Подготовлен к самостоятельному изучению новых технологий, инструментальных средств разработки программ Уверенно использует способы формального описания структур данных и алгоритмов их обработки Владеет различными способами формального описания языков, умеет дать описания языковых конструкций, может прочитать и использовать на практике формальные описания языков с использованием различных нотаций Знает и может использовать на практике математический аппарат, формальные средства, лежащие в основе различных методов разработки алгоритмов и программ Может построить формальное описание и доказать языков программирования с использованием формальных методов 5 Выполнение заданий с постепенным наращиванием требований к сложности, используемым методам и средствам решения Использование и сравнение формальных средств при изучении основных методов разработки программ и средств языка Pascal. Получение формальных оценок и сравнение их с результатами, полученными при практической реализации "Государственный университет Высшая школа экономики" Программа учебной дисциплины Теоретические основы информатики 080500.62 Бизнес-информатика подготовки бакалавра Компетенция Код по ФГОС/ НИУ Дескрипторы – основные признаки освоения (показатели достижения результата) Знает основы организации файлов: - владеет средствами выполнения операций над файлами с различной организацией, - умеет выбрать оптимальные способы представления данных и использовать эффективные средства их обработки при решении задач обработки массивов данных, хранящихся во внешней памяти Знает основы методов трансляции и умеет их использовать при разработке программ: - использует знания при выборе оптимальных структур данных и управляющих структур; - способен разработать интерпретатор средней сложности Готовить научнотехнические отчёты, презентации, научные публикации по результатам выполненных исследований ПК-23 Умеет грамотно оформлять отчёты о выполнении домашних заданий, включающие постановку задач, описание решений и оценки результатов Владеет навыками грамотного оформления и документирования текстов программ, результатов их тестирования Формы и методы обучения, способствующие формированию и развитию компетенции Выполнение практических заданий с использованием языка Pascal. Выполнение контрольных работ. Выборочный опрос и экспресстестирование на лекциях и практических занятиях. Выполнение практических заданий с использованием языка Pascal Оформление результатов выполнения заданий с использованием требований к оформлению отчётов, современных технологий подготовки документов 4. Место дисциплины в структуре образовательной программы Настоящая дисциплина относится к циклу математических и естественно-научных дисциплин и базовой части дисциплин. Изучение данной дисциплины базируется на следующих дисциплинах: Базовый школьный курс информатики и/или выравнивающий факультатив по основам программирования на языке Pascal. Линейная алгебра. Программирование. Для освоения учебной дисциплины студенты должны владеть следующими знаниями и компетенциями: Знание основ функционирования персональных компьютеров. Знание основ организации обработки данных с помощью компьютеров. Базовые навыки работы с персональным компьютером в среде Microsoft Windows. Базовые знания и навыки работы с офисными приложениями (текстовым процессором и электронными таблицами). Знание основных понятий линейной алгебры, операций над векторами и матрицами. 6 "Государственный университет Высшая школа экономики" Программа учебной дисциплины Теоретические основы информатики 080500.62 Бизнес-информатика подготовки бакалавра Основные положения дисциплины будут использованы в дальнейшем при изучении следующих дисциплин учебного плана: Программирование. Дискретная математика. Основы офисного программирования. Объектно-ориентированный анализ и программирование. Основы программирования на C++. Основы программирования на C# в VS.NET. Функциональное программирование и интеллектуальные системы. Основы эволюционных вычислений и теория алгоритмов. Информационные процессы, системы и сети. Вычислительные системы, сети, телекоммуникации. Управление данными. Моделирование информационных систем. Имитационное моделирование. 5. Тематический план учебной дисциплины Аудиторные часы № Название раздела 1 Раздел 1. Кодирование информации и представление данных в памяти компьютера. Тема 1. Понятие типа данных и стандартные типы данных. Тема 2. Конструирование типов, рекурсивные типы данных. Раздел 2. Формальные языки и основы трансляции. Тема 3. Понятие языка программирования. Тема 4. Понятие формальной грамматики. Тема 5. Описание формального языка с помощью диаграмм. Тема 6. Описание формального языка с помощью металингвистических формул. Тема 7. Процедуры синтаксического разбора. Тема 8. Синтаксический разбор и вывод. Тема 9. Интерпретация выражений. Раздел 3. Теоретические основы разработки распределенных систем. Тема 10. Понятия процесса и классификация процессов. Тема 11. Понятие ресурса и классификация ресурсов. 2 3 4 5 6 7 8 9 10 11 12 13 14 7 Самостоятельная работа Всего часов Лекции 30 6 8 16 14 2 4 8 16 4 4 8 90 14 22 54 6 2 0 4 8 2 2 4 10 2 4 4 10 2 4 4 22 2 4 16 12 22 2 2 4 4 6 16 56 10 10 36 6 2 0 4 6 2 0 4 Практиче Семиские нары занятия "Государственный университет Высшая школа экономики" Программа учебной дисциплины Теоретические основы информатики 080500.62 Бизнес-информатика подготовки бакалавра Аудиторные часы № Название раздела 15 Тема 12. Выполнение программ и управление процессами. Тема 13. Проблема взаимного исключения. Тема 14. Проблема тупика и её решение. Раздел 4. Хранение и поиск данных. Тема 15. Понятие модели данных. Тема 16. Представление данных во внешней памяти. Тема 17. Индексация данных и поиск Итого: 16 17 18 19 20 21 22 Самостоятельная работа Всего часов Лекции 6 2 0 4 20 2 6 12 18 40 8 2 6 2 4 12 2 12 22 4 10 2 4 4 22 216 2 36 6 52 14 128 Практиче Семиские нары занятия 6. Контроль знаний студентов 6.1. Формы контроля знаний студентов Тип контроля 1 год Форма контроля 1 Текущий (неделя) Контрольная работа Домашнее задание Итоговый Экзамен 2 Параметры 3 4 4 1 11 * Письменная работа (90 минут) Разработка программ на языке Pascal Разработка программ на языке Pascal Письменный экзамен (90 минут) 6.2. Критерии оценки знаний, навыков Текущий контроль предусматривает выполнение письменной контрольной работы, двух домашних заданий в 4 модуле. Оценки по всем формам текущего контроля выставляются по 10-ти балльной шкале. Критерии оценки контрольной работы и требования к ответам Цель – проверка формирования следующих компетенций: Использовать соответствующий математический аппарат и инструментальные средства для обработки, анализа и систематизации информации по теме исследования (ПК-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 Бизнес-информатика подготовки бакалавра способен обосновывать предлагаемые решения (не только разрабатывать алгоритмы и программы, реализующие их, но и уметь доказывать правильность программ, анализировать и оценивать эффективность решений); владеет навыками грамотного оформления и документирования текстов программ, результатов их тестирования; умеет грамотно оформлять отчеты о выполнении домашних заданий, включающие постановку задач, описание решений и оценки результатов. Предусматривается возможность «защиты» выполненных домашних заданий. Защита предусматривает: Объяснение студентом использованных методов решения, реализованных в программе алгоритмов. Объяснение студентом всех использованных в программном коде конструкций, типов данных и управляющих структур. Рассмотрение и анализ возможных альтернативных решений. Внесение предложенных преподавателем изменений в код программы и анализ последствий этих изменений, их результатов. В ходе защиты студент должен продемонстрировать знание профессиональной терминологии в рамках соответствующей темы, продемонстрировать знание теоретического материала по теме, а также умение оценивать эффективность решений. Кроме того, он должен показать, что владеет культурой мышления, способен к обобщению, анализу, восприятию информации, постановке цели и выбору путей ее достижения, способен логически верно, аргументировано и ясно строить речь. Итоговый контроль Итоговый контроль осуществляется в форме письменной работы. При проведении зачета выполняются задания по всем темам курса, которые изучаются в соответствии с программой курса. Примерный перечень вопросов и заданий для подготовки к зачету приведен в Приложениях. Итоговый экзамен включает теоретические вопросы и решение задач. Теоретические вопросы включают вопросы по темам всего курса, которые изучались в 3-4 модулях. При проведении экзамена выполняются практические задания по всем темам курса, которые изучаются в соответствии с программой курса в 3-4 модулях. Примерный перечень вопросов и заданий для подготовки к экзамену по дисциплине приведен в приложениях. 7. Содержание дисциплины Раздел 1. Кодирование информации и представление данных в памяти компьютера. Тема 1. Понятие типа данных и стандартные типы данных. Понятие типа данных, стандартные типы данных и их аппаратная поддержка. Двоичная система – основа представления данных в памяти компьютера. Алгоритмы перевода. Представление целых чисел в форме с фиксированной точкой, знаковые и беззнаковые числа. Представление вещественных чисел. Количество часов аудиторной работы: Лекции: 2 часа. Семинарские занятия: 4 часа. Самостоятельная работа: 8 часов (изучение материала лекций и дополнительного материала по теме с использованием LMS, источников в Интернет; анализ типов данных в языках программирования с использованием справочных систем; подготовка к контрольной работе и пробное тестирование по теме через LMS). Тема 2. Конструирование типов, рекурсивные типы данных. Понятие конструктора типов. Конструирование массивов, записей. Рекурсивные типы: линейные списки, деревья. Динамическое распределение памяти и конструирование типов. Операции над рекурсивными данными. 11 "Государственный университет Высшая школа экономики" Программа учебной дисциплины Теоретические основы информатики 080500.62 Бизнес-информатика подготовки бакалавра Количество часов аудиторной работы: Лекции: 4 часа. Практические занятия: 4 часа. Самостоятельная работа: 8 часов (изучение материала лекций и дополнительного материала по теме с использованием LMS и источников в Интернет; анализ типов данных, используемых для конструирования рекурсивных типов, динамических структур данных в языках программирования с использованием справочных систем; подготовка к выполнению заданий с использованием динамических структур данных (линейные списки, бинарные деревья)). Литература по разделу: 1. Лядова Л.Н. Основы информатики и информационных технологий : учеб. пособие / Л.Н. Лядова, Б.И. Мызникова, Н.В. Фролова. Пермь : Изд-во Перм. ун-та , 2004. – 310 с. Раздел 2. 2. Лядова Л.Н. Презентация по теме «Представление и кодирование информации». Формы и методы проведения занятий по разделу, применяемые учебные технологии: решение задач на практических занятиях с обсуждением различных вариантов решений; экспресс-опросы по темам курса; проверочные тесты, доступные в LMS, время выполнения которых и количество попыток не ограничены – задания выполняются до получения правильных ответов на 100% заданий. Раздел 2. Формальные языки и основы трансляции. Тема 3. Понятие языка программирования. Определение формального языка. Описание лексики, синтаксиса, семантики и прагматики. Количество часов аудиторной работы: Лекции: 2 часа. Практические занятия: нет. Самостоятельная работа: 4 часа (изучение материала лекций и дополнительного материала по теме с использованием LMS, источников в Интернет). Тема 4. Понятие формальной грамматики. Определение формальной грамматики. Описание формального языка с помощью грамматики. Классификация формальных грамматик по Хомскому. Количество часов аудиторной работы: Лекции: 2 часа. Практические занятия: 2 часа. Самостоятельная работа: 4 часа (изучение материала лекций и дополнительного материала по теме с использованием LMS, источников в Интернет). Тема 5. Описание формального языка с помощью диаграмм. Описание синтаксиса языка с помощью диаграмм. Основные элементы диаграмм Вирта. Описание конструкций языка Pascal: примеры. Количество часов аудиторной работы: Лекции: 2 часа. Практические занятия: 4 часа. Самостоятельная работа: 4 часа (изучение материала лекций и дополнительного материала по теме с использованием LMS; анализ конструкций языков программирования и их описание с помощью диаграмм Вирта, изучение описаний синтаксиса языков программирования с помощью диаграмм; выполнение заданий для подготовки к контрольной работе). 12 "Государственный университет Высшая школа экономики" Программа учебной дисциплины Теоретические основы информатики 080500.62 Бизнес-информатика подготовки бакалавра Тема 6. Описание формального языка с помощью металингвистических формул. Описание грамматики с помощью металингвистических формул (БНФ), понятие метаязыка. Примеры. Количество часов аудиторной работы: Лекции: 2 часа. Практические занятия: 4 часа. Самостоятельная работа: 4 часа (изучение материала лекций и дополнительного материала по теме с использованием LMS; анализ конструкций языков программирования и их описание с помощью БНФ, изучение описаний синтаксиса языков программирования с помощью БНФ; сравнение возможностей БНФ и диаграмм Вирта; выполнение заданий для подготовки к контрольной работе). Тема 7. Процедуры синтаксического разбора. Описание грамматики выражений. Алгоритмы синтаксического разбора и схема реализации. Структуры данных, используемые в процессе разбора (таблицы идентификаторов, деревья и пр.) Количество часов аудиторной работы: Лекции: 2 часа. Практические занятия: 4 часа. Самостоятельная работа: 16 часов (изучение материала лекций и дополнительного материала по теме с использованием LMS; выполнение первой части контрольного задания: разработка грамматики выражений и процедур синтаксического анализа, оформление отчёта (описание грамматики с помощью БНФ и диаграмм, описание алгоритма синтаксического анализа, описание тестов)). Тема 8. Синтаксический разбор и вывод. Алгоритмы разбора и вывод конструкция языка. Примеры построения дерева разбора. Количество часов аудиторной работы: Лекции: 2 часа. Практические занятия: 4 часа. Самостоятельная работа: 6 часов (изучение материала лекций и дополнительного материала по теме с использованием LMS; построение дерева вывода и цепочек вывода в соответствии с заданной грамматикой; выполнение заданий для подготовки к контрольной работе). Тема 9. Интерпретация выражений. Интерпретация и компиляция, сравнение. Процедуры интерпретации, алгоритмы и структуры данных: деревья, обратная польская запись (ОПЗ). Количество часов аудиторной работы: Лекции: 2 часа. Практические занятия: 4 часа. Самостоятельная работа: 16 часов (изучение материала лекций и дополнительного материала по теме с использованием LMS; выполнение второй части контрольного задания: разработка процедур интерпретации выражений с использованием дерева и/или ОПЗ; подготовка отчёта (описание структур данных, алгоритма, тестов)). Литература по разделу: 1. Лядова Л.Н. Конспект лекций по теме «Формальные языки и основы трансляции». Электронный ресурс. 2. Залогова Л.А. Разработка Паскаль-компилятора. М.: БИНОМ. Лаборатория базовых знаний, 2007. Формы и методы проведения занятий по разделу, применяемые учебные технологии: решение задач на практических занятиях; 13 "Государственный университет Высшая школа экономики" Программа учебной дисциплины Теоретические основы информатики 080500.62 Бизнес-информатика подготовки бакалавра экспресс-опросы по темам курса; проверочные тесты, доступные в LMS, время выполнения которых и количество попыток не ограничены – задания выполняются до получения правильных ответов на 100% заданий; самостоятельная разработка программ при выполнении контрольного задания; индивидуальные консультации по выполнению контрольного задания. Раздел 3. Теоретические основы разработки распределенных систем. Тема 10. Понятия процесса и классификация процессов. Программы и процессы. Определение и классификация процессов. Отношения между процессами, их поддержание. Управление процессами. Необходимость ресурсов. Примеры. Количество часов аудиторной работы: Лекции: 2 часа. Практические занятия: нет. Самостоятельная работа: 4 часа (изучение материала лекций и дополнительного материала по теме с использованием LMS). Тема 11. Понятия ресурса и классификация ресурсов. Понятие ресурса и свойства ресурсов. Классификация ресурсов Задачи управления ресурсами. Примеры. Количество часов аудиторной работы: Лекции: 2 часа. Практические занятия: нет. Самостоятельная работа: 4 часа (изучение материала лекций и дополнительного материала по теме с использованием LMS). Тема 12. Выполнение программ и управление процессами. Состояния процессов и задачи их поддержания. Развитие процессов, допустимые изменения состояний, причины. Примеры. Количество часов аудиторной работы: Лекции: 2 часа. Практические занятия: нет. Самостоятельная работа: 4 часа (изучение материала лекций и дополнительного материала по теме с использованием LMS). Тема 13. Проблема взаимного исключения. Проблема взаимного исключения. Понятие критической секции, свойства, условие реализации. Методы решения. Семафорная техника взаимного исключения. Реализация средствами ОС и систем программирования, СУБД. Количество часов аудиторной работы: Лекции: 2 часа. Практические занятия: 6 часов. Самостоятельная работа: 12 часов (изучение материала лекций и дополнительного материала по теме с использованием LMS; решение задач и подготовка к контрольной работе). Тема 14. Проблема тупика и её решение. Проблема тупика. Математические модели, лежащие в основе решения. Задачи предотвращения, распознавания, обхода тупиков, вывод системы из тупика. Решение задач для систем с разными типами ресурсов. Количество часов аудиторной работы: Лекции: 2 часа. Практические занятия: 4 часа. Самостоятельная работа: 12 часов (изучение материала лекций и дополнительного материала по теме с использованием LMS; решение задач и подготовка к контрольной работе). 14 "Государственный университет Высшая школа экономики" Программа учебной дисциплины Теоретические основы информатики 080500.62 Бизнес-информатика подготовки бакалавра Литература по разделу: 1. Лядова Л.Н. Конспект лекций по курсу «Теоретические основы информатики»: Электронный ресурс. 2010. Формы и методы проведения занятий по разделу, применяемые учебные технологии: решение задач на практических занятиях; экспресс-опросы по темам курса; проверочные тесты, доступные в LMS, время выполнения которых и количество попыток не ограничены – задания выполняются до получения правильных ответов на 100% заданий; индивидуальные консультации по решению задач. Раздел 4. Хранение и поиск данных. Тема 15. Понятие модели данных. Типы данных и модели данных. Определение модели данных, примеры. Реализация моделей данных. Количество часов аудиторной работы: Лекции: 2 часа. Практические занятия: 2 часа. Самостоятельная работа: 4 часа (изучение материала лекций и дополнительного материала по теме с использованием LMS). Тема 16. Представление данных во внешней памяти. Файлы и представление данных с использованием различных моделей. Понятие метаданных. Операции над файлами и задачи поиска и обработки данных. Количество часов аудиторной работы: Лекции: 2 часа. Практические занятия: 4 часа. Самостоятельная работа: 4 часа (изучение материала лекций и дополнительного материала по теме с использованием LMS; разработка приложения, реализующего «базу данных» с использованием файлов с последовательной организацией (записи), оформление отчёта (описание структур данных, описание тестов)). Тема 17. Индексация данных и поиск. Проблема поиска данных. Индексация. Понятие В-дерева. Операции над В-деревьями. Индексация с помощью В-деревьев. Внешние сортировки и индексация данных. Количество часов аудиторной работы: Лекции: 2 часа. Практические занятия: 6 часов. Самостоятельная работа: 4 часа (изучение материала лекций и дополнительного материала по теме с использованием LMS; разработка приложения, реализующего индексацию файла «базы данных» с использованием сортировки файлов, бинарных деревьев, оформление отчёта (описание структур данных, описание тестов)). Литература по разделу: 1. Лядова Л.Н. Конспект лекций по теме «Внешняя сортировка и поиск данных». Электронный ресурс. 2. Кузнецов С.Д. Методы сортировки и поиска. Электронный ресурс. Формы и методы проведения занятий по разделу, применяемые учебные технологии: решение задач на практических занятиях; экспресс-опросы по темам курса; самостоятельная разработка программ; 15 "Государственный университет Высшая школа экономики" Программа учебной дисциплины Теоретические основы информатики 080500.62 Бизнес-информатика подготовки бакалавра индивидуальные консультации по выполнению практического задания. 8. Образовательные технологии Используется «проблемное» чтение лекций по дисциплине с использованием компьютерного мультимедийного оборудования, предусматривающее разбор практических задач, моделирование типовых ситуаций, возникающих при разработке программного обеспечения различного назначения с использованием универсальных языков программирования высокого уровня, а также особенностей архитектуры персональных компьютеров. На практике используются инструментальные средства (системы программирования) учебного назначения, позволяющие получить базовые навыки работы со средствами разработки программного обеспечения, подготовить студентов к использованию для разработки промышленных технологий. Текущий и итоговый контроль предусматривает организацию «защит» выполненных заданий с оформлением и публичным представлением результатов. В качестве основы для оформления документов рекомендуются стандарты оформления программной документации (ЕСПД), отчетов о НИР и НИОКР. Методические рекомендации преподавателю Рекомендации направлены на достижение поставленной цели – обеспечение фундаментальной подготовки студентов по теоретическим основам информатики, необходимой для успешного освоения дисциплин, основанных на применении базовых знаний в области информатики и информационных технологий. Для достижения поставленной цели при изучении дисциплины решаются следующие задачи: познакомить студентов с базовыми понятиями информатики; познакомить студентов с теоретическими основами представления и кодирования информации, основными структурами данных; дать навыки практической работы со сложно организованными данными; познакомить студентов с основными этапами подготовки программ, с основами формальных языков и грамматик, методов трансляции, теоретическими основами компоновки программ; дать практические навыки разработки компонентов трансляторов, интерпретатора выражений; познакомить студентов с теоретическими основами функционирования компьютеров; дать представление о проблемах, решаемых при проектировании сложных программных систем и подходами к их решению; дать навыки практического применения различных методов решения проблем проектирования программных систем, связанных с конкуренцией за ресурсы; привить студентам навыки исследовательской работы, предполагающей самостоятельное изучение алгоритмов решения типовых задач информатики и программирования, методов и средств их реализации, анализа и оценки решений. Содержание программы дисциплины должно обеспечить базовую подготовку студентов в процессе формирования устойчивых знаний и практических навыков решения задач проектирования и реализации программных систем, разработки алгоритмов и программ, их оценки, заложить основы для успешного освоения курсов, посвященных созданию современных информационных систем (в частности, курсов «Программирование», «Управление данными» и пр.). Курс также призван повысить общую эрудицию студентов, показать возможности применения алгоритмического подхода к решению задач в различных областях. 16 "Государственный университет Высшая школа экономики" Программа учебной дисциплины Теоретические основы информатики 080500.62 Бизнес-информатика подготовки бакалавра На лекциях используется «проблемный» подход к изложению материала: материал каждой лекции иллюстрируется примерами, рассматриваются нестандартные ситуации, требующие решения с использованием рассматриваемого материала. При этом студенты должны активно участвовать в обсуждении вопросов, выработке решений, предлагаемые студентами решения, обсуждаются, анализируются и оцениваются в ходе лекции. Предлагается рассматривать не только «верные», оптимальные решения, но и решения, приводящие к ошибкам. По каждому рассматриваемому на лекции вопросу следует предложить задачи для самостоятельного решения и вопросы для самостоятельного изучения с использованием материалов, размещенных на сервере. На практических занятиях используются следующие методы обучения и контроля усвоения материала: 1) выполнение заданий по теме занятия сопровождается контрольным опросом; 2) обсуждение различных вариантов решения, предложенных студентами, сравнение решений, анализ возможных ситуаций. Рекомендуется использовать «защиту» выполненных домашних и контрольных заданий, проведение защит в форме деловой игры. Методические указания студентам Для решения практических задач и выполнения домашних заданий, для подготовки к контрольным работам рекомендуется использовать следующие основные источники: 1. Методические материалы по курсу (тексты лекций, презентации), размещенные на сервере НИУ ВШЭ – Пермь. 2. Залогова Л.А. Разработка Паскаль-компилятора. М.: БИНОМ. Лаборатория базовых знаний, 2007. 3. Королев Л.Н., Миков А.И. Информатика. Введение в компьютерные науки. М.: Высшая школа, 2003. 4. Лядова Л.Н. Архитектура современных вычислительных систем: Учебное пособие [Электронный ресурс]. Пермь.: Перм. ун т, 2006. 5. Плаксин М.А. Тестирование и отладка программ – для профессионалов будущих и настоящих. М.: БИНОМ. Лаборатория базовых знаний, 2007. При разработке программ на языке Pascal рекомендуется использовать справочную систему системы программирования, примеры и рекомендации по решению задач, приведенные в электронных пособиях по курсу, указанных в списке дополнительной литературы. Студенту рекомендуется следующая схема подготовки к практическому занятию: 1) проработать конспект лекций; 2) проанализировать основную и дополнительную литературу, рекомендованную по изучаемому разделу; 3) при необходимости найти дополнительную информацию в Internet, на сайтах электронных библиотек; 4) проанализировать варианты решений, предложенные преподавателем, найденные в дополнительных источниках; 5) при затруднениях сформулировать вопросы к преподавателю. Студенту рекомендуется следующая схема подготовки к лекции: 1) проработать конспект лекций; 2) изучить материал, предложенный для самостоятельного изучения; 3) выполнить предложенные преподавателем задания; 4) при затруднениях задать вопросы к преподавателю при проведении индивидуальных консультаций. Рекомендуется при выполнении домашних заданий и подготовке к контрольным работам рассмотреть возможность защиты предложенных решений, подготовить документацию и «презентацию» работы. 17 "Государственный университет Высшая школа экономики" Программа учебной дисциплины Теоретические основы информатики 080500.62 Бизнес-информатика подготовки бакалавра Для самостоятельного изучения и подготовки к лекциям предлагается использовать электронные ресурсы, размещаемые на сервере НИУ ВШЭ – Пермь. 9. Оценочные средства для текущего контроля и аттестации студента 9.1. Тематика заданий текущего контроля Тематика контрольных работ: При выполнении контрольной работы проверяются знания, полученные по темам: Кодирование и представление данных. Формальные языки и грамматики. Распределенные и параллельные вычисления: взаимное исключение и тупики. Тематика домашних заданий: Тема первого домашнего задания – синтаксический анализ и интерпретация выражения. Требования к выполнению приведены в Приложении 3. Тема второго домашнего задания – индексация и поиск данных. Требования к выполнению приведены в Приложении 4. Примерный перечень заданий, выполняемых на практических занятиях: перевод данных из одной системы счисления в другую; представление числовых данных в памяти компьютера в различных форматах; синтаксический разбор конструкций формальных языков; интерпретация выражений; проблема взаимного исключения; проблема тупика. Полученные оценки учитываются при определении оценки за работу на семинарах. План практических занятий приведён в Приложении 1. 9.2. Вопросы для оценки качества освоения дисциплины Вопросы приведены в Приложении 2. 9.3. Примеры заданий итогового контроля Примерные задания приведены в Приложении 1 (по каждой теме практических занятий приведены задания для самостоятельного выполнения). 10. Порядок формирования оценок по дисциплине В ПФ ГУ-ВШЭ принята следующая система весов: 20% результирующей оценки – оценка за работу на семинарских занятиях; 40% результирующей оценки – взвешенная сумма оценок за контрольные мероприятия; 40% результирующей оценки – оценка за итоговый (или промежуточный контроль). Таким образом, 60% результирующей оценки – это накопительная оценка и 40% – это оценка за итоговый (или промежуточный контроль). Результирующая оценка рассчитывается с помощью взвешенной суммы накопительной оценки и оценки за экзамен (или зачет). Накопительная оценка рассчитывается с помощью взвешенной суммы оценок за отдельные формы текущего контроля. К формам текущего контроля относятся контрольные мероприятия (контрольные работы, эссе, коллоквиумы и пр.), которые определены учебным планом. Формулы расчета оценок: О текущая = n1∙Од/з1 + n2∙Ок/р + n3∙Од/з2 где Оi – оценки за контрольные мероприятия (эссе, контрольная работа, реферат и пр.) 18 "Государственный университет Высшая школа экономики" Программа учебной дисциплины Теоретические основы информатики 080500.62 Бизнес-информатика подготовки бакалавра ni – вес контрольных мероприятий (определяются преподавателем и ∑ni=1 или 100%), при этом веса по контрольным мероприятиям: n1 = 32,5% - домашнее задание, n2 = 37,5% - контрольная работа, n3 = 37,5% - домашнее задание. О накопительная = k1∙Отекущая + k2∙Оаудиторная где ki – вес текущей и аудиторной оценки, при этом k1=2/3, k2=1/3 О результирующая = q1∙Онакопительная + q2∙Оитог.контроль где qi – вес накопительной оценки и оценки за итоговый контроль, при этом q1=0,6, q2=0,4. 11. Учебно-методическое и информационное обеспечение дисциплины 11.1. Базовый учебник 1. Лядова Л.Н. Конспект лекций по курсу «Теоретические основы информатики»: Электронный ресурс. 2010. 11.2. Основная литература 2. Лядова Л.Н. Основы информатики и информационных технологий : учеб. пособие / Л.Н. Лядова, Б.И. Мызникова, Н.В. Фролова. Пермь : Изд-во Перм. ун-та , 2004. – 310 с. 3. Окулов С.М. Программирование в алгоритмах: учеб. пособие. М.: БИНОМ. Лаборатория знаний , 2007. – 383 с. 4. Павловская Т.А. Паскаль. Программирование на языке высокого уровня: учебник. СПб. : ПИТЕР, 2010. – 460 с. 5. Плаксин М.А. Тестирование и отладка программ – для профессионалов будущих и настоящих. М.: БИНОМ. Лаборатория базовых знаний, 2007. 11.3. Дополнительная литература 6. Андреева Т.А. Программирование на языке Pascal: Учебное пособие. М.: 2006.234 с. [Электронный ресурс]. 7. Борисенко В.В. Основы программирования: Учебное пособие. М.: Интернетуниверситет информационных технологий; МГУ им. М. В. Ломоносова, 2005.328 с. [Электронный ресурс]. 8. Залогова Л.А. Разработка Паскаль-компилятора. М.: БИНОМ. Лаборатория базовых знаний, 2007. 9. Костюкова Н.И. Графы и их применение. Комбинаторные алгоритмы для программистов : учеб. пособие. М.: Интернет-Университет Информационных Технологий; М. : БИНОМ. Лаборатория знаний , 2010. – 311 с. 10. Конспект лекций по курсу «Информатика и программирование». М.: ГУ-ВШЭ [Электронный ресурс] 11. Основы алгоритмизации и программирования. [Электронный ресурс] 11.4. Справочники, словари, энциклопедии Интерактивная справочная система Pascal ABC. 11.5. Программные средства Для успешного освоения дисциплины, студент использует следующие программные средства: Средства разработки, тестирования, отладки программ, написанных на языке Pascal (Pascal ABC, Free Pascal). Система контроля стиля программирования Style Checker. Система тестирования программ и проведения олимпиад по программированию. Интегрированный пакет Microsoft Office (MS Word и Excel) для оформления тестов и тестирования программ, а также отчетов по выполненным заданиям. 19 "Государственный университет Высшая школа экономики" Программа учебной дисциплины Теоретические основы информатики 080500.62 Бизнес-информатика подготовки бакалавра Средства, обеспечивающие возможность доступа к материалам для подготовки к занятиям в различных форматах (документы MS Word, документы в формате HTML, презентации MS Power Point), размещенные на сервере, доступные в Internet. 11.6. Дистанционная поддержка дисциплины Дистанционная поддержка (средства проверки программ) используется для выполнения домашних заданий. Программное обеспечение устанавливается на сервере. Программа дисциплины, материалы по дисциплине, предназначенные для самостоятельного изучения, презентации по темам лекций, тесты и домашние задания размещены в LMS. Контрольные материалы, тесты, используются как для проведения итогового, так и текущего контроля. 12. Материально-техническое обеспечение дисциплины Для проведения лекционных занятий используется компьютер с установленным программным обеспечением для демонстрации презентаций и проектор. Практические занятия проводятся в компьютерных классах с установленным программным обеспечением, перечисленным выше. 20 "Государственный университет Высшая школа экономики" Программа учебной дисциплины Теоретические основы информатики 080500.62 Бизнес-информатика подготовки бакалавра Приложение 1 План практических занятий Раздел 1. КОДИРОВАНИЕ ИНФОРМАЦИИ И ПРЕДСТАВЛЕНИЕ ДАННЫХ В ПАМЯТИ КОМПЬЮТЕРА (30 часов) Тема 1. Понятие типа данных и стандартные типы данных Понятие типа данных, стандартные типы данных и их аппаратная поддержка. Двоичная система – основа представления данных в памяти компьютера. Алгоритмы перевода. Представление целых чисел в форме с фиксированной точкой, знаковые и беззнаковые числа. Представление вещественных чисел. Типы данных, поддерживаемые процессорами Intel: числа (целые со знаком и без знака, двоично-десятичные и вещественные), строки, битовые цепочки, указатели: форматы, представление в памяти. Лекции: 2 часа. Практические занятия: 4 часа. Самостоятельная работа: 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. Конструирование типов, рекурсивные типы данных Понятие конструктора типов. Конструирование массивов, записей. Рекурсивные типы: линейные списки, деревья. Динамическое распределение памяти и конструирование типов. Операции над рекурсивными данными. Лекции: 4 часа. Практические занятия: 4 часа. Самостоятельная работа: 8 часов. Задания: 1. Сконструируйте типы данных для решения следующих задач: a. Организации очередей с различными дисциплинами. b. Организации бинарного поиска данных по уникальным ключам. c. Организации бинарного поиска данных по ключам, значения которых могут повторяться. d. Решения задачи поиска кратчайшего пути (размерность задачи заранее неизвестна). e. Решения задачи построения остовного дерева (размерность задачи заранее неизвестна). f. Решения задачи коммивояжера (размерность задачи заранее неизвестна). Разработайте процедуры выполнения операций над соответствующими структурами данных. Раздел 2. ФОРМАЛЬНЫЕ ЯЗЫКИ И ОСНОВЫ ТРАНСЛЯЦИИ (90 часов) Тема 4. Понятие формальной грамматики Определение формальной грамматики. Описание формального языка с помощью грамматики. Классификация формальных грамматик по Хомскому. Лекции: 2 часа. Практические занятия: 2 часа. Самостоятельная работа: 4 часа. Задания: 1. Опишите грамматики: a. Целых чисел без знака. b. Целых чисел со знаком. c. Вещественных чисел со знаком. К каким классам они относятся? Тема 5. Описание формального языка с помощью диаграмм Описание синтаксиса языка с помощью диаграмм. Основные элементы диаграмм Вирта. Описание конструкций языка Pascal: примеры. Лекции: 2 часа. Практические занятия: 4 часа. Самостоятельная работа: 4 часа. 1. Опишите с помощью диаграмм грамматики: a. Целых чисел без знака. b. Целых чисел со знаком. c. Вещественных чисел со знаком. d. Выражений в языке Pascal. Тема 6. Описание формального языка с помощью металингвистических формул Описание грамматики с помощью металингвистических формул (БНФ), понятие метаязыка. Примеры. Лекции: 2 часа. Практические занятия: 4 часа. 22 "Государственный университет Высшая школа экономики" Программа учебной дисциплины Теоретические основы информатики 080500.62 Бизнес-информатика подготовки бакалавра Самостоятельная работа: 4 часа. 1. Опишите с помощью металингвистических формул грамматики: a. Целых чисел без знака. b. Целых чисел со знаком. c. Вещественных чисел со знаком. d. Выражений в языке Pascal. Тема 7. Процедуры синтаксического разбора Описание грамматики выражений. Алгоритмы синтаксического разбора и схема реализации. Структуры данных, используемые в процессе разбора (таблицы идентификаторов, деревья и пр.) Лекции: 2 часа. Практические занятия: 4 часа. Самостоятельная работа: 16 часов. 1. Разработайте процедуры синтаксического разбора правил грамматики для заданных строк: a. Целых чисел без знака. b. Целых чисел со знаком. c. Вещественных чисел со знаком. d. Выражений в языке Pascal. Тема 8. Синтаксический разбор и вывод Алгоритмы разбора и вывод конструкция языка. Примеры построения дерева разбора. Лекции: 2 часа. Практические занятия: 4 часа. Самостоятельная работа: 6 часов. 1. Проверьте, выводимы ли заданные строки для построенных грамматик: a. Целых чисел без знака. b. Целых чисел со знаком. c. Вещественных чисел со знаком. d. Выражений в языке Pascal. Тема 9. Интерпретация выражений Интерпретация и компиляция, сравнение. Процедуры интерпретации, алгоритмы и структуры данных: деревья, обратная польская запись (ОПЗ). Лекции: 2 часа. Практические занятия: 4 часа. Самостоятельная работа: 16 часов. 1. Постройте ОПЗ для заданных выражений: a. (1+5)*(3-10)+5*7. b. ((1)). Раздел 3. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ РАЗРАБОТКИ ПАРАЛЛЕЛЬНЫХ И РАСПРЕДЕЛЕННЫХ СИСТЕМ (56 часов) Тема 13. Проблема взаимного исключения Проблема взаимного исключения. Понятие критической секции, свойства, условие реализации. Методы решения. Семафорная техника взаимного исключения. Реализация средствами ОС и систем программирования, СУБД. Лекции: 2 часа. Практические занятия: 6 часов. Самостоятельная работа: 12 часов. 23 "Государственный университет Высшая школа экономики" Программа учебной дисциплины Теоретические основы информатики 080500.62 Бизнес-информатика подготовки бакалавра Проблема взаимного исключения: программные методы решения Решите следующие задачи: 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) ; start(P2) end INIT . Первый процесс process P1; common boolean C1,C2 ; common integer N ; begin while true do begin BEFORE1 ; C1 := true ; while C2 do 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 . Написать алгоритм Деккера для N процессов. 24 Второй процесс process P2; common boolean C1,C2 ; common integer N ; begin while true do begin BEFORE2 ; C2 := true ; while C1 do 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 . "Государственный университет Высшая школа экономики" Программа учебной дисциплины Теоретические основы информатики 080500.62 Бизнес-информатика подготовки бакалавра 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, которые моделируют работу семафорных примитивов для общего семафора в соответствии с поставленной задачей. Решена ли задача? Найти в приведенном ниже псевдокоде ошибки, объяснить и исправить их, если они есть. 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; 25 "Государственный университет Высшая школа экономики" Программа учебной дисциплины Теоретические основы информатики 080500.62 Бизнес-информатика подготовки бакалавра 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; 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; 26 "Государственный университет Высшая школа экономики" Программа учебной дисциплины Теоретические основы информатики 080500.62 Бизнес-информатика подготовки бакалавра 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; 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. Проблема тупика и её решение Проблема тупика. Математические модели, лежащие в основе решения. Задачи предотвращения, распознавания, обхода тупиков, вывод системы из тупика. Решение задач для систем с разными типами ресурсов. Лекции: 2 часа. Практические занятия: 4 часа. Самостоятельная работа: 12 часов. Проблема взаимного исключения: программные методы решения Решите следующие задачи: 3. Задача “обедающие философы” формулируется следующим образом: “Пять философов садятся обедать за круглый стол, в центре которого стоит одно блюдо со спагетти. На столе имеется пять тарелок и пять вилок между ними. Философ может начать есть, если у него есть тарелка и две вилки, которые он может взять с двух сторон от своей тарелки. Философ может отдать одну вилку ближайшему соседу только после того, как он 27 "Государственный университет Высшая школа экономики" Программа учебной дисциплины Теоретические основы информатики 080500.62 Бизнес-информатика подготовки бакалавра положит в свою тарелку спагетти, а вторую – после того, как закончит обед”. О соображениях гигиены мы здесь умалчиваем. Может ли описанный ниже на псевдокоде процесс представить алгоритм поведения философа за столом? 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; 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) ; ... Процесс 2 process P2 ; begin ... While true do begin … request ( R2, 1) ; ... 28 "Государственный университет Высшая школа экономики" Программа учебной дисциплины Теоретические основы информатики 080500.62 Бизнес-информатика подготовки бакалавра request ( R2, 1) ; ... release ( R2, 1) ; ... release ( R1, 1) ; ... request ( R1, 1) ; ... release ( R2, 1) ; ... release ( R1, 1) ; ... end ... end. end ... end. Построить граф состояний системы. Возможны ли в системе тупиковые состояния? Обоснуйте ответ. 1. Пусть в системе есть два процесса P1 и P2 и два потребляемых ресурса R1 и R2, используемых этими процессами. Ресурс R1 производится процессом P1, а R2 – P2. Процессы имеют следующее описание: Процесс 1 process P1 ; begin ... While true do begin … request ( R2, 1) ; ... release ( R1, 1) ; ... end ... end. Процесс 2 process P2 ; begin ... While true do begin … request ( R1, 1) ; ... release ( R2, 1) ; ... end ... end. Построить граф состояний системы. Возможны ли в системе тупиковые состояния? Обоснуйте ответ (проанализируйте ситуации для различных начальных состояний системы). Раздел 4. ХРАНЕНИЕ И ПОИСК ДАННЫХ (40 часов) Тема 15. Понятие модели данных Типы данных и модели данных. Определение модели данных, примеры. Реализация моделей данных. Лекции: 2 часа. Практические занятия: 2 часа. Самостоятельная работа: 4 часа. Задачи: Рассмотрите алгоритмы выполнения операций над данными, для представления которых используются различные модели (инвертированные списки, деревья, сети). Тема 16. Представление данных во внешней памяти Файлы и представление данных с использованием различных моделей. Понятие метаданных. Операции над файлами и задачи поиска и обработки данных. Лекции: 2 часа. Практические занятия: 4 часа. Самостоятельная работа: 4 часа. 29 "Государственный университет Высшая школа экономики" Программа учебной дисциплины Теоретические основы информатики 080500.62 Бизнес-информатика подготовки бакалавра Задачи: Сконструируйте типы данных для представления метаданных, которые можно использовать для генерации пользовательского интерфейса приложения, предназначенного для работы с файлами записей. Тема 17. Индексация данных и поиск Проблема поиска данных. Индексация. Понятие В-дерева. Операции над В-деревьями. Индексация с помощью В-деревьев. Внешние сортировки и индексация данных. Лекции: 2 часа. Практические занятия: 6 часов. Самостоятельная работа: 14 часов. Задачи: Сконструируйте типы данных для представления уникального индекса; индекса, в котором допускаются повторения ключей. Опишите алгоритмы выполнения операций над данными в файле с соответствующей организацией индекса. 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