Главная Другое
Экономика Финансы Маркетинг Астрономия География Туризм Биология История Информатика Культура Математика Физика Философия Химия Банк Право Военное дело Бухгалтерия Журналистика Спорт Психология Литература Музыка Медицина |
страница 1 Министерство образования и науки Российской Федерации Федеральное автономное государственное образовательное учреждение высшего профессионального образования Московский физико-технический институт (государственный университет) УТВЕРЖДАЮ Проректор по учебной работе __________ О.А. Горшков «____» ____________ 2012г. ПРОГРАММА по курсу: ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ (факультет.) по направлению: 010900 “Прикладные математика и физика” факультет: ФУПМ кафедра: ИНФОРМАТИКИ курс: 5 (бакалавриат), семестр: 9 Трудоёмкость в зач. ед.: по выбору студента – 1 зач. ед. лекции: по выбору студента – 32 часа мастер классы, индивид. и групповые консультации: по выбору студента – 2 часа экзамен: по выбору студента – 2 часа (1 зач. ед.). ВСЕГО АУДИТОРНЫХ ЧАСОВ: 34 (1 зач. ед.) Программу составил профессор, д.ф.-м.н. А.Г. Тормасов Программа обсуждена на заседании кафедры информатики “29” мая 2012г. Заведующий кафедрой, член-корр. РАН И.Б. Петров Программа утверждена на заседании Ученого совета ФУПМ « ___» ___________2012г. Декан ФУПМ А.А. Шананин ОБЪЁМ УЧЕБНОЙ НАГРУЗКИ И ВИДЫ ОТЧЁТНОСТИ.
Задачи для практикума Цель практикума – обеспечить уверенное владение студентом средствами и методиками разработки прикладного ПО. Литература: По графике: Роджерс Д. Алгоритмические основы машинной графики. - М.: Мир. 1989. - 512 с. Ласло М. Вычислительная геометрия и компьютерная графика на С++. – М.: Бином, 1997. Начала машинной графики, изд. Диалог-МИФИ, 1993. Фоли, Ван Дем. Интерактивная машинная графика. (в 2-х томах)
Гради Буч "Объектно-ориентированный анализ и проектирование" http://www.dore.ru/library/theory/g_buch/index.htm Тимоти Бадд "Объектно-ориентированное программирование в действии" По сетям: Клименко С., Уразметов В. Интернет - среда обитания. / Russian Institute for Public Networks - http://www.citforum.ru/internet/klimenko/contents.shtml. Один из наборов задач (3) – хотя многие из них рассчитаны на выполнение несколькими студентами одновременно.
Построить: объемные изоповерхности заданной функции с освещением от фиксированного направления. Наблюдение проводится также с фиксированных направлений (26 - 6 торцов куба, 8 вершин под 45 гр., 12 ребер под углом 45 гр.) в файле в текстовом виде задано: N M K - число узлов по каждой оси (x, y, z) - типичное значение - 100 х 100 х 100 затем NxMxK чисел - значения функции в соответствующих узлах Метод построения: непрозрачными кубиками стандартного вида. Кубик считается непрозрачным, если хотя бы одно угловое значение больше фиксированного значения изоповерхности. Для каждого фиксированного направления экран подразделяется на "столбики", перпендикулярные к экрану. Проекция любого кубика в этом столбике будет одинаковой, т.е. если мы будем перебирать кубики начиная от ближайших к экрану, то найдя непрозрачный, мы можем не анализировать все оставшиеся в столбике и переходить к следующим столбикам. Это определяет следующий алгоритм: 1 в соответствие с углом зрения разбиваем все кубики на столбики, проецирующиеся на одинаковые площадки. 2 внутри каждого столбика сортируем кубики по расстоянию до экрана 3 начинаем перебор от экрана: как только мы нашли непрозрачный кубик (где хотя бы одно из 8 угловых значений больше нашего фиксированного значения изоповерхности), мы рисуем его на экране с учетом расстояния до него и угла зрения (пользуясь стандартными формулами яркости – см. книгу Роджерса), и переходим к следующему столбику. Задание: создать программу, позволяющую считывать разные файлы с исходными данными, выбирать точку зрения, вектор освещения, help. Каждая грань кубика рисуется однотонной, но цвет ее определяется в зависимости от ее положения в пространстве в соответствие с формулами расчета освещенности. Исполнители: 1 - меню (выбор точек зрения), 1 - собственно алгоритм. 2. Дано: прямоугольный параллелепипед с данными на равномерной прямоугольной сетке (в каждой точке узла 3D сетки задано скалярное значение). Построить: объемные изоповерхности заданной функции с освещением от фиксированного направления. В файле в текстовом виде задано: N M K - число узлов по каждой оси (x, y, z) - типичное значение - 10 х 10 х 10, затем NxMxK чисел - значения функции в соответствующих узлах. Метод построения: явное нахождение точек изоповерхности решением уравнения. Для каждого пиксела экрана проводится перпендикуляр (луч зрения), причем определяются математические координаты этого луча. Затем находится пересечение этого луча с изоповерхностью (решая уравнение F(x0,y0,z) = Const по z, и получая точку пересечения луча с изоповерхностью (x0,y0,z0) - подразумевается, что луч испущен из точки (x0,y0) и идет параллельно оси z, а корень этого уравнения выбирается ближайший к экрану). В полученном значении точки определяется нормаль к этой изоповерхности, и в учетом расстояния до точки и угла зрения (пользуясь стандартными формулами яркости - см книгу Роджерса) ставим точку на экран. Обратите внимание на выбор направления нормали (внешняя или внутренняя). Для определения значения внутри ячейки использовать трилинейную интерполяцию, для определения точки пересечения - методы простой итерации, Hьютона, деления пополам. Для экономии расчетного времени можно искать решение не в каждой точке, а с некоторым шагом по горизонтали и вертикали, заполняя значения в промежутке с помощью билинейной интерполяции цветов. Задание: создать программу, позволяющую считывать разные файлы с исходными данными, выбирать точку зрения, вектор освещения, метод расчета яркости, метод расчета корня уравнения, help. Исполнители: 1 - меню (выбор точек зрения), 1 - алгоритм интерполяции, значений внутри ячеек и решения уравнений. 3. Дано: прямоугольный параллелепипед с данными на равномерной прямоугольной сетке (в каждой точке узла 3D сетки задано скалярное значение). Построить: объемные изоповерхности заданной функции с освещением от фиксированного направления, обозрение с фиксированного направления. в файле в текстовом виде задано: N M K - число узлов по каждой оси (x, y, z) затем NxMxK чисел - значения функции в соответствующих узлах Метод построения: разбиение поверхности на достаточно малые куски. Вся математическая область считается погруженной в куб, разбитый на ячейки, число которых является степенью двойки. Внутри маленького кубика восполнение значения проводится трилинейной интерполяцией. Наблюдение всегда проводится с торца куба. Алгоритм является рекурсивным (алгоритм Варнока). На каждом шаге рекурсии рассматривается куб. Если он простой (т.е. или он целиком прозрачный - внутри него нет соответствующих значений изоповерхности, или целиком может быть построен как единое целое - например, он полностью содержится в самом маленьком кубике сетки), то он отрисовывается целиком или игнорируется, в противном случае осуществляется разбиение его на 8 меньших кубиков (делением пополам по каждой оси), и процедура повторяется для каждого из кубиков. При повторении учитывается видимость, т.е. если ближний к экрану кубик целиком непрозрачен, то следующий за ним от экрана кубик не рассматривается. Изображение непрозрачной области кубика делается с использованием трилинейной интерполяции - участок изоповерхности представляется куском билинейной поверхности, которая затем изображается с учетом расстояния до точек экрана и угла зрения (пользуясь стандартными формулами яркости - см книгу Роджерса). Задание: создать программу, позволяющую считывать разные файлы с исходными данными, выбирать точку зрения, вектор освещения, метод расчета яркости, метод расчета корня уравнения, help. Вариация задачи - добавить программу пересчета (переинтерполяции) на новую сетку данных при изменении угла зрения. Исполнители: 1 - меню, 1 - алгоритм разбиений и определение видимости, 1 - отрисовка билинейных поверхностей (+1 на переинтерполяцию - если потребуется). 4. Дано: набор хаотически заданных точек в двумерном пространстве со скалярным значением в каждой из них Построить: изолинии значений, произвольные сечения, а так же цветовую карту используя ограниченный набор цветов. Так же надо построить в трехмерном объеме карту высот (как в задаче номер 5) в файле в текстовом виде задано: N - число узлов затем Nx3 чисел - координаты (x, y) и значения функции в соответствующих узлах Метод построения: триангуляция полученного набора точек, а затем построение изолиний методом отслеживания пересечений (используя линейную интерполяцию значений внутри треугольников). Кроме того, осуществляется построение цветовой карты - линейной интерполяции цвета в соответствии со значениями в узлах и заданным шаблоном градаций. Триангуляция набора точек - это разбиение набора точек на треугольники так, что этот набор треугольников покрывает выпуклую оболочку набора точек плотно, без пробелов и пересечений, кроме того, минимальный угол треугольника в этом наборе является максимальным. Триангуляция осуществляется следующим алгоритмом: 1 создается треугольник, заведомо вмещающий в себя все точки (возможно, углы этого треугольника могут быть созданы специально). 2 добавляется новая точка из набора. При этом определяется треугольник, в который попала эта точка, и к имеющемуся набору треугольников добавляется новые три. В конце этой процедуры удаляются все треугольники, углами которых является искусственно добавленные точки. 3 поле того, как мы получили набор плотно покрывающих треугольников, проведем оптимизацию полученного набора следующим методом: возьмем два треугольника, соприкасающихся одной стороной, и проверим, не находится ли вершина какого-либо треугольника внутри окружности, описанной вокруг другого треугольника. Если да, то проведем операцию под названием “флип”: удалим общую сторону этих треугольников и добавим вместо нее другую, соединяющую противоположные стороны получившегося четырехугольника. После этой операции поместим в стек все треугольники, граничащие с затронутыми данной операцией, и для всех них повторим тест на окружность. После того, как все треугольники оказываются проверенными, полученное разбиение будет удовлетворять критериям оптимальности. На наборе треугольников отслеживаются точки пересечения изолиний со сторонами треугольников (пользуясь линейной интерполяцией.). Через эти точки проводятся (пользуясь квадратичной интерполяцией для улучшения внешнего вида) изолинии. Их желательно рисовать толщиной в 3 точки. Должна иметься возможность выбора двух точек, через которые проводится сечение, вдоль которого должен быть построен график зависимости значения от расстояния. Кроме того, каждый из треугольников может быть нарисован следующим образом: для минимального и максимального значения скаляра в узлах устанавливается некое значение (от 0.0 до 1.0), соответствующее значениям шкалы цветов, в простейшем случае - шкале серых цветов от белого до черного; затем осуществляется по-точечная растеризация треугольника с использованием алгоритма Брезенхейма, и каждой точке экрана сопоставляется плавающее число из указанного диапазона (пользуясь линейной интерполяцией по 3 углам треугольника). Затем осуществляется постановка точки на экран с использованием алгоритмов “размазывания” (dithering) - подробно они описаны в кн. Роджерса. Задание: создать программу, позволяющую считывать разные файлы с исходными данными, осуществляющую триангуляцию, позволяющую выбирать метод размазывания цветов и построения изолиний, help. Исполнители: 1 - меню + выбор, 1 - триангуляция, 1 - изолинии + график, 1 - рисование цветовой карты, 1 на трехмерную поверхность. 5. Дано: данные на двумерной неравномерной прямоугольной сетке (в каждой точке узла 2D сетки задано скалярное значение). Построить: “Горбы” - объемное поле высот заданной функции с освещением от фиксированного направления, обозрение с фиксированного направления. в файле в текстовом виде задано: N M - число узлов по каждой оси (x, y) N и M чисел - координаты разбиений сетки по соответствующим осям затем NxM чисел - значения функции в соответствующих узлах Метод построения: сортировка прямоугольников сетки по глубине, затем изображение каждого прямоугольника (как 2-х треугольников) в проекции на экран с учетом освещения. Все полученные треугольники сортируются по удаленности от экрана, отбрасываются те треугольники, нормаль к которым составляет тупой угол с направлением к экрану, затем для каждого угла треугольника определяется его цвет в зависимости от расстояния до экрана, угла зрения и нормали (пользуясь стандартными формулами яркости - см книгу Роджерса). Затем осуществляется отображение треугольников на экране с использованием заливок Фонга или Гуро. Задание: создать программу, позволяющую считывать разные файлы с исходными данными, выбирать точку зрения, вектор освещения, метод расчета яркости и отображения help. Исполнители: 1 - меню, 1 - отрисовка треугольников. 6. Дано: набор хаотически заданных точек в трехмерном пространстве со скалярным значением в каждой из них Построить: трехмерную изоповерхность значений в файле в текстовом виде задано: N - число узлов затем Nx4 чисел - координаты (x,y,z) и значения функции в соответствующих узлах Метод построения: триангуляция (тетраэдеризация) полученного набора точек, а затем построение изоповерхностей методом отслеживания пересечений. Тетраэдеризация набора точек - это разбиение набора точек на тетраэдры так, что этот набор тетраэдров покрывает выпуклую оболочку набора точек плотно, без пробелов и пересечений, кроме того, минимальный угол тетраэдра в этом наборе является максимальным. Тетраэдеризация осуществляется следующим алгоритмом: 1 создается тетраэдр, заведомо вмещающий в себя все точки (возможно, вершины этого тетраэдра могут быть созданы специально). 2 добавляется новая точка из набора. При этом определяется тетраэдр, в который попала эта точка, и к имеющемуся набору тетраэдров добавляется новые четыре (а старый удаляется). В конце этой процедуры удаляются все тетраэдры, вершинами которых является искусственно добавленные точки. 3 поле того, как мы получили набор плотно покрывающих тетраэдров, проведем оптимизацию полученного набора следующим методом: возьмем два тетраэдра, соприкасающихся одной гранью, и проверим, не находится ли вершина какого-либо тетраэдра внутри сферы, описанной вокруг другого тетраэдра. Если да, то проведем операцию под названием “флип”: удалим общую грань этих тетраэдров и добавим вместо нее другую, соединяющую противоположные стороны получившейся фигуры. После этой операции поместим в стек все тетраэдры, граничащие с затронутыми данной операцией, и для всех них повторим тест на сферу. После того, как все тетраэдры оказываются проверенными, полученное разбиение будет удовлетворять критериям оптимальности. На наборе тетраэдров отслеживаются точки пересечения изоповерхности со сторонами тетраэдров (пользуясь линейной интерполяцией) - полученный набор треугольников затем визуализируется. Каждый из треугольников полученных в результате вычисления пересечения изоповерхности с ребрами тетраэдра может быть нарисован следующим образом: для каждой вершины изоповерхности вычисляется усредненная нормаль (как среднее арифметическое нормалей примыкающих поверхностей) и цвет вершины; затем осуществляется по-точечная растеризация треугольника с использованием алгоритма Брезенхейма пользуясь линейной интерполяцией по 3 углам треугольника. Затем осуществляется постановка точки на экран с использованием алгоритмов “размазывания” (dithering) - подробно они описаны в кн. Роджерса. Задание: создать программу, позволяющую считывать разные файлы с исходными данными, осуществляющую триангуляцию, позволяющую выбирать метод размазывания цветов и построения изолиний, help. Исполнители: 1 - меню, 1-2 - триангуляция, 1 - отрисовка треугольников. СПИСОК ЛИТЕРАТУРЫ
Цель курса – теоретическое и практическое освоение современных сетевых технологий. Задачами данного курса являются:
Дисциплина «Сетевые технологии» включает в себя разделы, которые могут быть отнесены к базовой и частям по выбору студента цикла Б.3 (шифр цикла). Дисциплина «Сетевые технологии» базируется на:
Компетенции обучающегося, формируемые в результате освоения дисциплины Освоение дисциплины «Сетевые технологии» направлено на формирование следующих общекультурных и общепрофессиональных интегральных компетенций бакалавра:
и, особенно, на формирование следующих общекультурных и профессиональных компетенций:
В результате освоения дисциплины «Сетевые технологии» обучающийся должен:
а) принципы построения компьютерных сетей; б) принципы построения IP-адресов; в) доменную адресацию; г) принципы организации электронной почты; д) основные протоколы передачи данных; е) принципы маршрутизации пакетов; ж) принципы работы Web-сервера.
а) контролировать состояние сети; б) отправлять и получать электронную почту; в) самостоятельно искать ответ на вопросы в usenet, форумах или jabber-конференциях; г) обмениваться файлами по FTP; д) писать программы, взаимодействующие через сеть.
а) ping; б) traceroute; в) ssh; г) ftp;
д) scp;
Перечень разделов дисциплины и распределение времени по темам
Вид занятий Лекции
Вид занятий Лабораторные работы
ВИДЫ САМОСТОЯТЕЛЬНОЙ РАБОТЫ
Развернутые темы и вопросы по разделам Образовательные технологии
5.Оценочные средства для текущего контроля успеваемости, промежуточной аттестации по итогам освоения дисциплины и учебно-методическое обеспечение самостоятельной работы студентов
6.Материально-техническое обеспечение дисциплины
Обеспечение самостоятельной работы Доступ к локальной сети МФТИ и указанным электронным ресурсам 7.Наименование возможных тем курсовых работ Написание клиент-серверного приложения 8.ТЕМАТИКА И ФОРМЫ ИНДИВИДУАЛЬНОЙ РАБОТЫ 9. ТЕМАТИКА ИТОГОВЫХ РАБОТ 1. Робот, следящий за ребёнком, распознающий его эмоции и сообщающий родителям через web-интерфейс. 2. Программа, отслеживающая расписание электропоездов и присылающая уведомление вида «Ваш поезд отправляется с Новодачной через 10 минут» через SMS. 3. Форум с личными и общими сообщениями, модерированием, сворачиванием тредов, цензурой и анонсами. 4. Jabber-транспорт для системы мгновенных сообщений, использующей свой проприетарный протокол. 5. Web-интерфейс для CEO. 6. Система выдачи команды на автоматическое резервное копирование с информированием системного администратора по сигналам датчиков огня, температуры, задымления, влажности, наклона, алкоголя на платформе Arduino.
http://acm.mipt.ru http://judge.mipt.ru/ http://ru.wikipedia.org svn+ssh://login@kpm8.mipt.ru/home/svn/project_name http://jabber.mipt.ru Смотрите также: Программа по курсу: технология программирования (факультет.) по направлению
313.68kb.
1 стр.
Программа дисциплины "технология программирования" Рекомендуется Министерством образования РФ для направления подготовки
141.75kb.
1 стр.
Программа по курсу: современные технологии программирования на языке java (по выбору) по направлению
39.86kb.
1 стр.
Программа дисциплины Технология экстремального программирования для направления 080700. 62 Бизнес-информатика подготовки бакалавра
78.43kb.
1 стр.
Рабочая программа дисциплины б 01 Иностранный язык (немецкий язык) для 261400 Технология художественной обработки материалов
373.89kb.
1 стр.
Рабочая программа дисциплины в 01 Деловой иностранный язык (немецкий язык) для 261400 Технология художественной обработки материалов
222.09kb.
1 стр.
Программа курса «Программирование на языке С++»
31.04kb.
1 стр.
Учебный план подготовки бакалавра Рабочие программы учебных дисциплин (модулей). Программы учебной и производственной практик. 6 Фактическое ресурсное обеспечение ооп бакалавриата по направлению подготовки «Технология изделий легкой
1146.09kb.
4 стр.
Наименование дисциплины Программное обеспечение допечатных процессов По направлению подготовки
91.85kb.
1 стр.
Математический факультет
277.87kb.
1 стр.
По направлению подготовки магистров 260100
941.02kb.
10 стр.
Практикума по курсу «Технологии программирования. Курс на базе Microsoft Solutions Framework (msf)» для подготовки по направлению «Информационные технологии» 160.01kb.
1 стр.
|