Автор: Bertrand Meyer
Форма обучения:
дистанционная
Стоимость самостоятельного обучения:
бесплатно
Доступ:
свободный
Документ об окончании:
 
Уровень:
Для всех
Длительность:
17:09:00
Студентов:
1856
Выпускников:
27
Качество курса:
4.60 | 4.40
В этом курсе переместимся на передний край современной технологии программирования и посмотрим, какие преимущества можно получить, если использовать всю мощь ОО-идей.
Первые лекции описывают многие механизмы наследования, включая полиморфизм, динамическое связывание, множественное наследование, понятие ограниченной универсальности. Затем исследуются новые средства, которые добавляют существенную выразительную силу объектному каркасу. В Eiffel они называются агентами (терминология не устоялась, в других языках их называют делегатами, замыканиями). Рассмотрение агентов сопровождается знакомством с основами лямбда-исчисления. Последующие лекции представляют проектирование, управляемое событиями, – гибкую архитектуру программных проектов, дополняющую наши прежние структуры управления. В 2-х последних лекциях рассматриваются требования, необходимые для перехода на новый уровень, перехода от простого программирования к профессиональной разработке ПО промышленного качества. Этот уровень называется программной инженерией.
 

План занятий

Занятие
Заголовок <<
Дата изучения
Лекция 1
1 час 37 минут
Введение
У слушателей Интернет университета появилась уникальная возможность не только пройти курсы лекций по замечательной книге "Почувствуй класс. Учимся программировать хорошо с объектами и контрактами", но и увидеть, услышать автора книги – профессора Бертрана Мейера. Отвечая на вопросы профессора Владимира Биллига – переводчика книги, Бертран Мейер объясняет, почему этот курс может быть интересен студентам, приступающим к изучению информатики, чем книга может быть интересна преподавателям, читающим подобный курс, чем книга и курсы по ней могут быть интересны профессионалам ИТ. Он рассказывает о том, как учат информатике в ЕТН – одном из старейших учебных заведений Европы, об особенностях этого курса. В беседе затрагиваются и другие вопросы, в частности Бертран говорит о своей любви к русскому языку и о том, как он, будучи школьником, учил русский язык. Эта лекция является хорошим введением в курс, полученным "из первых уст".
-
Лекция 2
46 минут
Наследование и полиморфизм
В лекции рассматриваются свойства классов и объектов, связанные с наследованием. Наследование не только позволяет повторно использовать код (компоненты, определенные предками класса), но использовать наиболее подходящий метод - метод того объекта, с которым в момент выполнения связана полиморфная сущность. В лекции подробно рассматриваются важнейшие для наследования понятия – полиморфизм, динамическое связывание, динамический и статический тип сущности, согласование типов.
-
Тест 1
24 минуты
-
Лекция 3
51 минута
Проектирование семейства классов
В лекции рассматриваются новые свойства, связанные с проектированием семейства классов, связанных отношением наследования. Как правило, проектирование семейства начинается с создания отложенного класса (deferred class) – класса, в котором для ряда методов задана только спецификация – контракт и сигнатура, но не задана реализация методов, которую обеспечат потомки класса в соответствии со своей спецификой. В лекции подробно рассматриваются важнейшие для проектирования понятия – "программы с дырами", отложенные методы, переопределение и переобъявление методов наследниками класса.
-
Тест 2
24 минуты
-
Лекция 4
42 минуты
Контракты и наследование
В лекции объясняется роль контрактов при наследовании, как изменяются контракты в процессе наследования. Класс наследует от родителя не только компоненты, но и инвариант класса. Методы наследуют предусловия и постусловия. Наследники обязаны выполнять контракт родителя, но могут брать новые обязательства, делая контракт более привлекательным для клиентов класса. В лекции подробно рассматривается также общая структура наследования и проблемы, возникающие при множественном наследовании.
-
Тест 3
24 минуты
-
Лекция 5
1 час 18 минут
Универсальность плюс наследование
В лекции рассматривается комбинация двух важнейших механизмов объектно-ориентированного проектирования – наследования и универсальности. Показана важная роль ограничения универсальности, позволяющая расширить возможности сущностей, тип которых задается родовыми параметрами универсального класса. Исследуются приемы взаимного использования двух механизмов ООП. В частности большое внимание уделяется рассмотрению образца проектирования "Посетитель".
-
Тест 4
24 минуты
-
Лекция 6
1 час 9 минут
Агенты как функциональный тип данных
В лекции рассматривается новый тип данных, называемый функциональным типом. Объектами этого типа являются функции и процедуры – методы класса. В языке Eiffel вводится понятие агента, при определении которого с агентом связывается некоторый метод класса. Агентное выражение может быть присвоено переменной функционального типа. Механизм агентов находит широкое применение в различных проблемных областях. В лекции подробно обсуждаются вопросы, связанные с заданием агентов. Обсуждаются важные примеры применения агентов в задачах итерирования, численного интегрирования, построения командных систем с встроенным механизмом откатов – redo и undo.
-
Тест 5
24 минуты
-
Лекция 7
1 час 8 минут
Введение в лямбда исчисление
В лекции рассматриваются основы лямбда исчисления. Эта теория позволяет лучше понимать свойства агентов и их применение. В лекции подробно обсуждаются вопросы, связанные с преобразованием функций, переименованием переменных, подстановкой. Изучаются две основные операции, применимые к лямбда-выражениям, – бета-редукция и альфа-преобразование. Обсуждается связь теории с практикой программирования в Eiffel и других языках программирования.
-
Тест 6
24 минуты
-
Лекция 8
45 минут
События
В лекции рассматривается технология проектирования ПО, в которой процесс вычисления управляется событиями, возникающими по ходу процесса. Как правило, такая технология применяется в интерактивных системах, где ведущая роль управления процессом вычислений отводится пользователю. В такой технологии программный проект рассматривается как набор сервисов, вызываемых в ответ на возникновение событий, инициатором которых зачастую является пользователь, управляющий процессом вычислений. Центральным понятием этой технологии является понятие "события". Одни элементы ПО, называемые издателями, могут генерировать события. Другие элементы ПО, называемые подписчиками, могут обрабатывать события, получая сообщения об их возникновении. В лекции подробно рассматриваются важнейшие элементы этой технологии – объявление событий, включение событий, подписка на события, обработка событий, образец проектирования МОК (MVC).
-
Тест 7
24 минуты
-
Лекция 9
59 минут
Образцы проектирования
В лекции рассматриваются образцы проектирования, связанные с событиями. Подробно рассматривается образец "Наблюдатель" (pattern Observer). Обсуждаются достоинства и недостатки этого классического образца. Используя такие возможности языка Eiffel, как агенты и кортежи, рассматривается более совершенный образец, применимый в задачах типа "Издатели" и "Подписчики", - образец, основанный на классе EVENT_TYPE. Этот класс является основой контроллера при построении более мощного образца проектирования МОК – Модель - Облик – Контроллер (MVC – Model – View – Controller).
-
Тест 8
24 минуты
-
Лекция 10
50 минут
-
Тест 9
24 минуты
-
Лекция 11
1 час 21 минута
Технологии инженерии программ
В лекции рассматриваются вопросы создания программного продукта, входящие в сферу интересов инженерии программ. Рассматриваются различные модели жизненного цикла программного продукта, включая современную технологию гибкой разработки, получившей название Agile методологии. Большое внимание уделяется требованиям к программным системам, созданию документа требований, роли и качеству этого документа. Обсуждаются вопросы сертификации фирм, занимающихся разработкой ПО, в частности подробно рассматривается сертификация CMMI.
-
Тест 10
24 минуты
-
1 час 40 минут
-
Надежда Александрова
Надежда Александрова

Уточните пожалуйста, какие документы для этого необходимо предоставить с моей стороны. Курс "Объектно-ориентированное программирование и программная инженения". 

Инна Кондратенко
Инна Кондратенко
Беларусь, Могилев
Алексей Терехов
Алексей Терехов
Россия, Астрахань