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

План занятий

ЗанятиеЗаголовок <<Дата изучения
-
Лекция 1
Практикум 1. Установка Visual Studio 2010
В практикуме рассказывается процесс установки программного продукта.
Оглавление
    -
    Лекция 2
    Классы
    В лекции рассматриваются все детали проектирования и построения класса. Обсуждается роль полей, как глобальной информации, доступной всем методам класса. Рассматривается интерфейс – открытая часть класса, методы класса и их частные случаи – конструкторы, свойства, операции. Лекция сопровождается задачами на построение классов.
    Оглавление
      -
      Тест 1
      21 минута
      -
      Лекция 3
      Структуры
      Структуры, как частный случай класса, позволяют задавать развернутый тип данных. Подробно обсуждаются отличия ссылочных и развернутых типов данных, когда и где следует применять тот или иной тип – выбирать структуру или ссылочный класс. Лекция сопровождается задачами.
      Оглавление
        -
        Тест 2
        18 минут
        -
        Лекция 4
        Перечисления
        Еще один важный частный случай класса – перечисление позволяет задать разработчику конечное множество значений, которые могут получать объекты классы. Показано, как перечисление, заданное шкалой, позволяет строить эффективные по памяти и времени алгоритмы для широкого класса задач. Лекция сопровождается задачами.
        Оглавление
          -
          Тест 3
          21 минута
          -
          Лекция 5
          1 час 45 минут
          Отношения между классами. Клиенты и наследники
          Одна из важнейших тем этого курса рассматривает два основных типа отношений, существующих между классами – наследование и встраивание. Каждый класс создается в интересах своих будущих клиентов и потомков. Подробно обсуждается вопрос, когда следует применять наследование, а когда встраивание. Лекция сопровождается задачами.
          Оглавление
            -
            Тест 4
            24 минуты
            -
            Лекция 6
            1 час 24 минуты
            Интерфейсы. Множественное наследование
            Многозначное слово интерфейс в данной лекции задает еще один важный частный случай класса – класс, заданный заголовками методов. Интерфейсы важны не только потому, что позволяют задать определенное поведение у потомков интерфейса, но и справиться с проблемой множественного наследования. Лекция сопровождается задачами.
            Оглавление
              -
              Тест 5
              18 минут
              -
              Лекция 7
              1 час 50 минут
              Делегаты. Функциональный тип данных
              Функции могут выступать в роли объектов. Функции с одинаковой сигнатурой принадлежат одному функциональному типу. Класс, позволяющий описать функциональный тип, называется делегатом. Различные вопросы, связанные с делегатами подробно рассматриваются в этой лекции. Лекция сопровождается задачами.
              Оглавление
                -
                Тест 6
                21 минута
                -
                Лекция 8
                1 час 21 минута
                Классы с событиями
                Поля, методы и события – треугольник, полностью описывающий объекты класса. События позволяют специфицировать поведение объектов класса, поскольку каждый объект при возникновении события может иметь свой набор обработчиков этого события. Лекция сопровождается задачами.
                Оглавление
                  -
                  Тест 7
                  21 минута
                  -
                  Лекция 9
                  1 час 34 минуты
                  Универсальность. Классы с родовыми параметрами
                  Универсальные классы, шаблоны, классы с родовыми параметрами – синонимичные понятия для класса, у которого есть параметры, задающие типы. Эти классы являются одним из мощнейших механизмов, позволяющих существенно сокращать объем кода объектно-ориентированных программных систем. Как ни парадоксально, но ограничение универсальности увеличивает свободу программиста. Лекция сопровождается задачами.
                  Оглавление
                    -
                    Тест 8
                    18 минут
                    -
                    Лекция 10
                    1 час 30 минут
                    Декларативность. Атрибуты и теги
                    В язык С# все в большей степени встраиваются декларативные элементы, позволяющие описать, что надо делать, не указывая, как это делается. В данной лекции подробно обсуждаются атрибуты – встроенные и создаваемые программистом, относящиеся к декларативным элементам – метаинформации, сопровождающей проект. Еще одна тема этой лекции – это самодокументирование кода и использование документируемых комментариев. Лекция сопровождается задачами.
                    Оглавление
                      -
                      Тест 9
                      21 минута
                      -
                      Лекция 11
                      1 час 57 минут
                      Корректность и устойчивость программных систем
                      Программные системы во многих случаях – жизненно важные системы, от правильной работы которых может зависеть благосостояние и даже жизнь отдельного человека или целого коллектива. Элементами доказательного программирования должен владеть каждый профессиональный программист. В этой же лекции обсуждаются вопросы и профессионального стиля разработки программных проектов. Лекция сопровождается задачами.
                      Оглавление
                        -
                        Тест 10
                        21 минута
                        -
                        5 часов
                        -
                        Федор Антонов
                        Федор Антонов
                        Оплата и обучение
                        Илья Ардов
                        Илья Ардов
                        Зачисление
                        Михаил Васильев
                        Михаил Васильев
                        Россия, г. Санкт-Петербург