Information

Created: 01.12.2009 | Level: specialist | Access: free
Object Programming Classes in C# 3.0 Курс посвящен основам объектного программирования. В качестве языка программирования выбран язык C# - его версия 3.0, в качестве среды разработки программных проектов – Visual Studio 2008 Professional Edition и Framework .Net в версии 3.5. В курсе рассматривается создание программных систем, построенных на классах. Изложение сопровождается большим числом примеров. Курс является учебником и задачником. Задачи сопровождают каждую лекцию курса.
Современные программные системы проектируются и разрабатываются как системы, построенные на классах. Язык С# и среда разработки Visual Studio 2008 эффективно поддерживают такой стиль создания программных систем. Как правильно создавать классы, какие отношения существуют между классами системы, почему в языке С# появляются частные случаи классов – структуры, интерфейсы, перечисления, делегаты, универсальные классы – эти вопросы составляют основу этой части курса. Классы с событиями, документирование классов, обработка исключительных ситуаций, наконец, стиль профессионального программирования подробно обсуждается в данном курсе.
Goal: Формирование понимания того, как проектируются и программируются современные программные системы, основанные на классах, - главная цель этого курса. Хотелось бы, чтобы с первых проектов, создаваемых на С#, формировался стиль, присущий профессиональному программированию и та степень ответственности, присущая профессиональным программистам.
| | Share | | Download e-book

План занятий

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