онлайн-курс
5

Основы программирования на языке C#

45 видеоуроков + 23 задания
учебный чат
старт в любое время
Удостоверение ИТМО
logo course
Курс для начинающих C#-разработчиков, дающий прочную базу для старта в профессии. Вы освоите синтаксис языка, ключевые концепции ООП и навыки профессиональной разработки в среде .NET
  • Синтаксис C# и принципы объектно-ориентированного программирования
  • Создание консольных приложений в среде Visual Studio и платформе .NET
  • Работа с коллекциями, LINQ, многопоточностью и асинхронностью
  • Прочная база для перехода к WPF, веб- и прикладной разработке на C#
Профессия разработчика / программиста по-прежнему не покидает верхних строчек рейтингов самых перспективных и высокооплачиваемых — как в России, так и во всем мире. Рынок технологий непрерывно развивается, и IT-специалисты требуются всегда
saialy
Онлайн-курс ИТМО поможет качественно улучшить профессиональную жизнь:
Начинающему программисту
Если C# — ваш первый язык, вы получите прочную базу: алгоритмы, синтаксис, ООП, работа в Visual Studio. После курса вы готовы писать собственные консольные приложения в среде .NET
Программисту, переходящему на C#
Если у вас уже есть опыт с другим языком, вы быстро освоите специфику C# и .NET: объектно-ориентированную модель, коллекции и LINQ, многопоточность и асинхронное программирование
.NET разработчику
Вы углубите понимание принципов построения приложений на C#, отточите работу с делегатами, событиями, многопоточностью и асинхронностью, и подготовитесь к более продвинутым задачам в экосистеме .NET
Начинающему программисту
Программисту, переходящему на C#
.NET разработчику
Если C# — ваш первый язык, вы получите прочную базу: алгоритмы, синтаксис, ООП, работа в Visual Studio. После курса вы готовы писать собственные консольные приложения в среде .NET
Если у вас уже есть опыт с другим языком, вы быстро освоите специфику C# и .NET: объектно-ориентированную модель, коллекции и LINQ, многопоточность и асинхронное программирование
Вы углубите понимание принципов построения приложений на C#, отточите работу с делегатами, событиями, многопоточностью и асинхронностью, и подготовитесь к более продвинутым задачам в экосистеме .NET
author
author
Швец Екатерина Сергеевна
Автор курса

Программист и преподаватель с опытом более 10 лет в преподавании и более 20 лет в разработке автоматизированных систем для бизнеса. Эксперт в сфере промышленных систем управления и веб-приложений. Участвовала в разработке плагинов и приложений в среде Autodesk Revit для крупного разработчика ПО в сфере жилой недвижимости. Автор онлайн-курсов по автоматизации проектирования BIM (ТИМ) в Dynamo и Python, разработке плагинов для Autodesk Revit на C# (Revit API, WPF, MVVM)

Программа онлайн курса
1
Тема 1. Общие сведения о языке C#
    Занятия:
  • Краткая история развития языка C#
  • Задачи, решаемые при помощи C#
  • Структура программы
  • Идентификаторы
  • Типы данных
  • Типы значений и ссылочные типы
  • Задания:
  • Установка среды разработки Microsoft Visual Studio
2
Тема 2. Первая программа на языке C#
    Занятия:
  • Операторы присваивания
  • Команды ввода и вывода
  • Арифметические операторы
  • Модуль Math
  • Преобразование типов
  • Культура кода
  • Соглашения по именованию переменных
  • Линейные алгоритмы
  • Задания:
  • Настройка среды разработки
  • Создание консольного приложения линейной структуры с использованием простейших арифметических операций
3
Тема 3. Условные операторы
    Занятия:
  • Логические выражения
  • Логические операции
  • Условный оператор if
  • Условный оператор switch
  • Перечисления enum
  • Тернарный оператор
  • Алгоритмы с ветвлением
  • Задания:
  • Создание консольного приложения разветвляющейся структуры с использованием условного оператора if
  • Создание консольного приложения разветвляющейся структуры с использованием условного оператора switch
  • Создание консольного приложения разветвляющейся структуры с использованием тернарного оператора
  • Отладка приложения
  • Создание и настройка github-репозитория Занятия:
  • Логические выражения
  • Логические операции
  • Условный оператор if
  • Условный оператор switch
  • Перечисления enum
  • Тернарный оператор
  • Алгоритмы с ветвлением
  • Задания:
  • Создание консольного приложения разветвляющейся структуры с использованием условного оператора if
  • Создание консольного приложения разветвляющейся структуры с использованием условного оператора switch
  • Создание консольного приложения разветвляющейся структуры с использ
4
Тема 4. Операторы циклов
    Занятия:
  • Оператор цикла for
  • Оператор цикла while
  • Оператор цикла do…while
  • Задания:
  • Создание консольного приложения циклической структуры с использованием оператора цикла for
  • Создание консольного приложения циклической структуры с использованием оператора цикла while
  • Создание консольного приложения циклической структуры с использованием оператора цикла do…while
5
Тема 5. Массивы
    Занятия:
  • Одномерные массивы
  • Многомерные массивы
  • Цикл foreach
  • Массивы
  • Задания:
  • Стандартные алгоритмы обработки массивов
  • Поиск элемента в массиве
  • Стандартные алгоритмы обработки массивов
  • Сортировка элементов в массиве
  • Обработка многомерных массивов
6
Тема 6. Обработка строк
    Занятия:
  • Строковый тип данных
  • Методы обработки строк
  • Введение в регулярные выражения
  • Строки
  • Задания:
  • Извлечение подстроки из строки
  • Замена символов в строке по образцу
  • Смена регистра символов в строке
  • Удаление фрагментов и вставка подстрок в строки
  • Разбиение строки в массив строк
  • Преобразование строк в другие типы
7
Тема 7. Методы
    Занятия:
  • Понятие метода
  • Параметры методов
  • Передача параметров по ссылке и значению
  • Выходные параметры
  • Массив параметров и ключевое слово params
  • Область видимости (контекст) переменных
  • Методы
  • Задания:
  • Создание метода с передачей параметров по значению
  • Создание метода с передачей параметров по ссылке
  • Создание метода с выходными параметрами
  • Создание метода с массивом параметров
8
Тема 8. Работа с файловой системой
    Занятия:
  • Работа с дисками
  • Класс DriveInfo
  • Работа с каталогами
  • Классы Directory и DirectoryInfo
  • Работа с файлами
  • Классы File и FileInfo
  • Работа с файлами
  • Классы FileStream, StreamReader и StreamWriter
  • Работа с файловой системой
  • Задания:
  • Разработка консольного приложения для вывода информации о дисках, установленных на компьютере
  • Разработка консольного приложения для получения списка файлов и подкаталогов
  • Разработка консольного приложения для создания каталога
  • Разработка консольного приложения для удаления каталога
  • Разработка консольного приложения для копирования файла
  • Разработка консольного приложения для чтения и записи файлов, используя класс FileStream
  • Разработка консольного приложения для записи в файл, используя класс StreamWriter
  • Разработка консольного приложения для чтения из файла, используя класс StreamReader
9
Тема 9. Обработка исключений
    Занятия:
  • Конструкция try..catch..finally
  • Типы исключений
  • Класс Exception
  • Создание классов исключений
  • Генерация исключения
  • Обработка исключений
  • Задания:
  • Разработка консольного приложения с применением конструкции try..catch..finally
  • Разработка консольного приложения с генерацией собственного исключения
10
Тема 10. Введение в объектно-ориентированное программирование
    Занятия:
  • Понятие объектно-ориентированного программирования
  • Инкапсуляция
  • Наследование
  • Полиморфизм
  • Классы и объекты
  • Поля
  • Методы
  • Свойства
  • Перегрузка методов
  • Классы и объекты
  • Задания:
  • Разработка собственного класса, моделирующего объект внешнего мира, с использованием полей, методов, свойств, перегрузки методов
11
Тема 11. Модификаторы доступа
    Занятия:
  • Модификатор доступа public
  • Модификатор доступа private
  • Модификатор доступа protected
  • Модификатор доступа internal
  • Модификатор доступа protected internal
  • Модификатор доступа private protected
  • Константы, поля и структуры для чтения
  • Структуры
  • Задания:
  • Разработка класса, моделирующего объект реального мира, с использованием модификаторов доступа public, private, protected, internal, protected internal, private protected
12
Тема 12. Статические члены и модификатор static
    Занятия:
  • Статические свойства и методы
  • Статический конструктор
  • Статические классы
  • Модификатор static
  • Задания:
  • Разработка статического класса
  • Разработка класса, содержащего статические свойства и методы
  • Разработка класса, содержащего статический конструктор
13
Тема 13. Наследование
    Занятия:
  • Понятие наследования
  • Доступ к членам базового класса из класса-наследника. Ключевое слово base. Конструкторы в производных классах
  • Порядок вызова конструкторов
  • Преобразование типов
  • Наследование
  • Задания:
  • Разработка нескольких классов, моделирующих объекты реального мира, с использованием техники наследования
14
Тема 14. Виртуальные методы и свойства. Абстрактные классы
    Занятия:
  • Виртуальные методы и свойства
  • Переопределение и сокрытие методов
  • Абстрактные классы
  • Задания:
  • Разработка консольного приложения с несколькими классами, моделирующими объекты реального мира на основе технологии наследования с применением виртуальных методов, сокрытия методов, абстрактных классов
15
Тема 15. Интерфейсы
    Занятия:
  • Интерфейсы
  • Применение интерфейсов
  • Явная реализация интерфейсов
  • Задания:
  • Разработка консольного приложения с интерфейсом и реализующими его классами
  • Реализация нескольких интерфейсов
16
Тема 16. Работа с JSON
    Занятия:
  • Работа с JSON при помощи класса JsonSerializer
  • Сериализация в JSON
  • Десериализация
  • Задания:
  • Создание JSON-файла с информацией об объекте вручную
  • Моделирование объекта классом в консольном приложении. Сериализация его в JSON с записью в файл
  • Десериализация объекта из JSON-файла
17
Тема 17. Обобщённые типы (generics)
    Занятия:
  • Обобщённые типы
  • Значения по умолчанию
  • Статические поля обобщённых классов
  • Использование нескольких универсальных параметров
  • Обобщённые методы
  • Задания:
  • Разработка в рамках консольного приложения обобщённого класса с одним универсальным параметром
  • Разработка в рамках консольного приложения обобщённого класса с несколькими универсальными параметрами
18
Тема 18. Коллекции
    Занятия:
  • ArrayList
  • Список List
  • Двухсвязный список LinkedList
  • Очередь Queue
  • Стек Stack
  • Словарь Dictionary
  • Класс ObservableCollection
  • Интерфейсы IEnumerable и IEnumerator
  • Итераторы и оператор yield
  • Задания:
  • Разработка консольного приложения с использованием ArrayList
  • Разработка консольного приложения с использованием списка List
  • Разработка консольного приложения с использованием двухсвязного списка LinkedList
  • Разработка консольного приложения с использованием очереди Queue
  • Разработка консольного приложения с использованием стека Stack
  • Разработка консольного приложения с использованием словаря Dictionary
19
Тема 19. LINQ
    Занятия:
  • Фильтрация выборки и проекция
  • Сортировка
  • Объединение, пересечение и разность коллекций
  • Агрегатные операции
  • Методы Skip и Take
  • Группировка
  • Соединение коллекций
  • Метод Join, GroupJoin и Zip
  • Методы All и Any
  • Отложенное и немедленное выполнение LINQ
  • Делегаты и анонимные методы в запросах LINQ
  • Задания:
  • Разработка консольного приложения с использованием LINQ-запросов для выборки данных
20
Тема 20. Делегаты, события и лямбды
    Занятия:
  • Делегаты
  • Применение делегатов
  • Анонимные методы
  • События
  • Лямбды
  • Задания:
  • Разработка консольного приложения с использованием делегатов
  • Разработка консольного приложения с использованием событий
21
Тема 21. Многопоточность. Класс Thread
    Занятия:
  • Введение в многопоточность
  • Класс Thread
  • Создание потоков
  • Делегат ThreadStart
  • Синхронизация потоков
  • Мониторы
  • Класс AutoResetEvent. Мьютексы. Семафоры. Таймеры
  • Задания:
  • Разработка консольного приложения, выполняющего длительную операцию, с организацией отдельного потока
22
Тема 22. Пара