Опубликован: 18.01.2010 | Уровень: специалист | Доступ: платный | ВУЗ: Тверской государственный университет
Курс посвящен основам объектного программирования. В качестве языка программирования выбран язык C# - его версия 3.0, в качестве среды разработки программных проектов – Visual Studio 2008 Professional Edition и Framework .Net в версии 3.5. Вторая часть курса посвящена созданию программных систем, построенных на классах. Изложение сопровождается большим числом примеров. Курс является учебником и задачником. Задачи сопровождают каждую лекцию курса.
Современные программные системы проектируются и разрабатываются как системы, построенные на классах. Язык С# и среда разработки Visual Studio 2008 эффективно поддерживают такой стиль создания программных систем. Как правильно создавать классы, какие отношения существуют между классами системы, почему в языке С# появляются частные случаи классов – структуры, интерфейсы, перечисления, делегаты, универсальные классы – эти вопросы составляют основу этой части курса. Классы с событиями, документирование классов, обработка исключительных ситуаций, наконец, стиль профессионального программирования подробно обсуждается в данном курсе.
Цель: Формирование понимания того, как проектируются и программируются современные программные системы, основанные на классах, - главная цель этого курса. Хотелось бы, чтобы с первых проектов, создаваемых на С#, формировался стиль, присущий профессиональному программированию и та степень ответственности, присущая профессиональным программистам.

План занятий

ЗанятиеЗаголовок <<Дата изучения
-
Лекция 1
Классы
В лекции рассматриваются детали построения класса. Обсуждается роль полей, как глобальной информации, доступной всем методам класса.
-
Лекция 2
Проектирование класса
Обсуждаются две роли класса – типа данных и модуля. Рассматривается интерфейс – открытая часть класса, методы класса и их частные случаи – конструкторы, свойства, операции. Лекция сопровождается задачами на построение классов.
-
Тест 1
21 минута
-
Лекция 3
Структуры
Структуры, как частный случай класса, позволяют задавать развернутый тип данных. Подробно обсуждаются отличия ссылочных и развернутых типов данных, когда и где следует применять тот или иной тип – выбирать структуру или ссылочный класс. Лекция сопровождается задачами.
-
Тест 2
18 минут
-
Лекция 4
Перечисления
Перечисление позволяет задать конечное множество значений, которые могут получать объекты классы. Показано, как перечисление, заданное шкалой, позволяет строить эффективные по памяти и времени алгоритмы для широкого класса задач. Лекция сопровождается задачами.
-
Тест 3
21 минута
-
Лекция 5
Отношения между классами. Клиенты и наследники
Одна из важнейших тем этого курса рассматривает два основных типа отношений, существующих между классами – наследование и встраивание. Каждый класс создается в интересах своих будущих клиентов и потомков. Подробно обсуждается вопрос, когда следует применять наследование, а когда встраивание.
-
Лекция 6
Наследование и полиморфизм
Продолжается изучение особенностей наследования. Рассматривается важное понятие полиморфизма, характерное для семейства классов, связанных отношением наследования. Лекция сопровождается задачами.
-
Тест 4
24 минуты
-
Лекция 7
Интерфейсы. Множественное наследование
Многозначное слово интерфейс в данной лекции задает еще один важный частный случай класса – класс, заданный заголовками методов. Интерфейсы важны не только потому, что позволяю задать определенное поведение у потомков интерфейса, но и позволяют справиться с проблемой множественного наследования. Лекция сопровождается задачами.
-
Тест 5
18 минут
-
Лекция 8
Делегаты. Функциональный тип данных
Методы класса могут выступать в роли объектов. Методы с одинаковой сигнатурой принадлежат одному функциональному типу. Класс, позволяющий описать функциональный тип, называется делегатом. Различные вопросы, связанные с делегатами подробно рассматриваются в этой лекции.
-
Лекция 9
-
Лекция 10
Делегаты как свойства. Операции над делегатами
Рассматриваются операции, которые можно выполнять над объектами функционального типа. На примерах обсуждаются возможности комбинирования методов. Лекция сопровождается задачами.
-
Тест 6
21 минута
-
Лекция 11
Классы с событиями
Поля, методы и события – треугольник, полностью описывающий объекты класса. События позволяют специфицировать поведение объектов класса, поскольку каждый объект при возникновении события может иметь свой набор обработчиков этого события.
-
Лекция 12
Корректная работа с событиями
Обсуждаются проблемы, возникающие при совместной обработке события несколькими обработчиками. Рассматривается пример моделирования жизни города, в котором происходят события. Лекция сопровождается задачами.
-
Тест 7
21 минута
-
Лекция 13
Универсальность. Классы с родовыми параметрами
Универсальные классы, шаблоны, классы с родовыми параметрами – синонимичные понятия для класса, у которого есть параметры, задающие типы. Эти классы являются одним из мощнейших механизмов, позволяющих существенно сокращать объем кода объектно-ориентированных программных систем.
-
Лекция 14
Ограничения универсальности
Как ни парадоксально, но ограничение универсальности увеличивает свободу программиста. Рассматриваются способы ограничения универсальности. Лекция сопровождается задачами.
-
Тест 8
18 минут
-
Лекция 15
Декларативность. Атрибуты и теги
В язык С# все в большей степени встраиваются декларативные элементы, позволяющие описать, что надо делать, не указывая, как это делается. В этой лекции изучаются такие элементы декларативного стиля как атрибуты и теги.
-
Лекция 16
Встроенные и заданные программистом атрибуты. Документируемые комментарии
В данной лекции подробно обсуждаются атрибуты – встроенные и создаваемые программистом, относящиеся к декларативным элементам – метаинформации, сопровождающей проект. Еще одна тема этой лекции – это документирование кода и использование тегов - документируемых комментариев. Лекция сопровождается задачами.
-
Тест 9
21 минута
-
Лекция 17
Корректность и устойчивость программных систем
Программные системы во многих случаях – жизненно важные системы, от правильной работы которых может зависеть благосостояние и даже жизнь отдельного человека или целого коллектива. Элементами доказательного программирования должен владеть каждый профессиональный программист.
-
Лекция 18
Искусство отладки
Отладка рассматривается как процесс, направленный на достижение корректности программной системы. Обсуждаются средства, предоставляемые языком C# и средой разработки для отладки программных систем.
-
Лекция 19
Обработка исключительных ситуаций
Обработка исключительных ситуаций рассматривается как процесс, направленный на достижение устойчивости программной системы. В этой же лекции обсуждаются вопросы профессионального стиля разработки программных проектов. Подводятся итоги курса.
-
Тест 10
21 минута
-
Лекция 20
Практикум 1. Установка Visual Studio 2010
В практикуме рассказывается процесс установки программного продукта.
Оглавление
    -
    Лекция 21
    Практикум 2. Создание простого приложения в Visual Studio 2010
    В практикуме показывается пример создания простой программы в Visual Studio 2010 на языке C#
    Оглавление
      -
      Лекция 22
      Практикум 3. Разработка программ в Visual Studio 2010
      В практикуме даются примеры разработки различных проектов.
      Оглавление
        -
        Лекция 23
        Практикум 4. Взаимодействие проектов
        В практикуме даются примеры взаимодействия: C# и C++, C3 и Visual Basic.
        Оглавление
          -
          5 часов
          -
          Федор Антонов
          Федор Антонов

          Здравствуйте!

          Записался на ваш курс, но не понимаю как произвести оплату.

          Надо ли писать заявление и, если да, то куда отправлять?

          как я получу диплом о профессиональной переподготовке?

          Илья Ардов
          Илья Ардов

          Добрый день!

          Я записан на программу. Куда высылать договор и диплом?

          Данила Некрасов
          Данила Некрасов
          Россия, Пермь, ПНИПУ
          Сергей Федоров
          Сергей Федоров
          Россия