Автор: Владимир Биллиг | Тверской государственный университет
Форма обучения:
дистанционная
Стоимость самостоятельного обучения:
бесплатно
Доступ:
свободный
Документ об окончании:
 
Уровень:
Специалист
Длительность:
28:26:00
Студентов:
30399
Выпускников:
1806
Качество курса:
4.31 | 3.69
В учебном курсе представлено полное описание языка C#. Подробно рассматриваются классы, структуры, интерфейсы, делегаты. Особое внимание уделяется наследованию и универсальным классам.
Рассматривается среда разработки Visual Studio .Net и классы библиотеки FCL каркаса Framework .Net. Изложение сопровождается большим числом примеров. В учебном курсе представлено полное описание языка C#. Оно включает рассмотрение встроенных типов данных, управляющих структур языка, процедур, рекурсии, строк, массивов. Основное внимание уделяется классам, структурам, интерфейсам, делегатам, событиям. Особое внимание уделяется изучению отношений между классами – наследованию и встраиванию. Подробно рассмотрена универсальность и ограниченная универсальность классов – новинка, появившаяся в последней версии C#. Изучение основ программирования на C# ведется с позиций объектной технологии, где понятие класса рассматривается как тип данных и как модуль – архитектурная единица построения программных систем. Обсуждаются вопросы корректности программных систем, их устойчивости, повторного использования и расширяемости. Рассматривается среда разработки Visual Studio .Net, классы библиотеки FCL, организация интерфейса в Windows-проектах, рисование в формах, создание семейства графических классов. Изложение сопровождается большим числом примеров.
ISBN: 978-5-9556-0050-5
 

План занятий

Занятие
Заголовок <<
Дата изучения
Лекция 1
36 минут
Visual Studio .Net, Framework .Net
Бренд .Net. Visual Studio .Net - открытая среда разработки. Каркас Framework .Net. Библиотека классов FCL - статический компонент каркаса. Общеязыковая исполнительная среда CLR - динамический компонент каркаса. Управляемый код. Общеязыковые спецификации CLS и совместимые модули.
Оглавление
    -
    Лекция 2
    52 минуты
    Язык C# и первые проекты
    Создание языка. Его особенности. Решения, проекты, пространства имен. Консольные и Windows-приложения C#, построенные по умолчанию.
    Оглавление
      -
      Лекция 3
      1 час 7 минут
      Система типов языка С#
      Общий взгляд. Система типов. Типы-значения и ссылочные типы. Встроенные типы. Сравнение с типами C++. Типы или классы? И типы, и классы! Преобразования переменных в объекты и vice versa. Операции "упаковать" и "распаковать". Преобразования типов. Преобразования внутри арифметического типа. Преобразования строкового типа. Класс Convert и его методы. Проверяемые преобразования. Управление проверкой арифметических преобразований.
      Оглавление
        -
        Лекция 4
        46 минут
        Преобразования типов
        Преобразования типов. Преобразования внутри арифметического типа. Преобразования строкового типа. Класс Convert и его методы. Проверяемые преобразования. Управление проверкой арифметических преобразований.
        Оглавление
          -
          Лекция 5
          34 минуты
          Переменные и выражения
          Объявление переменных. Синтаксис объявления. Инициализация. Время жизни и область видимости. Где объявляются переменные? Локальные и глобальные переменные. Есть ли глобальные переменные в C#? Константы.
          Оглавление
            -
            Лекция 6
            47 минут
            Выражения. Операции в выражениях
            Построение выражений. Операции и их приоритеты. Описание операций.
            Оглавление
              -
              Лекция 7
              29 минут
              Присваивание и встроенные функции
              Присваивание. Новинка C# - определенное присваивание. Классы Math, Random и встроенные функции.
              Оглавление
                -
                Лекция 8
                35 минут
                Операторы языка C#
                Операторы языка C#. Оператор присваивания. Составной оператор. Пустой оператор. Операторы выбора. If-оператор. Switch-оператор. Операторы перехода. Оператор goto. Операторы break, continue. Операторы цикла. For-оператор. Циклы while. Цикл foreach.
                Оглавление
                  -
                  Лекция 9
                  57 минут
                  Процедуры и функции - методы класса
                  Процедуры и функции - две формы функционального модуля. Чем отличаются эти формы? Процедуры и функции - это методы класса. Описание методов (процедур и функций). Синтаксис. Атрибуты доступа. Формальные аргументы. Статус аргументов. Тело методов. Вызов процедур и функций. Фактические аргументы. Семантика вызова. Поля класса или аргументы метода? Поля класса или функции без аргументов? Проектирование класса Account. Функции с побочным эффектом. Перегрузка методов.
                  Оглавление
                    -
                    Лекция 10
                    50 минут
                    Корректность методов. Рекурсия
                    Корректность метода. Спецификации. Триады Хоара. Предусловие метода. Постусловие метода. Корректность метода по отношению к предусловию и постусловию. Частичная корректность. Завершаемость. Полная корректность. Инвариант цикла. Вариант цикла. Подходящий инвариант. Корректность циклов. Рекурсия. Прямая и косвенная рекурсия. Стратегия "разделяй и властвуй". Сложность рекурсивных алгоритмов. Задача "Ханойские башни". Быстрая сортировка Хоара.
                    Оглавление
                      -
                      Лекция 11
                      41 минута
                      Массивы языка C#
                      Общий взгляд на массивы. Сравнение с массивами C++. Почему массивы C# лучше, чем массивы C++. Виды массивов - одномерные, многомерные и изрезанные. Динамические массивы.
                      Оглавление
                        -
                        Лекция 12
                        44 минуты
                        Класс Array и новые возможности массивов
                        Семейство классов-массивов. Родительский класс Array и наследуемые им интерфейсы. Новые возможности массивов в C#. Как корректно работать с массивами объектов?
                        Оглавление
                          -
                          Лекция 13
                          31 минута
                          Символы и строки постоянной длины в C#
                          Общий взгляд. Строки в C++. Строки в C#. Строки постоянной и переменной длины. Классы char, char[].
                          Оглавление
                            -
                            Лекция 14
                            46 минут
                            Строки C#. Классы String и StringBuilder
                            Строки C#. Класс String. Изменяемые и неизменяемые строковые классы. Классы Net Framework, расширяющие строковый тип. Класс StringBuilder.
                            Оглавление
                              -
                              Лекция 15
                              56 минут
                              Регулярные выражения
                              Регулярные выражения. Пространство RegularExpressions и его классы. Регулярные выражения и языки. Теория регулярных выражений. Практика применения регулярных выражений. Разбор текстов и поиск по образцу. Свойства и методы класса Regex и других классов, связанных с регулярными выражениями. Примеры применения регулярных выражений.
                              Оглавление
                                -
                                Лекция 16
                                1 час 10 минут
                                Классы
                                Две роли класса в ООП. Синтаксис описания класса. Поля и методы класса. Конструкторы и деструкторы. Статические поля и методы. Статические конструкторы. Поля только для чтения. Закрытые поля. Стратегии доступа к полям класса. Процедуры свойства. Индексаторы. Примеры.
                                Оглавление
                                  -
                                  Лекция 17
                                  38 минут
                                  Структуры и перечисления
                                  Понятие развернутого и ссылочного типа. Структуры - реализация развернутых классов. Синтаксис структур. Сравнение структур и классов. Встроенные структуры. Перечисление - частный случай класса. Особенности перечислений. Примеры.
                                  Оглавление
                                    -
                                    Лекция 18
                                    1 час 2 минуты
                                    Отношения между классами. Клиенты и наследники
                                    Классы. Отношения между классами. Отношение клиенты - поставщики. Отношение наследования. Единичное наследование. Родители и наследники. Предки и потомки. Что наследуют потомки. Что могут изменить потомки. Одностороннее присваивание. Контроль типов и связывание - статическое и динамическое. Полиморфизм. Проектирование классов. Абстрактные классы. Классы поведения.
                                    Оглавление
                                      -
                                      Лекция 19
                                      1 час 10 минут
                                      Интерфейсы. Множественное наследование
                                      Интерфейсы как частный случай класса. Множественное наследование. Проблемы. Множественное наследование интерфейсов. Встроенные интерфейсы. Интерфейсы IComparable, ICloneable, ISerializable. Поверхностное и глубокое клонирование и сериализация. Сохранение и обмен данными.
                                      Оглавление
                                        -
                                        Лекция 20
                                        1 час 11 минут
                                        Функциональный тип в C#. Делегаты
                                        Новое слово для старого понятия. Функциональный тип. Функции высших порядков. Вычисление интеграла и сортировка. Два способа взаимодействия частей при построении сложных систем. Функции обратного вызова. Наследование и функциональные типы. Сравнение двух подходов. Класс Delegate. Методы и свойства класса. Операции над делегатами. Комбинирование делегатов. Список вызовов.
                                        Оглавление
                                          -
                                          Лекция 21
                                          57 минут
                                          События
                                          Классы с событиями. Общий взгляд. Класс Sender и классы Receivers. Класс Sender. Как объявляются события? Делегаты и события. Классы с событиями, допускаемые .Net Framework. Класс EventArgs и его потомки. Входные и выходные аргументы события. Класс Receiver. Обработчик события. Встраивание объекта Sender. Связывание обработчика с событием. Отключение обработчика. Взаимодействие объектов sender и receiver. События - поля или процедуры-свойства? Динамическое связывание событий с их обработчиками.
                                          Оглавление
                                            -
                                            Лекция 22
                                            1 час 16 минут
                                            Универсальность. Классы с родовыми параметрами
                                            Наследование и универсальность - взаимно дополняющие базовые механизмы создания семейства классов. Родовые параметры универсального класса. Синтаксис универсального класса. Родовое порождение экземпляров универсального класса. Методы с родовыми параметрами. Ограниченная универсальность - ограничения, накладываемые на родовые параметры. Виды ограничений. Ограничение универсальности - это свобода действий. Примеры. Родовые параметры и частные случаи классов: структуры, интерфейсы, делегаты. Универсальность и Framework .Net.
                                            Оглавление
                                              -
                                              Лекция 23
                                              1 час 20 минут
                                              Отладка и обработка исключительных ситуаций
                                              Корректность и устойчивость. Cпецификация системы. Корректность и устойчивость программных систем. Исключительные ситуации. Обработка исключительных ситуаций. Жизненный цикл программной системы. Три закона программотехники. Отладка. Создание надежного кода. Искусство отладки. Отладка и инструментальная среда Visual Studio .Net.
                                              Оглавление
                                                -
                                                Лекция 24
                                                1 час 49 минут
                                                Организация интерфейса и рисование в формах
                                                Организация интерфейса. Шаблоны форм. Заселение формы элементами управления. Классы элементов управления. Примеры классов. Класс ListBox. Наследование форм. Организация меню, главное меню. Инструментальные панели с кнопками. Рисование в формах. Классы рисования. Кисти и перья.
                                                Оглавление
                                                  -
                                                  Лекция 25
                                                  42 минуты
                                                  Финальный проект

                                                  Оглавление
                                                    -
                                                    1 час 40 минут
                                                    -
                                                    Александр Галабудник
                                                    Александр Галабудник

                                                    Не обнаружил проекты, которые используются в примерах в лекции, также не увидел список задач.

                                                    Александра Гусева
                                                    Александра Гусева