Information

Created: 02.10.2011 | Level: for all | Access: paid | University: Тверской государственный университет
Курс представляет первую часть фундаментального учебника "Почувствуй класс. Учимся программировать хорошо с объектами и контрактами". В отличие от традиционного подхода введение в основы программирования начинается с рассмотрения объектов, классов, интерфейсов и контрактов. В этой части курса рассматриваются также основы логики и внутреннее устройство компьютера. В курсе излагаются основы объектно-ориентированного программирования (ООП). В этой вводной части мы начнем наше путешествие в мир программирования с самых его основ: объектов, классов, интерфейсов и контрактов. Будут рассмотрены поддерживающие концепции, включающие логику и внутреннее устройство компьютера, которые каждый программист должен знать.
Данный курс определяет строительные блоки программы, от объектов и классов до интерфейсов, управляющих структур и присваивания. Особое внимание уделяется понятию контракта. Студенты учатся на абстрактном, но вместе с тем точном описании используемых ими модулей и должны применять такой же интерфейс для создаваемых модулей. В лекции 5 вводятся ключевые элементы пропозиционального исчисления и исчисления предикатов. Оба исчисления создают основу дальнейших обсуждений. Возвращаясь к программированию, в последующих лекциях мы рассматриваем создание и структуру объектов. В этих лекциях устанавливается моделирующая мощь объектов и необходимость при построении объектной модели отражения реальной структуры моделируемой внешней системы. После введения концепций структурирования программы разбирается присваивание, ссылки, ссылочное присваивание и интересные задачи, возникающие при работе со связанными списками.

План занятий

LessonTitle <<Date
-
Lecture 1
2 hours 14 minutes
Введение
Contents
    -
    Lecture 2
    35 minutes
    Индустрия чистых идей
    В первой лекции вводится понятие компьютера, как машины, способной обрабатывать информацию. Рассматривается роль компьютеров в современном мире, различие между данными и информацией.
    Contents
      -
      Тест 1
      24 minutes
      -
      Lecture 3
      51 minute
      Работа с объектами
      Материалы второй лекции позволяют написать первые содержательные программы на языке Eiffel, используя мощную программную систему Traffic, поддерживающую изучение данного курса. Подход, использующий с самого начала работу с объектами, интерфейсами и контрактами, отличает этот курс от традиционного изучения основ программирования, начинающих обучение с программ типа "Здравствуй, мир!".
      Contents
        -
        Тест 2
        24 minutes
        -
        Lecture 4
        40 minutes
        Основы структуры программ
        Предыдущая лекция позволила нам получить первое представление о программах. Теперь мы готовы к введению новых концепций. Давайте ближе познакомимся с некоторыми частями программы, уже использованными, но не получившими пока собственные имена.
        Contents
          -
          Тест 3
          24 minutes
          -
          Lecture 5
          1 hour 11 minutes
          Интерфейс класса
          В предыдущих лекциях мы начали строить некоторое ПО, основываясь на существующих элементах. Теперь мы собираемся сделать нечто большее, рассмотрев, как можно использовать ранее написанные классы. Это даст возможность по-новому взглянуть на понятие класс – фундамент всего дальнейшего программирования. Мы введем в рассмотрение новые концепции – интерфейса и контракта.
          Contents
            -
            Тест 4
            24 minutes
            -
            Lecture 6
            2 hours 21 minute
            Логики вполне достаточно
            Первая часть лекции вводит булеву алгебру в форме пропозиционального исчисления, которое имеет дело с базисными высказываниями, включающими специфические переменные. Вторая часть расширяет обсуждение до логики предикатов, позволяющей выражать свойства произвольного множества значений. Помимо классических логических операций рассматриваются полустрогие операции, учитывающие особенности применения булевских операций в программировании.
            Contents
              -
              Тест 5
              24 minutes
              -
              Lecture 7
              1 hour 45 minutes
              Создание объектов и выполняемых систем
              После экскурсии в математические основания вернемся к технике программирования. Обсуждаются вопросы создания объектов и процесс выполнения программной системы.
              Contents
                -
                Тест 6
                24 minutes
                -
                Lecture 8
                3 hours 49 minutes
                Структуры управления
                В седьмой лекции рассматриваются классические структуры управления – последовательность, выбор, цикл. Ранее введенное понятие контракта позволяет взглянуть на эти структуры с новой точки зрения, рассматривая их корректность, гарантирующую выполнение постусловия. Приводится обоснование идей структурного программирования. В лекции вводится понятие исключительной ситуации и дается введение в обработку исключений.
                Contents
                  -
                  Тест 7
                  24 minutes
                  -
                  Lecture 9
                  49 minutes
                  Подпрограммы, функциональная абстракция, скрытие информации
                  Управляющие структуры предыдущей лекции — цикл, составной и условный операторы, их варианты — дают нам базисные механизмы планирования порядка выполнения операторов. Если бы они были единственными средствами, то нам пришлось бы задавать поток управления со всеми деталями. Для сложных программ глубина вложенности стала бы главным препятствием на пути понимания программы.
                  Contents
                    -
                    Тест 8
                    24 minutes
                    -
                    Lecture 10
                    1 hour 57 minutes
                    Переменные, присваивание и ссылки
                    Программы используют имена или сущности для обозначения значений периода выполнения. Отличительным свойством большинства программ является то, что некоторые сущности, называемые "переменными сущностями" или просто переменными, могут обозначать значения, изменяющиеся во время выполнения. Предыдущие примеры неявно исходили из этого предположения, хотя базисная операция — присваивание — до сих пор формально еще не введена. Эта концепция, обманчиво простая с первого взгляда, полна удивительных следствий. Мы будем изучать ее в этой главе наряду с несколькими связанными приемами, в частности, с использованием ссылок, определяющих структуру объектов в период выполнения.
                    Contents
                      -
                      Тест 9
                      24 minutes
                      -
                      Дополнительный материал 1
                      -
                      Дополнительный материал 2
                      13 minutes
                      -
                      5 hours
                      -