- •Вопрос 2. Спецификация, представление, реализация абстрактных типов данных.
- •Вопрос 3. Многомашинные вс. Реализация на основе ес эвм. Кластерные вс.
- •Типы кластеров:
- •Вопрос 2. Линейные структуры данных: стек, очередь, дек
- •Вопрос 3. Сравнительный анализ и основные компоненты инструментальных среды разработки пользовательских интерфейсов. Классификация элементов пользовательского интерфейса
- •Вопрос 1. Конкретные реализации языков функционального программирования: язык программирования Лисп, основные объекты, примитивы, списки, правила составления программ.
- •Вопрос 2. Семантическая теория программ. Вычислимость и разрешимость
- •Вопрос 3. Формальные методы описания диалоговых систем. Законы Фитса и Хика.
- •Вопрос 1. Основные конструкции логической программы: факты, правила, запросы, логические переменные. Операционная и декларативная семантика логических программ.
- •1. 5. Декларативный и процедурный смысл программ
- •Вопрос 2. Интерфейсы. Способы согласования аппаратных структур. Организация асинхронных интерфейсов
- •Элементы процесса как поведенческой категории :
- •Дескриптивный асинхронный процесс (dp)
- •Асинхронный процесс (ap)
- •Инициаторы
- •Вопрос 3. Эргономика пользовательского интерфейса. Критерии эргономичности интерфейса. Человеческие ошибки. Методы предотвращения ошибок. Снижение чувствительности системы к ошибкам.
- •Типы ошибок
- •Методы предотвращения ошибок
- •Как избежать сообщений об ошибках
- •Вопрос 1. Интерпретация и корректность логических программ. Абстрактный интерпретатор, значение логической программы, вычислительная модель
- •Вопрос 2. Порядковые статистики (Гулаков сказал что его не будет)
- •Субъективная удовлетворенность
- •Типичные интерфейсные ошибки отечественного по
- •Программа перегружена элементами управления
- •Терминология не адекватна знаниям пользователя о системе
- •От пользователя постоянно требуется дополнительная информация
- •Вопрос 1. Программирование баз данных. Динамическая база данных. Добавление и удаление фактов в процессе работы программы.
- •Вопрос 2. Поиск и кодирование (сжатие) данных, кодовые деревья, оптимальные префиксные коды
- •Вопрос 1. Рекурсивное программирование на логическом языке. Рекурсивные структуры данных – списки. Объявление списков. Составные списки. Голова и хвост списка. Примеры работы со списками.
- •Вопрос 2. Бинарный поиск, хеширование
- •Вопрос 3. Тестирование и отладка программного обеспечения. Структурное и функциональное тестирование. Особенности тестирования объектно-ориентированного по. Автоматизация процесса тестирования.
- •Вопрос1. Вычислительная модель программы на логическом языке. Согласование целевых утверждений. Сопоставление и унификация. Детерминизм.
- •Вопрос 2. Понятие выполнения сети. Свойства сети (устойчивость, безопасность, консервативность).
- •Вопрос 3. Автоматизация проектирования программного обеспечения на базе case-технологий. Принципы построения и т.Д.
- •Вопрос 1. Множественные выражения Программирование второго порядка Недетерминированное программирование
- •Вопрос 2. Нелинейные структуры данных: иерархические списки, деревья и леса, бинарные деревья
- •Вопрос 1. Вне логические предикаты. Ввод-вывод. Доступ к программам и обработка программ. Металогические предикаты. Сравнение не основных термов.
- •Вопрос 2. Алгоритмы сортировки
- •Сортировка разделением (Quicksort)
- •Вопрос 1. Constraint–Пролог: операционная семантика обобщение механизма унификации, понятие constraint'а. Операционная модель Constraint-пролоГа.
- •Вопрос 2. Нелинейные структуры: обходы деревьев
- •Вопрос 3. Качество по. Критерии качества: сложность, корректность, надежность, трудоемкость. Методика оценки качества по. Метрические особенности объектно-ориентированных пс. Сертификация по
- •Вопрос 1. Cancelled мистером г.
- •Вопрос 2. Стандартные схемы программ. Методы формальной спецификации и верификации.
- •Вопрос 1. Использование деревьев в задачах поиска: бинарные деревья поиска, случайные, оптимальные, сбалансированные по высоте и рандомизированные деревья поиска
- •. Деревья цифрового поиска
- •Вопрос 2. Определение асинхронного процесса как описания модели вычислительного процесса. Глобальные свойства – асинхронность, недетерминированность, параллельность.
- •1. Задачи сортировки; внутренняя и внешняя сортировка
- •2. Подклассы асинхронного процесса. Эффективный асинхронный процесс
- •Длительность реакции системы
- •Субъективное восприятие скорости работы
- •Приемы для уменьшения субъективного восприятия
- •1. Оптимальная сортировка.
- •2. Конвейерный процесс. Автономный процесс. Асинхронный процесс как метамодель.
- •Непосредственное манипулирование
- •Потеря фокуса внимания (прерывание)
- •Ограничение принятия решений
- •1. Анализ сложности и эффективности алгоритмов поиска и сортировки.
- •2. Классификация сетей (ординарные, автоматные, маркированный граф).
- •Понятность системы
- •Ментальная модель
- •Метафора
- •Аффорданс
- •Стандарт
- •1. Файлы: организация и обработка, представление деревьями: b-деревья.
- •2. Сетевое представление параллельных процессов. Области применения сетей Петри
- •3. Основы теории формальных языков и грамматик. Основные понятия и определения. Операции над языками. Классификация формальных языков и грамматик по порождающей способности
- •1. Алгоритмы на графах: представления графов, схемы поиска в глубину и ширину, минимальное остовное дерево, кратчайшие пути.
- •2.1.Поиск в глубину
- •2.2 Поиск в ширину.
- •2. Протоколы взаимодействия объектов вычислительных структур. Понятие протокола.
- •3. Вывод контекстно-свободных (кс) – грамматик и правила построения дерева вывода. Синтаксический разбор. Способы задания схем грамматик. Форма Бэкуса-Наура.
- •1. Теория сложности алгоритмов: np-сложные и труднорешаемые задачи.
- •2. Недетерминированные конечные автоматы. Конечные преобразователи и переводы. Преобразование некоторых грамматик к автоматному виду.
- •3. Объектно-ориентированное проектирование. Принципы проектирования. Схемы, диаграммы, инструменты.
- •1. Детерминированные конечные автоматы. Эквивалентные состояния и автоматы.
- •2. Синтаксический анализ. Метод оперативного предшествования. Восходящие и нисходящие методы синтаксического анализа.
- •2. Жизненный цикл программного обеспечения. Структура жизненного цикла согласно международного стандарта.
- •1. Нисходящие распознаватели. Ll(k) – грамматики. Построение детерминированного нисходящего распознавателя.
- •2. Параллельная обработка как основа высокопроизводительных вычислений. Уровни организации параллелизма: уровень заданий, программ и команд. Системы (языки) параллельного программирования.
- •1. Восходящие распознаватели. Lr(k) грамматики. Построение грамматики.
- •2. Понятие архитектуры вычислительной системы (вс). Архитектура как набор компонент и как система уровневых интерфейсов. Основные аппаратные и программные элементы вс.
- •1.1. Архитектура как набор взаимодействующих компонент
- •1.2. Архитектура как интерфейс между уровнями физической системы
- •1. Магазинные преобразователи. Определение магазинного преобразователя. Перевод, определяемый преобразователем.
- •2. Архитектура системы команд. Микропроцессоры (мп) с полным (cisc) и сокращённых (risc) набором команд. Основные принципы risc- архитектуры. Организация risc мп Alpha 21x64 фирмы dec.
- •Особенности архитектуры Alpha компании dec
- •1. Описание перевода или трансляции. Синтаксически-управляемые (су) – схемы.
- •2. Основные идеи объектно-ориентированных языков программирования. Создание абстрактных типов данных. Инкапсуляция. Полиморфизм. Наследование.
- •3. Развитие архитектур современных мп. Конвейеризация и динамическое выполнение потока команд. Суперскалярность. Архитектура epic мп Intel itanium.
- •1. Транслирующие грамматики. Построение транслирующей грамматики по су-схеме. Атрибутные транслирующие грамматики.
- •3. Векторные и векторно-конвейерные вс. Структура векторного процессора. Матричные вс.
- •1. Трансляторы, интерпретаторы и компиляторы. Стадии работы компиляторы. Лексический анализ.
- •3. Системы массовой параллельной обработки (мрр). Супер эвм фирмы sgi - Cray t3e(t3d) -1200.
- •2. Классификация и типы вс. Многомашинные и многопроцессорные вс. Представление вс на основе распределения потоков команд и данных (классификация Флинна)
2. Классификация и типы вс. Многомашинные и многопроцессорные вс. Представление вс на основе распределения потоков команд и данных (классификация Флинна)
ВС классифицируются по следующим признакам:
по целевому назначению и выполняемым функциям;
по типам и числу ЭВМ или процессоров;
по архитектуре системы;
режимам работы;
методам управления элементами системы;
степени разобщенности элементов вычислительной системы .
По назначению вычислительные системы делят на:
универсальные;
специализированные.
По типу вычислительные системы различаются на:
многомашинные;
многопроцессорные.
По типу ЭВМ или процессоров, используемых для построения ВС, различают однородные и неоднородные системы.По степени территориальной разобщенности вычислительных модулей ВС делятся на системы совмещенного (сосредоточенного) и распределенного (разобщенного) типов. Под методом управления элементами ВС различают централизованные, децентрализованные и со смешанным управлением. По режиму работы ВС различают системы, работающие в оперативном и неоперативном временных режимах.
Многомашинные вычислительны системы (ММС) обеспечивают: повышения производительности, надежности и достоверности вычислений.
Многопроцессорные вычислительные системы (МПС) строятся при комплексировании нескольких процессоров. Общая оперативная память (ООП) в МПС используется в качестве общего ресурса. По сравнению с ММС здесь достигается наивысшая оперативность взаимодействия вычислителей - процессоров.
При большом количестве комплексируемых процессоров возможно возникновение конфликтных ситуаций, когда несколько процессоров обращаются с операциями типа "чтение" и "запись" к одним и тем же областям памяти.
Проблема коммутации абонентов и доступа их к ООП, т,к, помимо процессоров к ООП подключаются все каналы (процессоры ввода-вывода), средства измерения времени и т.д.
В 1966 г. М.Флинном (Flynn) был предложен чрезвычайно удобный подход к классификации архитектур вычислительных систем. В его основу было положено понятие потока, под которым понимается последовательность элементов, команд или данных, обрабатываемая процессором. Соответствующая система классификации основана на рассмотрении числа потоков инструкций и потоков данных и описывает четыре архитектурных класса:
SISD (single instruction stream / single data stream) – одиночный поток команд и одиночный поток данных. К этому классу относятся последовательные компьютерные системы, которые имеют один центральный процессор, способный обрабатывать только один поток последовательно исполняемых инструкций.
MISD (multiple instruction stream / single data stream) – множественный поток команд и одиночный поток данных. Теоретически в этом типе машин множество инструкций должно выполняться над единственным потоком данных. До сих пор ни одной реальной машины, попадающей в данный класс, создано не было.
SIMD (single instruction stream / multiple data stream) – одиночный поток команд и множественный поток данных. Эти системы обычно имеют большое количество процессоров, от 1024 до 16384, которые могут выполнять одну и ту же инструкцию относительно разных данных в жесткой конфигурации. Единственная инструкция параллельно выполняется над многими элементами данных.
MIMD (multiple instruction stream / multiple data stream) – множественный поток команд и множественный поток данных. Эти машины параллельно выполняют несколько потоков инструкций над различными потоками данных. В отличие от упомянутых выше многопроцессорных SISD-машин, команды и данные связаны, потому что они представляют различные части одной и той же задачи.
3. Понятие человеко-машинного взаимодействия. Информационное взаимодействие между пользователем и компьютером. Пользовательский интерфейс. Виды интерфейсов и взаимодействий. Поколения интерфейсов.
HCI (Human Computer Interface - человеко-машинное взаимодействие) изучает взаимодействие и связи человека и компьютера. HCI представляет собой большую область, чем стандартное понятие пользовательского интерфейса. Это область, охватывающая несколько смежных областей.
Человеко-машинное сотрудничество может быть рассмотрено с двух разных точек зрения. Первый подход - подражательный, когда для лучшего человеко-машинного сотрудничества пытаются создать компьютеры с возможностями человека. Второй подход - подход взаимного дополнения - основан на том, что компьютер - это не человек, и для более эффективного сотрудничества следует использовать возможности и преимущества каждого из них.
Интерфейс - система правил и средств, регламентирующая и обеспечивающая взаимодействие нескольких процессов или объектов.
Пользовательский интерфейс (ПИ) - система правил и средств, регламентирующая и обеспечивающая взаимодействие программы с пользователем.
Далее под программой, программным обеспечением или программным продуктом будет также подразумеваться и Интернет-сайт.
Пользователь воспринимает через ПИ всю программу в целом, а значит, такое понимание ПИ является слишком узким. В действительности ПИ объединяет в себе все элементы и компоненты программы, которые способны оказывать влияние на взаимодействие пользователя с программным обеспечением (ПО). Это не только экран, который видит пользователь. К этим элементам относятся:
набор задач пользователя, которые он решает при помощи системы;
используемая системой метафора (например, рабочий стол в MS Windows);
элементы управления системой;
навигация между блоками системы;
и т.д.
В первый период (50-е и начало 60-х гг.) компьютеры, как известно, работали в основном в пакетном режиме, используя перфокарты для ввода и устройство построчной печати для вывода
Во втором периоде в эволюции интерфейсов (с начала 60-х до начала 80-х гг.) господствовал режим разделения времени на мэйнфреймах и мини-компьютерах с использованием механических или "стеклянных" телетайпов (алфавитно-числовые дисплеи), когда пользователи могли взаимодействовать с компьютером путем ввода с клавиатуры команд с параметрами.
Третье поколение пользовательских интерфейсов взяло старт еще в 70-е г. - при режиме разделения времени и ручного ввода команд. В научно-исследовательском центре Xerox PARC были созданы графические интерфейсы пользователя (GUI), предназначенные для работы на растровых графических сетевых рабочих станциях. Эти интерфейсы принято обозначать аббревиатурой WIMP (Windows-Icons-Menus-Pointing device), что отражает задействованные интерактивные сущности - окна, пиктограммы, меню и позиционирующее устройство (обычно мышь
Четвертое поколение, которое я называю post-WIMP-интерфейсы. Они не используют меню, формы (forms) и панели инструментов; вместо них при задании спецификаций операций и операндов упор идет на обучающие примеры (examples), жесты и распознавание речи.
Почти все графические интерфейсы пользователя в настоящее время принадлежат к одному из двух типов:
Имплементационные интерфейсы (сделали, как получилось). Характерными примерами таких интерфейсов являются интерфейсы самодельных систем автоматизации: появление новых и изменение существующих функций без перепроектирования системы всегда пагубно влияет на интерфейс. Такие интерфейсы характерны обилием элементов управления, полным равнодушием ко введенным ранее данным (пользователь обязан вводить значение, даже если система может сама его безболезненно вычислить), низкой структурированностью.
Объектные интерфейсы. В системе реализованы некоторые объекты, пользователь оперирует ими и тем самым достигает необходимого ему результата. Как правило, такие интерфейсы характерны небольшим количеством элементов управления (значимая информация вычисляется системой не только из самих объектов, но также из их взаимосвязи) и (характерная черта) высокой структурированностью.
Объектные интерфейсы практически всегда гораздо лучше интерфейсов имплементационных (собственно говоря, объектные интерфейсы – это следующая, после имплементационных интерфейсов, ступень эволюции). Поспорить с этим невозможно, но открытым остается вопрос – что лучше объектных интерфейсов? Какова следующая эволюционная ступень?
Это, вероятно, деятельностно-ориентированные интерфейсы (ДоИ, обратите внимание, что это наш, относительно условный термин). В отличии от объектных интерфейсов, в которых пользователю предоставляются объекты и свобода манипулирования ими, в ДоИ «строительными блоками» являются задачи пользователя. В качестве примера можно привести диалоговое окно создания нового документа в MS Word: создать можно не просто обобщенный документ, одинаково плохо решающий все задачи, но документ для текущей задачи пользователя (например, письмо).
Перед тем, как перечислять преимущества этого вида интерфейсов, нужно определить, чем несовершенны интерфейсы объектные. Недостатки их таковы:
Такие интерфейсы требуют от пользователя существенных когнитивных нагрузок и способности к абстрактному мышлению: пользователю необходимо транслировать цель своих действий в конкретный алгоритм использования объектов. Это требует определенных усилий, так что при прочих равных от этой работы пользователей следует освободить.
Объектные интерфейсы зачастую требуют от пользователя серьезных усилий по отвлечению от собственной предметной области и привлечения внимания к вопросу «компьютерной поддержки» своей деятельности: репрезентируемые объекты, будучи универсальными, не полностью соответствуют предметной области конкретного пользователя. Например, разные интерфейсы почтового клиента нужны пользователю, который получает 5 писем в день и пользователю, который получает 70 писем, хотя в обоих случаях объекты (письма) одни и те же.
Во многих случаях «объектность» интерфейса подталкивает его разработчика к совершению некорректных действий: в поиске объектов деятельности разработчики чаще всего ограничиваются правами доступа. Смена парадигмы может форсировать разработчиков более тщательно подходить к проектированию функциональности и интерфейса (хотя и новая парадигма, вероятно, тоже будет подталкивать разработчиков к совершению некорректных действий).
Деятельностно-ориентированные интерфейсы этих недостатков, как правило, лишены, благодаря чему они оказываются более эффективными, чем объектные интерфейсы.
Частным, вырожденным, примером деятельностно-ориентированного интерфейса являются мастера (Wizards). Вместо того, чтобы показывать пользователю единое диалоговое окно со сложной конфигурацией элементов управления, пользователю выдается сравнительно простая последовательность экранов. В идеальном случае, когда каждый последующий экран зависит от действий пользователя на предыдущем экране, мастер оказывается чрезвычайно эффективным. В неидеальном случае, когда его экраны не связаны между собой, он всё равно оказывается более эффективным (незначительное снижение скорости работы компенсируется низкими когнитивными нагрузками пользователя и другими факторами).
Но мастера это только начало пути: деятельностно-ориентированного в них не так уж и много. В будущем интерфейсы, идя по пути большей ориентированности на задачи и деятельность пользователей, достигнут ещё большей эффективности, при этом:
Разделение между интерфейсами, предназначенными для профессионалов и непрофессионалов, будет увеличиваться (как это уже произошло во всех других областях техники). Программы будут становиться все более и более специализированными: не просто текстовый редактор, а текстовый редактор для сугубо определенной группы пользователей, решающих определенные задачи. Адаптивность интерфейсов будет увеличиваться: они будут все больше и больше учитывать характерные особенности работы конкретных пользователей.
Количество технических подробностей (файлы, папки, порты и т.п.) в большинстве интерфейсов будет резко сокращено, поскольку эти объекты не связаны напрямую с деятельностью пользователей.
