Information

Created: 18.08.2004 | Level: for all | Access: free | University: Национальный исследовательский ядерный университет «МИФИ»
Introduction to Programming Theory: Object-Oriented Method Курс является вводным в объектно-ориентированное программирование и теоретический фундамент программирования. Курс лекций охватывает основные разделы программирования в приложении к объектно-ориентированным языкам программирования (теория вычислений, представление синтаксиса и семантики выражений, теория типов и др.).
Курс проиллюстрирован примерами, связывающими фундаментальные понятия теории с особенностями программирования на языке C# (типизация, наследование, инкапсуляция, полиморфизм, динамическое связывание и др.) и языке SML («ленивые» вычисления, расширенный полиморфизм, выводимость типов и т.д.). Базовые аспекты профессионального программирования излагаются в сравнении языков C# и SML на единой платформе Microsoft .NET.Сравнительное изучение языков программирования «нового поколения» SML и C# дает возможность более глубоко проникнуть в суть процесса создания программных систем.
Goal: Сравнительный анализ функционального и объектно-ориентированного подходов к программированию на основе универсальной среды вычислений.
Prerequisites: Основы теории программирования (ламбда-исчисление, комбинаторная логика, теория вычислений Д.Скотта, абстрактные машины) и практического программирования на языке SML (синтаксис, семантика, типизация, рекурсия).

План занятий

LessonTitle <<Date
-
Lecture 1
21 minute
Вступительная лекция
Обзор истории развития научных направлений, сформировавших теоретическое основание курса.
Contents
    -
    Lecture 2
    27 minutes
    Объектно-ориентированный подход к программированию
    Лекция посвящена роли и месту объектно-ориентированного подхода к программированию в общей классификации, его достоинствам и недостаткам, неформальному определению важнейших концепций объектно-ориентированного программирования.
    Contents
      -
      Тест 1
      15 minutes
      -
      Lecture 3
      41 minute
      Платформа.NET и ее применение для объектно-ориентированного подхода к программированию
      В лекции рассматриваются вопросы, относящиеся к идеологии, технологии и обзору практических возможностей создания программных систем на основе Microsoft .NET – подхода к проектированию и реализации программного обеспечения. При этом подход .NET обсуждается в приложении к специфике объектно-ориентированного подхода к программированию.
      Contents
        -
        Тест 2
        15 minutes
        -
        Lecture 4
        50 minutes
        Основные понятия языка программирования C#
        В лекции обсуждаются вопросы, относящиеся к понятийному аппарату, истории развития, выразительным возможностям синтаксиса и особенностям реализации языка C# в сравнении с другими объектно-ориентированными языками программирования.
        Contents
          -
          Тест 3
          15 minutes
          -
          Самостоятельная работа 1
          10 minutes
          Разработка элементарных программ на языке программирования C#
          Цель: знакомство с базовыми особенностями языка программирования C# и разработки программ с использованием среды Microsoft Visual Studio .NET
          Contents
            -
            Lecture 5
            24 minutes
            Семантика основных конструкций языка программирования C#
            В данной лекции будут рассмотрены вопросы, относящиеся к понятийному аппарату и выразительным возможностям семантического представления формальных теорий и языков программирования. При этом основное внимание будет уделено сопоставлению семантики языков объектно-ориентированного и функционального программирования. В качестве примеров языков программирования будут выступать уже знакомый нам по предыдущему курсу язык SML и изучаемый нами язык C#.
            Contents
              -
              Тест 4
              15 minutes
              -
              Lecture 6
              31 minute
              Основные понятия объектно-ориентированного подхода: объекты, классы и методы
              В данной лекции будут рассмотрены вопросы, относящиеся к идеологии, методологии и практике моделирования основных элементов объектно-ориентированного подхода к программированию посредством двухуровневой концептуализации. Особенности практической реализации основных аспектов концепции ООП описаны на примере языка программирования C#.
              Contents
                -
                Тест 5
                15 minutes
                -
                Самостоятельная работа 2
                8 minutes
                Объекты и классы
                Цель: ознакомление с основой объектного подхода в языке C#, созданием объектов, классов и механизмом наследования.
                Contents
                  -
                  Lecture 7
                  31 minute
                  Теория типов и типизация в .NET
                  В данной лекции будут рассмотрены вопросы, относящиеся к истории развития, идеологии, математическому основанию и обзору возможностей типизированной комбинаторной логики и теории типов - математической формализации, моделирующей типы выражений в языках программирования.
                  Contents
                    -
                    Тест 6
                    15 minutes
                    -
                    Lecture 8
                    34 minutes
                    Концепция наследования и ее реализация в языке C#
                    В данной лекции будут рассмотрены вопросы, относящиеся к идеологии, математическому основанию и обзору возможностей наследования - одной из фундаментальных концепций, на которых базируется объектно-ориентированное программирование.
                    Contents
                      -
                      Тест 7
                      15 minutes
                      -
                      Lecture 9
                      34 minutes
                      Концепция инкапсуляции и ее реализация в языке C#
                      В данной лекции будут рассмотрены вопросы, относящиеся к идеологии, математическому основанию и обзору возможностей инкапсуляции - одной из фундаментальных концепций, на которых базируется объектно-ориентированное программирование.
                      Contents
                        -
                        Тест 8
                        15 minutes
                        -
                        Lecture 10
                        27 minutes
                        Концепция полиморфизма и ее реализация в языке C#
                        В данной лекции будут рассмотрены вопросы, относящиеся к идеологии, математическому основанию и обзору возможностей полиморфизма - одной из фундаментальных концепций, на которых основано объектно-ориентированное программирование.
                        Contents
                          -
                          Тест 9
                          15 minutes
                          -
                          Самостоятельная работа 3
                          7 minutes
                          Полиморфные методы
                          Цель: Ознакомление с особенностями создания и применения полиморфных методов в языке программирования C#.
                          Contents
                            -
                            Lecture 11
                            29 minutes
                            Расширенные возможности полиморфизма в языке C#
                            В данной лекции будут рассмотрены вопросы, относящиеся к идеологии, математическому основанию и обзору расширенных возможностей полиморфизма - одной из фундаментальных концепций, на которых основано объектно-ориентированное программирование.
                            Contents
                              -
                              Тест 10
                              15 minutes
                              -
                              Самостоятельная работа 4
                              6 minutes
                              Расширенные возможности языка программирования C#
                              Цель: ознакомление с расширенными возможностями языка программирования C# (интерфейсы и делегаты).
                              Contents
                                -
                                Lecture 12
                                48 minutes
                                Событийно управляемое программирование в .NET
                                В данной лекции будут рассмотрены вопросы, относящиеся к идеологии, математическому основанию и обзору возможностей событийно управляемого проектирования и реализации программных систем - одного из важнейших аспектов современного объектно-ориентированного программирования.
                                Contents
                                  -
                                  Тест 11
                                  15 minutes
                                  -
                                  Самостоятельная работа 5
                                  10 minutes
                                  Событийно-ориентированное программирование
                                  Цель: ознакомление с особенностями реализации механизмов событийно-ориентированного программирования в языке C# (механизм обработки событий, исключительные ситуации).
                                  Contents
                                    -
                                    Lecture 13
                                    26 minutes
                                    Компонентное программирование в .NET
                                    В данной лекции будут рассмотрены вопросы, относящиеся к идеологии и обзору возможностей компонентного проектирования и реализации программных систем - одного из важнейших и наиболее передовых подходов в современном программировании.
                                    Contents
                                      -
                                      Тест 12
                                      15 minutes
                                      -
                                      Самостоятельная работа 6
                                      6 minutes
                                      Проектирование и реализация гетерогенных приложений
                                      Цель: знакомство с проектированием и реализацией гетерогенных приложений для платформы .NET на примере совместного проекта из компонент на языках SML и C#.
                                      Contents
                                        -
                                        5 hours
                                        -