Оплата и обучение |
Опубликован: 02.12.2009 | Уровень: специалист | Доступ: свободно
Курс посвящен основам объектного программирования. В качестве языка программирования выбран язык C# - его версия 3.0, в качестве среды разработки программных проектов – Visual Studio 2008 Professional Edition и Framework .Net в версии 3.5. В курсе рассматривается создание программных систем, построенных на классах. Изложение сопровождается большим числом примеров. Курс является учебником и задачником. Задачи сопровождают каждую лекцию курса.
Современные программные системы проектируются и разрабатываются как системы, построенные на классах. Язык С# и среда разработки Visual Studio 2008 эффективно поддерживают такой стиль создания программных систем. Как правильно создавать классы, какие отношения существуют между классами системы, почему в языке С# появляются частные случаи классов – структуры, интерфейсы, перечисления, делегаты, универсальные классы – эти вопросы составляют основу этой части курса. Классы с событиями, документирование классов, обработка исключительных ситуаций, наконец, стиль профессионального программирования подробно обсуждается в данном курсе.
Цель: Формирование понимания того, как проектируются и программируются современные программные системы, основанные на классах, - главная цель этого курса. Хотелось бы, чтобы с первых проектов, создаваемых на С#, формировался стиль, присущий профессиональному программированию и та степень ответственности, присущая профессиональным программистам.
Предварительные курсы |
План занятий
Занятие | Заголовок << | Дата изучения |
---|---|---|
- | ||
Лекция 1 | Практикум 1. Установка Visual Studio 2010
В практикуме рассказывается процесс установки программного продукта.
Оглавление | - |
Лекция 2 | Классы
В лекции рассматриваются все детали проектирования и построения класса. Обсуждается роль полей, как глобальной информации, доступной всем методам класса. Рассматривается интерфейс – открытая часть класса, методы класса и их частные случаи – конструкторы, свойства, операции.
Лекция сопровождается задачами на построение классов.
Оглавление | - |
Тест 121 минута | - | |
Лекция 3 | Структуры
Структуры, как частный случай класса, позволяют задавать развернутый тип данных. Подробно обсуждаются отличия ссылочных и развернутых типов данных, когда и где следует применять тот или иной тип – выбирать структуру или ссылочный класс. Лекция сопровождается задачами.
Оглавление | - |
Тест 218 минут | - | |
Лекция 4 | Перечисления
Еще один важный частный случай класса – перечисление позволяет задать разработчику конечное множество значений, которые могут получать объекты классы. Показано, как перечисление, заданное шкалой, позволяет строить эффективные по памяти и времени алгоритмы для широкого класса задач. Лекция сопровождается задачами.
Оглавление | - |
Тест 321 минута | - | |
Лекция 51 час 45 минут | Отношения между классами. Клиенты и наследники
Одна из важнейших тем этого курса рассматривает два основных типа отношений, существующих между классами – наследование и встраивание. Каждый класс создается в интересах своих будущих клиентов и потомков. Подробно обсуждается вопрос, когда следует применять наследование, а когда встраивание. Лекция сопровождается задачами.
Оглавление | - |
Тест 424 минуты | - | |
Лекция 61 час 24 минуты | Интерфейсы. Множественное наследование
Многозначное слово интерфейс в данной лекции задает еще один важный частный случай класса – класс, заданный заголовками методов. Интерфейсы важны не только потому, что позволяют задать определенное поведение у потомков интерфейса, но и справиться с проблемой множественного наследования. Лекция сопровождается задачами.
Оглавление | - |
Тест 518 минут | - | |
Лекция 71 час 50 минут | Делегаты. Функциональный тип данных
Функции могут выступать в роли объектов. Функции с одинаковой сигнатурой принадлежат одному функциональному типу. Класс, позволяющий описать функциональный тип, называется делегатом. Различные вопросы, связанные с делегатами подробно рассматриваются в этой лекции. Лекция сопровождается задачами.
Оглавление | - |
Тест 621 минута | - | |
Лекция 81 час 21 минута | Классы с событиями
Поля, методы и события – треугольник, полностью описывающий объекты класса. События позволяют специфицировать поведение объектов класса, поскольку каждый объект при возникновении события может иметь свой набор обработчиков этого события. Лекция сопровождается задачами.
Оглавление | - |
Тест 721 минута | - | |
Лекция 91 час 34 минуты | Универсальность. Классы с родовыми параметрами
Универсальные классы, шаблоны, классы с родовыми параметрами – синонимичные понятия для класса, у которого есть параметры, задающие типы. Эти классы являются одним из мощнейших механизмов, позволяющих существенно сокращать объем кода объектно-ориентированных программных систем. Как ни парадоксально, но ограничение универсальности увеличивает свободу программиста.
Лекция сопровождается задачами.
Оглавление | - |
Тест 818 минут | - | |
Лекция 101 час 30 минут | Декларативность. Атрибуты и теги
В язык С# все в большей степени встраиваются декларативные элементы, позволяющие описать, что надо делать, не указывая, как это делается. В данной лекции подробно обсуждаются атрибуты – встроенные и создаваемые программистом, относящиеся к декларативным элементам – метаинформации, сопровождающей проект. Еще одна тема этой лекции – это самодокументирование кода и использование документируемых комментариев. Лекция сопровождается задачами.
Оглавление | - |
Тест 921 минута | - | |
Лекция 111 час 57 минут | Корректность и устойчивость программных систем
Программные системы во многих случаях – жизненно важные системы, от правильной работы которых может зависеть благосостояние и даже жизнь отдельного человека или целого коллектива. Элементами доказательного программирования должен владеть каждый профессиональный программист. В этой же лекции обсуждаются вопросы и профессионального стиля разработки программных проектов. Лекция сопровождается задачами.
Оглавление | - |
Тест 1021 минута | - | |
5 часов | - |