Главная
страница 1


Министерство образования и науки Российской Федерации

Федеральное автономное государственное образовательное

учреждение высшего профессионального образования

Московский физико-технический институт

(государственный университет)

УТВЕРЖДАЮ

Проректор по учебной работе

__________ О.А. Горшков

«____» ____________ 2012г.

ПРОГРАММА



по курсу: ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ (факультет.)

по направлению: 010900 “Прикладные математика и физика”

факультет: ФУПМ

кафедра: ИНФОРМАТИКИ

курс: 5 (бакалавриат), семестр: 9

Трудоёмкость в зач. ед.: по выбору студента – 1 зач. ед.

лекции: по выбору студента – 32 часа

мастер классы, индивид. и групповые консультации: по выбору студента – 2 часа

экзамен: по выбору студента – 2 часа (1 зач. ед.).

ВСЕГО АУДИТОРНЫХ ЧАСОВ: 34 (1 зач. ед.)

Программу составил профессор, д.ф.-м.н. А.Г. Тормасов


Программа обсуждена на заседании кафедры информатики
29” мая 2012г.
Заведующий кафедрой,

член-корр. РАН И.Б. Петров

Программа утверждена на заседании

Ученого совета ФУПМ « ___» ___________2012г.



Декан ФУПМ А.А. Шананин

ОБЪЁМ УЧЕБНОЙ НАГРУЗКИ И ВИДЫ ОТЧЁТНОСТИ.


По выбору студента, включая:

1 зач. ед.

Лекции

34 часа

Индивидуальные занятия с преподавателем

2 часа

Самостоятельные занятия, включая подготовку курсовой работы

2 часа

Самостоятельные занятия (работа над коллективными и индивидуальными проектами, курсовые работы)

0 зач. ед.

Экзамен

0 зач. ед.

ВСЕГО

1 зач. ед.

Итоговая аттестация

Экзамен



  1. Текст программы, его оформление, комментарии. Базовые основы элементарной техники программирования. Технические основы программной реализации формальных структур данных, hash-таблиц, сортировка. Применение hash-таблиц.

  2. Отладка программ, написание программ с учетом необходимости их отладки. Современные отладчики, их использование.

  3. Применение объектно-ориентированного подхода в программировании. Применение формальных подходов в современных технологиях на базе абстрактных типов данных (АТД). Реализация АТД в C++, использование имеющихся наборов (коллекций) АТД на примере библиотек классов MFC (Microsoft Foundation Classes), STL, GNU C++ library.

  4. Общие принципы реализации и работы современных оконных систем для прикладного программиста. Принципы объектно-ориентированного программирования (ООП) заложенные в подобные системы. Обзор программного интерфейса пользователя (API) наиболее распространенной системы графического интерфейса пользователя Microsoft Windows.

  5. Возможности современных средств поддержки разработки программного обеспечения: базовые технологии Computer Aided Software Engineering (CASE); технология использования простейших утилит UNIX для повышения производительности программного обеспечения; утилита make; использование средств реализации формальных грамматик ОС UNIX lex и yacc (GNU flex и bison) для быстрого порождения трансляторов, препроцессоров.

  6. Современные текстовые системы, их использование в технологии производства программного обеспечения. Регулярные выражения, их использование для работы с текстами программ. Регулярные выражения в командных процессорах.

  7. Переносимость программного обеспечения. Проблемы и их решения.

  8. Написание программ группами разработчиков. Средства поддержки коллективной разработки (CVS, VSS и др.). Хранение истории изменений, бранчи, поддержка старых и новых версий.

  9. Организация выпуска собственно программного продукта. Циклы разработки ПО (на примере RUP). Системы построения (build-системы).

  10. Тестирование программного обеспечения, классы тестов (функциональные, полные, на производительность, на удобство использования, регрессионные), тест планы. Особенности тестирования интерактивных и не интерактивных программ, тестирование в условиях различной нагрузки и т.д. Принципы построения системы выпуска программ и тестирования, применяемые компанией Microsoft.

  11. Поддержка программного обеспечения, общие принципы организации службы поддержки (горячие линии, поддержка через чаты и системы обмены сообщениями, поддержка по почте), система trouble tickets, эскалация ответственности. Выпуск новых версий, обновления старых и проблемы с безопасностью (оценки срочности реакции). Принципы, которыми руководствуется компания Microsoft при поддержке прикладного по (на примере MS Office).

  12. Безопасность и устойчивость к несанкционированным способам использования программного обеспечения. Использование криптографии для обеспечения безопасности. Типовые криптоалгоритмы и их применение: симметричные алгоритмы, режимы их использования, асимметричные алгоритмы (алгоритмы с открытыми ключами), электронная подпись, хэш-функция, алгоритмы обмена ключами. Инфраструктуры открытых и закрытых ключей (PKI), проблема распределения ключей.


Задачи для практикума
Цель практикума – обеспечить уверенное владение студентом средствами и методиками разработки прикладного ПО.
Литература:

По графике:



Роджерс Д. Алгоритмические основы машинной графики. - М.: Мир. 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) – хотя многие из них рассчитаны на выполнение несколькими студентами одновременно.
Все картинки должны рисоваться в 4 цветах с использованием алгоритмов цветогого размазывания (дизеринга).
1. Дано:
прямоугольный параллелепипед с данными на равномерной прямоугольной сетке (в каждой точке узла 3D сетки задано скалярное значение)

Построить: объемные изоповерхности заданной функции с освещением от фиксированного направления. Наблюдение проводится также с фиксированных направлений (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 - отрисовка треугольников.



СПИСОК ЛИТЕРАТУРЫ

  1. Гованус Г., Кинг Р. MCSE: Проектирование безопасности сетей Windows 2000. Учебное руководство. MCSE. Экзамен 70-220,.

  2. Фатрелл Р.Т., Шафер Д.Ф., Шафер Л.И. Управление программными проектами. Достижение оптимального качества при минимуме затрат (+ CD-ROM) Quality Software Project Management.. 1136 стр., 2003 г.Издательство: Вильямс; Серия: Серия института качества программного обеспечения ISBN   5-8459-0413-7, 0-13-091297-2

  3. Якобсон А., Буч Г., Рамбо Дж. Унифицированный процесс разработки программного обеспечения The Unified Software Development Process 496 стр., 2002 г.Издательство: Питер; Серия: Для профессионалов ISBN   5-318-00358-3

  4. Элиенс А. Принципы объектно-ориентированной разработки программ Principles of Object-Oriented Software Development 496 стр., 2002 г. Издательство: Вильямс ISBN   5-8459-0233-9, 0-201-39856-7

  5. Кантор М. Управление программными проектами. Практическое руководство по разработке успешного программного обеспечения Software Leadership. A Guide to Successful Software Development 176 стр., 2002 г. Издательство: Вильямс ISBN 5-8459-0294-0, 0-2017-0044-1

  6. Пик Дж., О`Райли Т., Лукидис М. UNIX. Инструментальные средства Unix Power Tools. 896 стр., 2002 г. Издательство: BHV ISBN   966-552-020-2, 1-56592-260-3

  7. Керниган Б., Пайк Р. Unix. Программное окружение The Unix Programming Environment 416 стр., 2003 г. Издательство: Символ - Плюс; Серия: High tech ISBN   5-93286-029-4, 0-13-937681-X

  8. Сивер Э., Спейнауэр С., Фиггинс С., Хекман Д. Linux. Справочник Linux in a Nutshell. Объём: 912 стр. ISBN: 5-93286-012-X, 0-59600-025-1 Дата выхода: 2001 г.

  9. Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си Applied Cryptography. Protocols, Algorithms, and Source Code in C., 816 стр., 2002 г.Издательство: Триумф ISBN   5-89392-055-4, 0-471-11709-9

  10. Ященко В.В. Введение в криптографию. Объём: 288 стр. ISBN: 5-900916-65-0 Формат: 60Х90/16 Серия: «Новые математические дисциплины » Издательство: МЦНМО.


  1. ЦЕЛИ И ЗАДАЧИ

Цель курса – теоретическое и практическое освоение современных сетевых технологий.
Задачами данного курса являются:

  • изучение основ функционирования компьютерных сетей;

  • знакомство с наиболее распространёнными сетевыми протоколами;

  • написание сетевых приложений.




  1. Место дисциплины в структуре ООП бакалавриата

Дисциплина «Сетевые технологии» включает в себя разделы, которые могут быть отнесены к базовой и частям по выбору студента цикла Б.3 (шифр цикла).



Дисциплина «Сетевые технологии» базируется на:

  1. модулях _____________курса информатика (алгоритмы и алгоритмические языки);

  2. модулях ____________курса информатика (архитектура ЭВМ и язык ассемблера);

  3. модулях ____________курса информатика и применение компьютеров в научных исследованиях (системное программное обеспечение);

  4. модулях ____________курса информатика и применение компьютеров в научных исследованиях (прикладное программное обеспечение);

  5. модулях ____________курса методы параллельной обработки данных

Компетенции обучающегося, формируемые в результате освоения дисциплины
Освоение дисциплины «Сетевые технологии» направлено на формирование следующих общекультурных и общепрофессиональных интегральных компетенций бакалавра:

  • способность анализировать научные проблемы и физические процессы, использовать на практике фундаментальные знания, полученные в области естественных и гуманитарных наук (ОК-1);

  • способность осваивать новые проблематику, терминологию, методологию и овладевать научными знаниями, владеть навыками самостоятельного обучения (ОК-2);

  • способность логически точно, аргументировано и ясно формулировать свою точку зрения, владеть навыками научной и общекультурной дискуссией (ОК-3);

  • готовность к творческому взаимодействию с коллегами по работе и научным коллективом, способность и умение выстраивать межличностное взаимодействие, соблюдая уважение к товарищам и проявляя терпимость к иным точкам зрения (ОК-4);

и, особенно, на формирование следующих общекультурных и профессиональных компетенций:

  • способность применять в своей профессиональной деятельности знания, полученные в области информационных технологий и математических дисциплин, включая дисциплины: высшая математика, информатика и применение компьютеров в научных исследованиях, дискретный анализ, математическая статистика, случайные процессы (ПК-1);

  • способность применять различные подходы и методы исследований в избранной предметной области: логические, статистические, нейросетевые, эвристические методы обработки экспериментальных данных, вычислительные методы, методы математического и компьютерного моделирования объектов и процессов (ПК-2);

  • способность понимать сущность задач, поставленных в ходе профессиональной деятельности, использовать соответствующий математический аппарат для их описания и решения (ПК-3);

  • способность использовать знания в области компьютерных технологий и математических дисциплин для дальнейшего освоения дисциплин в соответствии с профилем подготовки (ПК-4);

  • способность работать с современным программным обеспечением по анализу и обработке статистических данных (ПК-5);

  • способность представлять результаты собственной деятельности с использованием современных средств, ориентируясь на потребности аудитории, в том числе в форме отчетов, презентаций, докладов (ПК-6);

  • способность применять на практике умения и навыки в организации исследовательских работ, готовность к участию в инновационной деятельности (ПК-7).



  1. конкретные Знания, умения и навыки, формируемые в результате освоения дисциплины


В результате освоения дисциплины «Сетевые технологии» обучающийся должен:


    1. Знать:

а) принципы построения компьютерных сетей;

б) принципы построения IP-адресов;

в) доменную адресацию;

г) принципы организации электронной почты;

д) основные протоколы передачи данных;

е) принципы маршрутизации пакетов;

ж) принципы работы Web-сервера.


    1. Уметь:

а) контролировать состояние сети;

б) отправлять и получать электронную почту;

в) самостоятельно искать ответ на вопросы в usenet, форумах или jabber-конференциях;

г) обмениваться файлами по FTP;

д) писать программы, взаимодействующие через сеть.


    1. Владеть утилитами:

а) ping;

б) traceroute;

в) ssh;

г) ftp;


д) scp;

    1. Структура и содержание дисциплины

    1. Структура преподавания дисциплины

Перечень разделов дисциплины и распределение времени по темам


№ темы и название

Количество часов

1.Принципы построения компьютерных сетей.

- История развития телекоммуникаций.

- Принципы построения.

- Классификация сетей.

- Особенности организации глобальных (мировых) сетей.


3

2.Компьютерная сеть Internet как пример глобальных информационных сетей.

- История развития сети.

- Принципы построения.

- Базовые протоколы семейства TCP/IP.

- Принципы построения IP адресов.

- Доменная адресация.

- Система серверов доменных имен (BIND).


3

3.Средства контроля состояния и топологии сети

- Команды ping, traceroute

- Отображение состояния узлов средствами SNMP.

- Централизованное управление состоянием сети.



3

4.Электронная почта.

- Принципы организации.

- Интерфейсные программы.

- Системы доставки ( MTA - Mail Transfer Agents ).

- Формат почтовых сообщений.

- Обмен данными с другими почтовыми службами.



3

5.Удаленный доступ к ресурсам сети.

- Система Telnet.

- Протокол TELNET.

- Программа-клиент (telnet)

- Программа-сервер (telnetd)


3

6.Телеконференции.

- Электронные доски объявлений в Internet.

- Система групп Usenet.

- Принципы построения системы Usenet.



3

7.Обмен файлами. Служба архивов FTP.

- Протокол обмена файлами FTP.

- Программа-сервер -- ftpd.

- Программа-клиент -- ftp.



3

8.Информационная сеть WWW ( World Wide Web ).

- История развития

- Современное состояние.

- Основные компоненты технологии World Wide Web.

- Язык гипертекстовой разметки HTML.

- Универсальная спецификация адреса (URI).

- Протокол обмена гипертекстовыми данными -- HTTP.


3

9.Поиск информации в Интернет.

- Технология обхода пространства WWW и связанные с нею

поисковые системы

- Каталоги ресурсов, тематические порталы.

- Система поиска Брокер-сборщик.

- Метасистема поисковых систем WAIS.

- Поиск в пространстве FTP.

- Поиск в пространстве Usenet.



3

10.Безопасность информации в сети.

- Основные задачи организации безопасности в сети.

- Методы организации безопасного доступа к ресурсам.

- Сохранность частной информации.

- Протоколы SSL, HTTPS.

- Протокол SSH

- Программы клиент и сервер ssh, sshd.


3

11.Представление не-текстовой информации в сети.

- Мультимедийная информация.

- Основные форматы публикации звука и изображения.

- Живое общение - частный разговор и конференции.

- Телефон через Интернет.


3

12.Тенденции развития Интернет.

- Проникновение в бытовую технику.

- Объединение средств массовой информации.

- Технические аспекты экспансивного расширения сети.



3

13. Маршрутизация сетей TCP/IP.

- Общие понятия.

- Статическая маршрутизация.

- Понятие Автономная Система (AS).



3

14. Маршрутизация внутри AS.

- Протокол маршрутизации RIP.

- Протокол маршрутизации OSPF.

- Протокол маршрутизации IBGP.



3

15. Маршрутизация между AS.

- Общие правила взаимодействия между AS.

- Протокол маршрутизации EBGP.

- Интегратция внутре- и внешнесетевой маршрутизации.

- Решение проблемы надежной связанности в сетях TCP/IP.


3

16. Web-програмирование.

- Принципы работы Web-сервера.

- Статические документы.

- Динамические документы.

- Common Gateway Interface (CGI).


3

17. Основы языка python.

- Синтаксис. Операторы. Переменные.

- Управление файлами.

- Функции. Модули.

- Примеры.


3

19. Berkley socket API

- Архитектура

- Типы сокетов

- Создание сокета






20. Простейшие соединения

- Создание соединения

- Передача данных

- Завершение соединения

- Передача данных без создания соединения


2

21. Практические аспекты создания сетевых приложений

- Blocking и Non-Blocking режимы сокета - Создание приложений с многопоточным вводом/выводом

- Использование прерывание для управления вводом/выводом


2

22. Библиотечные вызовы

- Работа с именами хостов

- Работа с именами сетей

- Работа с именами протоколов

- Работа с именами сервисов


2

23. Модель клиент/сервер

- Сервер


- Клиент

- Сервер без постоянного соединения



2

24. Дополнительные возможности

- Настройки сокета

- Широковещательная передача

- Передача мультикастов



2

ВСЕГО( зач. ед.(часов))

66 часов 2 зач. ед.


Вид занятий Лекции

Темы

Трудоемкость в зач. ед.

(количество часов)



1.Принципы построения компьютерных сетей.

1




2.Компьютерная сеть Internet как пример глобальных информационных сетей.

1




3.Средства контроля состояния и топологии сети



1




4.Электронная почта.

1




5.Удаленный доступ к ресурсам сети.

1




6.Телеконференции.

1




7.Обмен файлами. Служба архивов FTP.

1




8.Информационная сеть WWW ( World Wide Web )

1




9.Поиск информации в Интернет

1




10.Безопасность информации в сети

1




11.Представление не-текстовой информации в сети

1




12.Тенденции развития Интернет

1




13. Маршрутизация сетей TCP/IP

1




14. Маршрутизация внутри AS

1




15. Маршрутизация между AS

2




16. Web-програмирование

2




17. Основы языка python

2




19. Berkley socket API

2




20. Простейшие соединения

2




21. Практические аспекты создания сетевых приложений

2




22. Библиотечные вызовы

2




23. Модель клиент/сервер

2




24. Дополнительные возможности

2




ВСЕГО ( зач. ед.(часов))

33 часа 1 зач. ед.


Вид занятий Лабораторные работы

№ п.п.

Темы

Трудоемкость в зач. ед.

(количество часов)



1

Контест по задачам на ejudge

5

2

Написание таблиц маршрутизации

4

3

Отправка почты из командной строки

4

4

Написание клиента и сервера на С

4

5

Нагрузочное тестирование сервера

4

6

google protocol buffers

4

7

RPC на Python

4

8

Corba interface

4

ВСЕГО ( зач. ед.(часов))

33 часа 1 зач. ед.


ВИДЫ САМОСТОЯТЕЛЬНОЙ РАБОТЫ

№ п.п.

Темы

Трудоёмкость в зач. ед.

(количество часов)



1.

Изучение теоретического курса - выполняется самостоятельно каждым студентом по итогам каждой из лекций, результаты контролируются преподавателем на лекционных занятиях, используются конспект (электронный) лекций, учебники, рекомендуемые данной программой;

14

ВСЕГО ( зач. ед.(часов))

14 час.




    1. Содержание дисциплины

Развернутые темы и вопросы по разделам
Образовательные технологии

  1. лекции;

  2. семинарские занятия;

  3. удалённое обучение;

  4. самостоятельная работа;

  5. работа над проектом в группах.


5.Оценочные средства для текущего контроля успеваемости, промежуточной аттестации по итогам освоения дисциплины и учебно-методическое обеспечение самостоятельной работы студентов

    1. Обязательные задания

    2. Вариативные задания

    3. Примерные темы рефератов, проектов

    4. Контрольные вопросы и задания по обязательной и вариативной частям дисциплины для промежуточной аттестации по итогам освоения дисциплины

    5. 1. Для приведённого фрагмента сети распределите IP-адреса и напишите таблицы маршрутизации.

    6. 2. Из командной строки отправьте электронное письмо преподавателю.




6.Материально-техническое обеспечение дисциплины

    1. Необходимое лабораторное оснащение

    2. Необходимое оборудование для лекций и практических занятий

    3. 1) компьютерный класс;

    4. 2) проводная cеть (ethernet);

    5. 3) беспроводная сеть (802.11 a/b/g/n);

    6. 4) проектор или плазменный экран;

    7. 5) рабочее место преподавателя (ноутбук с ethernet и wi-fi, подключаемый к плазменному экрану или проектору);

    8. 6) сервер;

    9. 7) управляемый свитч.



    10. Необходимое программное обеспечение

    11. Операционная система Linux.

    12. DHCP, DNS, FTP, E-mail, telnet, ssh клиенты (на рабочих местах) и соответствующие им серверы (на сервере, роутере и/или управляемом свитче).

    13. DD-WRT для Wi-Fi роутера.

    14. Cisco iOS для управляемого свитча.

    15. Компилятор gcc/g++.

    16. Интерпретатор python.

    17. OpenOffice.

    18. Программа просмотра PDF.



Обеспечение самостоятельной работы

Доступ к локальной сети МФТИ и указанным электронным ресурсам


7.Наименование возможных тем курсовых работ

Написание клиент-серверного приложения





8.ТЕМАТИКА И ФОРМЫ ИНДИВИДУАЛЬНОЙ РАБОТЫ
9. ТЕМАТИКА ИТОГОВЫХ РАБОТ

1. Робот, следящий за ребёнком, распознающий его эмоции и сообщающий родителям через web-интерфейс.

2. Программа, отслеживающая расписание электропоездов и присылающая уведомление вида «Ваш поезд отправляется с Новодачной через 10 минут» через SMS.

3. Форум с личными и общими сообщениями, модерированием, сворачиванием тредов, цензурой и анонсами.

4. Jabber-транспорт для системы мгновенных сообщений, использующей свой проприетарный протокол.

5. Web-интерфейс для CEO.

6. Система выдачи команды на автоматическое резервное копирование с информированием системного администратора по сигналам датчиков огня, температуры, задымления, влажности, наклона, алкоголя на платформе Arduino.
10. Учебно-методическое и информационное обеспечение дисциплины


    1. Основная литература.

  1. Дьяконов В.П. Internet - Настольная книга пользователя. М.: Солон, 1999.

  2. Фейт С. TCP/IP: Архитектура, протоколы, реализация. O'Reilly, 2000.

  3. Фролов А. Базы данных в Интернете. П.: Русская Редакция, 2000.

  4. Харли Х. Желтые страницы Internet 2000: Русские ресурсы.

  1. Харли Х. Желтые страницы Internet и Web 2000. Международные ресурсы.

  2. Шимми Б. Эффективное использование электронной почты. Феникс, 1998.

  3. . Ричард Стивенс. Протоколы TCP/IP. “Bhv-Питербург”. ISBN 5-94157-300-6.

    1. Дополнительная литература.

    2. Пособия и методические указания.

    3. Электронные ресурсы, включая доступ к базам данных и . т.д.

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 стр.
По направлению подготовки магистров 260100
941.02kb.
10 стр.
Практикума по курсу «Технологии программирования. Курс на базе Microsoft Solutions Framework (msf)» для подготовки по направлению «Информационные технологии»
160.01kb.
1 стр.
Математический факультет
277.87kb.
1 стр.