Курс для начинающих C#-разработчиков, дающий прочную базу для старта в профессии. Вы освоите синтаксис языка, ключевые концепции ООП и навыки профессиональной разработки в среде .NET
Синтаксис C# и принципы объектно-ориентированного программирования
Создание консольных приложений в среде Visual Studio и платформе .NET
Работа с коллекциями, LINQ, многопоточностью и асинхронностью
Прочная база для перехода к WPF, веб- и прикладной разработке на C#
Профессия разработчика / программиста по-прежнему не покидает верхних строчек рейтингов самых перспективных и высокооплачиваемых — как в России, так и во всем мире. Рынок технологий непрерывно развивается, и IT-специалисты требуются всегда
Если C# — ваш первый язык, вы получите прочную базу: алгоритмы, синтаксис, ООП, работа в Visual Studio. После курса вы готовы писать собственные консольные приложения в среде .NET
Программисту, переходящему на C#
Если у вас уже есть опыт с другим языком, вы быстро освоите специфику C# и .NET: объектно-ориентированную модель, коллекции и LINQ, многопоточность и асинхронное программирование
.NET разработчику
Вы углубите понимание принципов построения приложений на C#, отточите работу с делегатами, событиями, многопоточностью и асинхронностью, и подготовитесь к более продвинутым задачам в экосистеме .NET
Начинающему программисту
Программисту, переходящему на C#
.NET разработчику
Если C# — ваш первый язык, вы получите прочную базу: алгоритмы, синтаксис, ООП, работа в Visual Studio. После курса вы готовы писать собственные консольные приложения в среде .NET
Если у вас уже есть опыт с другим языком, вы быстро освоите специфику C# и .NET: объектно-ориентированную модель, коллекции и LINQ, многопоточность и асинхронное программирование
Вы углубите понимание принципов построения приложений на C#, отточите работу с делегатами, событиями, многопоточностью и асинхронностью, и подготовитесь к более продвинутым задачам в экосистеме .NET
Швец Екатерина Сергеевна
Автор курса
Программист и преподаватель с опытом более 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. Мьютексы. Семафоры. Таймеры
Задания:
Разработка консольного приложения, выполняющего длительную операцию, с организацией отдельного потока