Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемТимофей Трапезников
1 Центр информатизации образования
2 Задача Освещение города
3 Задача размещения базовых станций (3D оптимизация) Проект проводился нашими выпускниками в компании Motorola. Цели: При данном числе станций, заданном рельефе и т.д., определить максимальное возможное покрытие. Минимизация числа станций при заданном покрытии. В результате были разработаны инструменты.
5 Сайт: Дистанционный Конкурс-игра «КИО» (Конструируй, Исследуй, Оптимизируй) Каждый год, конец февраля – начало марта Задания двух уровней: – I уровень до 7 класса включительно, – II уровень 8–11 классы, студенты колледжей, техникумов и младших курсов университетов. 3 задачи, для решения которых нужно проявить изобретательность и смекалку. Для работы с задачами выдаётся специальное программное обеспечение. Каждая задача допускает много разных решений, а участники сравниваются по тому, насколько их решение оптимальнее решений других участников.
7 Разнообразие языков программирования Уже создано > 8500 языков программирования и каждый год появляются новые. Некоторыми языками умеет пользоваться только небольшое число их собственных разработчиков, другие становятся известны миллионам людей. Профессиональные программисты иногда применяют в своей работе более десятка разнообразных языков программирования.
8 Парадигмы программирования Архитектура машины, ассемблер Формула-ориентированные (FORTRAN) Процедурное, структурное программирование Объектно-ориентированное программирование Языково-ориентированное программирование Настоящее время
9 Парадигмы программирования Машинный код, ассемблер, ориентация на архитектуру вычислительной машины Компиляция формул (FORTRAN), вычисления Процедурное, структурное программирование Объектно-ориентированное программирование Языково-ориентированное программирование Компьютера Человека Удобно для … Естественно для …
10 Программист как преобразователь контекста
11 Классификация ПОЯ ПОЯ могут быть: графическими (процесс программирования – «рисование» схемы в специальном редакторе); текстовыми (программирование – составление текста на некотором формальном языке). Кроме того, ПОЯ можно разделить на: статические – языки, в которых не важно, в каком порядке программист рисует элементы схемы или составляет текст программы; динамические – имеет значение порядок действий (например, в Geometer's Sketchpad последовательность геометрического построения задаёт алгоритм).
12 Geometers Sketchpad
13 При создании ПОЯ нужно разработать не только сам язык, но и среду программирования (IDE), удобный редактор кода, отладчик, профилировщик и т.д. Тут возможно несколько подходов.
14 Создатели языков по-разному толкуют понятие язык программирования. К наиболее распространённым утверждениям, признаваемым большинством разработчиков, относятся следующие: Функция: язык программирования предназначен для написания компьютерных программ, которые применяются для передачи компьютеру инструкций по выполнению того или иного вычислительного процесса и организации управления отдельными устройствами.инструкций вычислительного процесса устройствами Задача: язык программирования отличается от естественных языков тем, что предназначен для передачи команд и данных от человека компьютеру, в то время, как естественные языки используются для общения людей между собой. В принципе, можно обобщить определение «языков программирования» это способ передачи команд, приказов, чёткого руководства к действию; тогда как человеческие языки служат для обмена информацией, эмоциями и т.д.естественных языковкоманд Исполнение: язык программирования может использовать специальные конструкции для определения и манипулирования структурами данных и управления процессом вычислений. структурами данных
15 Использовать достаточно гибкий существующий универсальный Язык Программирования (C#, Java, Python) и добавить предметно-ориентированные возможности при помощи библиотеки компонентов (Frameworkа); Использовать существующую систему для создания предметно-ориентированных языков (Meta Programming System от JetBrains или DSL от Microsoft – позволяет рисовать графические схемы и генерировать по ним код); Использовать среду программирования, в которой синтаксические конструкции языка можно модифицировать (настраивать процесс компиляции на определенную предметную область). Например, среда Phoenix, дополнение к компиляторам.Net; Создать собственный ЯП с компилятором, отладчиком и т.д. Для генерации лексического анализатора можно использовать продукты lex и yacc;lexyacc
17 Схема работы «Журнала в журнале»
18 Сайт Журнал в Журнале
19 Пример: Создание иконки
20 Требования к ПО Функциональность: программа должна выполнять ожидаемые функции. Функции нужно реализовывать в порядке их необходимости заказчику, чтобы это сделать, необходимо «вникнуть» в предметную область и определить, что действительно важно заказчику; выделить главные, вспомогательные и второстепенные функции. Надежность: необходимо обеспечить минимум ошибок, сбоев, защиту информации от непреднамеренной порчи. Программа должна разумно реагировать на ввод пользователем любых данных, иначе пользователи будут «бояться» ошибиться, что, как минимум, замедлит их работу с системой. Кроме того, программы, предназначенные для работы в компьютерных сетях, требуют защиты от разного рода вирусных и хакерских атак, – программа должна проверять все входящие данные, особенно тщательно те, которые приходят по сети. Удобство: программа должна иметь интуитивно-понятный интерфейс, удобный для пользователя. Нужно минимизировать количество действий, необходимых пользователю для выполнения задачи, но не в ущерб понятности самих действий. Эффективность: программа должна эффективно использовать память, процессор, «жёсткий» диск и другие ресурсы системы. В особых случаях (когда «медлительность» системы критична) это требование становится едва ли не самым важным, важнее надёжности, но чаще оно менее существенно, чем сопровождение. Сопровождение: программа должна быть понятной, гибкой и «простой в сопровождении, переносе на новые платформы и развитии» - это требование программистов, в отличие от предыдущих, которые являются требованиями заказчиков, пользователей. Удобство сопровождения, как правило, находится в противоречии с эффективностью и для большинства программ более важно. Понятность программы позволяет быстро её развивать, добавлять новые функции, исправлять ошибки.
21 Проектирование DSL Создание языка предметной области начинается с этапа моделирования данных - той информации, которая будет впоследствии записана в терминах DSL.
22 Программирование на языке общего назначения
23 Программирование на основе ПОЯ
24 При создании ПОЯ (чтобы им пользовались) нужно разработать не только сам язык, но и среду программирования (IDE), удобный редактор кода, отладчик, профилировщик и т.д. И тут может быть несколько подходов…
25 Интерфейс учителя
26 Интерфейс ученика
27 Разбиение системы на модули
28 Элементы редактора
29 Редакторы
30 Geometers Sketchpad (Графический язык)
31 Использовать достаточно гибкий существующий универсальный Язык Программирования (C#, Java, Python) и добавить предметно-ориентированные возможности при помощи библиотеки компонентов (Frameworkа); Использовать существующую систему для создания предметно-ориентированных языков (Meta Programming System от JetBrains или DSL от Microsoft – позволяет рисовать графические схемы и генерировать по ним код); Использовать среду программирования, в которой синтаксические конструкции языка можно модифицировать (настраивать процесс компиляции на определенную предметную область). Например, среда Phoenix, дополнение к компиляторам.Net; Создать собственный ЯП с компилятором, отладчиком и т.д. Для генерации лексического анализатора можно использовать продукты lex и yacc;lexyacc
32 В основе решения этих задач лежит математический аппарат Факультет Компьютерных Технологий и Информатики предоставляет базовое образование, которое позволит вам погружаться в любые прикладные задачи. Ваше математическое образование будет востребовано на прикладных задачах. Мы – прикладные математики!
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.