Одним из главных принципов уникальной «системы Физтеха», заложенной в основу образования в МФТИ, является тщательный отбор одаренных и склонных к творческой работе представителей молодежи. Абитуриентами Физтеха становятся самые талантливые и высокообразованные выпускники школ всей России и десятков стран мира.

Студенческая жизнь в МФТИ насыщенна и разнообразна. Студенты активно совмещают учебную деятельность с занятиями спортом, участием в культурно-массовых мероприятиях, а также их организации. Администрация института всячески поддерживает инициативу и заботится о благополучии студентов. Так, ведется непрерывная работа по расширению студенческого городка и улучшению быта студентов.

Адрес e-mail:

Объектно-ориентированное программирование (только программа)

Программа курса

Объектно-ориентированное программирование

I . Принципы обектно-ориентированного программирования

1. Строгая типизация данных.

2. Интерфейсы, полиморфизм и перегрузка операторов в C++.

3. Адресное пространство приложения: куча, стек и статические объекты.

5. Динамическая инициализация объектов. Сборка "мусора" в C++ и Java.

6. Реализация косвенных обращений к объектам в куче.

7. Хранение объектов в памяти. Виртуальные функции.

7. Наследование и абстрактные классы в C++.

8. Полиморфные классы. Подстановочный критерий Барбары Лисков.

9. Динамическая идентификация типов в C++.

10. Наследование и абстрактные классы в Java.

11. Реализация интерфейсов в Java.

12. Многопоточное программирование в Java.

13. Проблема повторного использования клиентских программ.

II   Абстрактные   классы   и   интерфейсы  для   канонических   структур данных в C++ и Java

1.  Базовые классы: вектор Array, многомерный вектор MultiDimentionalArray, матрица Matrix, связанный список LinkedList

2.  Абстрактные классы: компаратор Comparator, абстрактный объект Object, Wrapper, контейнер Container, посетитель Visitor, перечисление Enumeration, ассоциация Association.

3.  Классы коллекций:

стек Stack и его реализации StackAsArray и StackAs LinkedList. очередь Queue и ее реализации QueueAsArray и QueueAsLinkedList, двунаправленная очередь Deque и ее реализации Deque AsArray и DequeAsLinkedList, упорядоченный список OrderedList и его реализации OrderedListAsArray и OrderedListAsLinkedLis,. базовые классы курсор Cursor, терм Term и полином Polinomial,. отсортированный список SortedList и его реализации SortedListAsArray и SortcdListAsLinkedList, хэшированная    таблица    HashTable    и    ее    реализации ChinedHashTable, ChaincdScatterTable и OpenScatterTable, множество Set и его реализации SetAsArray и SetAsBitVector, мультимножество MultiSct и его реализации MultiSetAsArray и MultiSetAsLinkcdList, разбиение Partition.

4. Деревья:

абстрактный класс Tree, абстрактный класс PrePostVisitor и производные классы PreOrder, InOrder и PostOrder, классы бинарное дерево BinaryTree и АВЛ-дерево AVL-Tree.

5. Классы для представления графов:

классы вершина Vertex и дуга Edge, абстрактный класс граф Graph и его реализации GraphAsMatrix и GraphAsLinkedList

III Обеспечение повторного использовании клиентских программ

1.  Диаграммы проектирования клиентских классов в C++ и Java и язык UML.

2.  Использование      паттернов      проектирования      при      разработке архитектуры программ.

IV Канонические паттерны проектирования в C++ и Java

1. Порождающие паттерны:

абстрактная фабрика Abstract Factory строитель Builder фабричный метод Factory Method прототип Prototype одиночка Singleton

2. Структурные паттерны:

адаптер Adapter мост Bridge компоновщик Composite декоратор Decorator фасад Facade приспособленец Flyweight заместитель Proxy

3. Паттерны поведения:

цепочка обязанностей ChainOfResp команда Command интерпретатор Interpreter итератор Iterator посредник Mediator хранитель Memento наблюдатель Observer состояние State стратегия Strategy шаблонный метод TemplateMethod посетитель Visitor

V Подходы к выбору паттернов для решения задач проектирования

1. Файловая система на основе TemplateMethod.

2. Файловая система на основе Composite + Proxy + ChainOfResp + Iterator + Visitor + Observer + Command.

3. Файловая система на основе 7 предыдущих паттернов + Decorator.

VI Принципы программирования в С#

1.   Элементы   языка.   Работа   с   приложениями.   Библиотека   базовых классов. Переменные и типы.

2. Техника   программирования.   Классы   и   компоненты.   Управление памятью.  Управление       потоком       выполнения       программы. Небезопасный  код.  Метаданные  и  отражения.  Конфигурирование компонентов и приложений.

3.   Использование SDK.

Литература

1.  Майерс С. Наиболее эффективное использование C++. ДМК. Москва. 2000

2.  Майерс С. Эффективное использование STL. Питер. Санкт-Питербург. 2002

3.   Элджер Д. C++. Питер. Санкт-Петербург. 2001

4.   Холлингвэрт Д., Баттерфилд Д., Сворт Б., Олсон Д. C++ Builder. БХВ-Петербург. Санкт-Петербург. 2001

5.   Шилдт Г. C++. БХВ-Петербург. Санкт-Петербург. 2002

6.   Секунов Н. Visual C++.NET. БХВ-Петербург. Санкт-Питербург. 2002

7.   Ноутон П., Шилдт Г. Java 2. BHV. Санкт-Петербург. 2000

8.   Пономарев В. JBuilder 6/7. BHV. Санкт-Петербург. 2003

9.   Дарвин Я.Ф. Java. Сборник рецептов. Питер. Санкт-Петербург. 2002

10. Топп У., Форд У. Структуры данных в C++. Вильяме. Москва. 2000

11. Александреску А. Современное проектирование на C++. Обобщенное программирование и прикладные шаблоны проектирования. Вильяме. Москва. 2002

12. Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Приемы объектно-ориентированного проектирования. Паттерны проектирования. Питер. Санкт-Петербург. 2003

13. Влиссидес Дж. Применение паттернов проектирования. Дополнительные штрихи. Вильяме. Москва. 2003

14. Стелтинг С., Маасен О. Применение шаблонов Java. Вильяме. Москва 2002

15. Робинсон У. С# без лишних слов. ДМК. Москва. 2002

Если вы заметили в тексте ошибку, выделите её и нажмите Ctrl+Enter.

© 2001-2016 Московский физико-технический институт
(государственный университет)

Техподдержка сайта

МФТИ в социальных сетях

soc-vk soc-fb soc-tw soc-li soc-li
Яндекс.Метрика