Консультация

Консультируем с 8:30 до 19:00 Выходной: суббота и воскресенье


Сообщение об ошибке
Сообщение об ошибке

Программирование на C# by EPAM

Базовый курс

C# — объектно-ориентированный язык программирования, разработанный в 1998—2001 годах в компании Microsoft. Язык создавался на основе Java и C++ и впитал их лучшие качества, в том числе унаследовал особенности синтаксиса.

Это основной язык для программирования под платформу .NET. Используется для веб-разработки, создания настольных и мобильных приложений.

Благодаря огромному количеству документации C# удобен в изучении. Собственная среда разработки Visual Studio, готовые модули, шаблоны и процедуры, а также большое количество синтаксического сахара делают язык удобным и популярным.

После освоения C# (си шарп) студенты могут выбрать специализации и продолжить обучение.

Описание курса

Формы обучения

Вечерняя

25.11.2019 - Группа стартовала
Понедельник 18:30-21:20, Среда 18:30-21:20
536 BYN
72 уч.ч
Рассрочка две выплаты по 295 BYN / месяц
№ группы: G-ND1-05-19

Условия отбора

Зачисление на курс "Программирование на C#" проводится на конкурсной основе по результатам:

  • теста по английскому языку,

  • теста по логике,

  • теста на знание основ web-технологий.

Для кого этот курс

  • Для слушателей, не имеющих специальной предварительной подготовки, желающих изучить основы объектно-ориентированного программирования и научиться программировать на современном языке C#

Необходимая подготовка

  • Английский язык (уровень Pre-Intermediate)

  • Уверенный пользователь персонального компьютера

Для чего этот курс

  • Научить слушателей пользоваться основными инструментами промышленной разработки программного обеспечения используя язык программирования C# и платформу .NET, подготовить их к работе в реальных проектах

Вы узнаете

  • По окончанию курса вы будете понимать основные принципы построения и структурирования приложений, написанных на языке программирования C#, а также создавать полноценные последовательные алгоритмы в своих решениях. Узнаете, что такое рефлексия и атрибуты, сериализация и сборщик мусора. Курс включает изучение ключевых стандартных классов, которые позволяют работать с файловой системой, с наборами данных, строками, XML и многим другим. Также вы будете владеть основными инструментами и технологиями, такими как LINQ, и обладать всеми знаниями и навыками, которые необходимы для .NET разработчика.

Вы будете уметь

  • использовать C# 

  • разбираться в принципах работы разных технологий платформы Microsoft .NET

Программа курса

  1. Базовый уровень
    1. Знакомство с языком C# и платформой .NET
    История развития языка C#.
    Какие программы можно писать, используя язык C#.
    Обзор среды разработки Visual Studio.
    Рассмотрение структуры решения и проекта.
    Создание решений и проектов, используя встроенные шаблоны в поставке Visual Studio.
    Построение простейших приложений: Console Application, Windows Forms Application, WPF Application и Web Application.
    Visual studio Tools.
    2. Переменные и типы данных
    Константы.
    Арифметические операторы.
    Математические функции.
    Инкремент и Декремент.
    Операции сравнения.
    Присвоение с действием.
    Локальные области видимости.
    Ключевые слова в качестве идентификаторов.
    Неявно типизированные локальные переменные.
    3. Условные конструкции
    Рассмотрение понятия ветвления в программировании.
    Обзор операторов ветвления.
    Рассмотрение случаев применения условных конструкций.
    Условная конструкция – if (с одной ветвью).
    Условная конструкция – if-else (с двумя ветвями).
    Условная конструкция – if-else (с несколькими ветвями). Каскад условных операторов.
    Тернарная условная операция ( ? : ).
    Рассмотрение примеров: Оператор многозначного выбора switch-case (переключатель).
    Pattern Matching.
    4. Логические и побитовые операции
    Логические функции: конъюнкция, дизъюнкция, отрицание, исключающее ИЛИ.
    Использование побитовых логических операций.
    Логические операции.
    Рассмотрение операторов сдвига.
    Флаги.
    5. Циклические конструкции
    Обзор циклических конструкций.
    Рассмотрение цикла с предусловием while.
    Рассмотрение цикла с постусловием do-while.
    Рассмотрение цикла со счетчиком for.
    Рассмотрение оператора досрочного выхода из цикла break.
    Рассмотрение оператора пропуска итерации continue.
    Рассмотрение вложенных циклов.
    Бесконечные циклы.
    6. Методы
    Обзор методов.
    Различия между процедурами и функциями.
    Рассмотрение примеров: Работа методов.
    Рассмотрение управляющей структуры return.
    Использование ref и out аргументов в методах
    Перегрузки методов.
    Методы с опциональными параметрами.
    Рекурсивный вызов метода.
    Встроенные методы.
    7. Массивы
    Одномерные массивы.
    Двумерные массивы.
    Индексаторы.
    Переопределение индексаторов.
    8. Объекты
    Рассмотрение ООП.
    Обзор объектов. Сущность, поведение, свойства, аггрегация/композиция, декомпозиция.
    9. Классы
    Обзор классов.
    Создание и использование классов.
    Члены класса.
    Свойства.
    ReadOnly и WriteOnly свойства.
    Автогенерируемые свойствава.
    Конструкторы.
    Рассмотрение частичных классов.
    Рассмотрение частичных методов.
    Поля доступные только для чтения (readonly).
    Различные модификаторы доступа.
    10. ООП
    Основные парадигмы ООП.
    Диаграммы классов.
    Связи отношения между классами (самоассоциация, ассоциация).
    Работа наследования.
    Основные формы полиморфизма – статическая и динамическая.
    11. Абстракция
    Абстрактные классы.
    Интерфейсы.
    12. Статические и вложенные классы
    Статические члены.
    Статические классы.
    Статические методы.
    Расширяющие методы.
    Вложенные классы.
    Паттерн проектирования – Singleton.
    13. Ссылочные и значимые типы
    Различия с создании и хранении.
    Стек, куча и список.
    Упаковка/распаковка.
    Преобразование типов (Casting).
    Кортежи.
    14. Базовый класс Object и перегрузка операторов
    Базовый класс object.
    Клонирование.
    Паттерн проектирования – Prototype.
    Интерфейс ICloneable.
    Перегрузка операторов.
    Перегрузка операторов преобразования значений типов.
    15. Структуры
    Конструкторы – особенности для структур.
    Наследование в структурах.
    Вложенные структуры и классы.
    Работа со структурами DateTime и TimeSpan.
    Ковариантность и контрвариантность.
    Рассмотрение перечислений.
    16. Универсальные шаблоны
    Обобщения.
    Ковариантность и контрвариантность обобщений.
    Nullable типы.
    Операции поглощения.
    Ограничения обобщений.
    Преимущества использования обобщенных коллекций.
    17. Коллекции
    Коллекции.
    Встроенные коллекции в .NET.
    Интерфейсы IEnumerable и IEnumerator.
    Работа цикла foreach.
    Оператор yield.
    Работа с последовательными списками (Queue, Stack).
    Работа со словарями.
    18. Пользовательские коллекции
    Коллекции.
    Интерфейсы IEnumerable, IEnumerator.
    Работа цикла foreach.
    Оператор yield.
    Интерфейсы ICollection и IList.
    Создание простой коллекции с помощью реализации интерфейса IList.
    Рассмотрение коллекции созданной с использованием паттерна Iterator.
    19. Исключения
    Обработка исключений.
    Ключевое слово try.
    Ключевое слово catch.
    Ключевое слово finally.
    Ключевое слово throw.
    Класс Exception.
  2. Углубленный уровень
    20. Делегаты
    Определение делегата.
    Комбинированные (групповые) делегаты.
    Анонимные методы.
    Лямбда операторы и лямбда выражения.
    21. События
    Рассмотрение событий.
    Рассмотрение паттерна Subscriber.
    22. Анонимные и динамические типы. LINQ.
    Анонимные типы.
    LINQ.
    Динамические типы.
    23. Системные коллекции
    Предназначение и использование интерфейса IComparer.
    Роль интерфейса IEqualityComparer.
    Применение специализированных наборов.
    Обобщенные наборы.
    24. Программирование ввода-вывода
    Навигация по файловой системе.
    Чтение и запись файлов.
    Работа с потоками.
    25. Работа с текстом
    Работа со строками.
    Форматирование вывода.
    Использование класса StringBuilder.
    Локализация и глобализация.
    Чтение и запись файлов в разных кодировках.
    Кодирование-декодирование строк. Использование класса Encoding.
    26. Regular expressions
    Регулярные выражения и пространство System.Text.RegularExpressions.
    Метод Regex.Replace и использование внутришаблонных переменных.
    Организация поиска по шаблону. Применение Match.
    27. XML. Файлы конфигурации. Реестр
    Загрузка и чтение из XML файла.
    Применение XmlTextReader.
    Загрузка содержимого XML по URL.
    Загрузка содержимого XML из строки.
    Поэлементное чтение XML файла.
    Использование XmlTextWriter.
    Запись комментариев в XML файл.
    Запись пространства имен и префиксов в XML файл.
    Запись в XML файл со специальным форматированием.
    28. XPath и Xslt
    Выборка из XML с помощью XPath.
    Вычисление min и max с помощью XPath.
    Создание XPathDocument из строки.
    Xslt.
    Файлы трансформции.
    29. Файлы конфигурации и реестр
    Создание файлов конфигурации приложения. Чтение и запись настроек приложения.
    Создание пользовательской секции.
    Работа с реестром Windows. Использование реестра для хранения настроек приложения.
    30. Сборки
    Виды сборок.
    Метаданные сборки.
    Манифест сборки.
    Подписывание сборок.
    Позднее связывание.
    31. Рефлексия
    Общее понятие рефлексии.
    Метаданные, объект Type.
    Класс Assembly.
    Динамическая генерация кода. Класс Activator.
    Генерация кода во время выполнения программы.
    32. Атрибуты
    Общее понятие атрибутов.
    Класс System.Attribute.
    Позиционные и именованные параметры атрибутов.
    Создание атрибутов.
    Использование атрибутов.
    Определение атрибутов при помощи рефлексии.
    Системные атрибуты.
    33. Сериализация
    Общее понятие сериализации.
    Процесс сериализации и десериализации. Совместимость версий.
    Управление сериализацией.
    Форматы сериализации.
    XML сериализация.
    Binary сериализация.
    SOAP сериализация.
    Сериализация в JSON.
    Собственные методы сериализации.
    34. Управление памятью. Сборщик мусора.
    Время жизни объекта в памяти.
    Сборщик мусора. Поколения объектов.
    Деструкторы и финализаторы.
    Управляемые/неуправляемые объекты.
    Освобождение неуправляемых ресурсов. Интерфейс IDisposable.
    Ключевое слово using.
    35. Многотопочность – параллельное программирование
    Процессы в ОС.
    Потоки.
    Классы Thread и Task.
    Контекст выполнения.
    Отличие задачи, потока и процесса
    Многозадачность. Многозадачность на основе процессов. Многозадачность на основе потоков.
    Thread vs Task vs Thread pool.
    Планировщик задач
    36. Работа с потоками
    Работа с потоками в .NET Framework: пространство имен System.Threading, класс Thread.
    Создание потоков. Состояния потоков.
    Завершение потоков. Определение момента окончания потока.
    37. TPL
    Класс Task и TaskFactory.
    Создание задачи.
    Методы ожидания выполнения задачи.
    Лямбда-выражения в качестве задачи.
    Создание продолжения задачи.
    Возврат значений из задачи.
    Отмена задачи и использование Cancellation token.
    38. Потоки. Синхронизация
    Критическая секция.
    Оператор lock.
    Класс - Monitor.
    Конструкции пользовательского режима:
    a. Волатильные конструкции (volatile).
    b. Взаимозапирающие конструкции (interlocked).
    Конструкции синхронизации режима ядра:
    a. События AutoResetEvent и ManualResetEvent
    b. Семафоры Semaphore
    c. Мьютексы Mutex
    Гибридные конструкции синхронизации потоков:
    a. Monitor
    b. ManualResetEventSlim
    c. SemaphoreSlim
    Взаимная блокировка (Deadlock).
    39. Асинхронная модель программирования
    Шаблон асинхронного вызова методов.
    Асинхронная природа делегатов.
    Интерфейс IAsyncResult.
    Синхронизация вызывающего потока.
    Делегат AsyncCallback.
    Класс AsyncResult.
    Передача и прием специальных данных состояния.
    40. TPL. Модель Async, Await
    Введение в параллельное программирование.
    Класс Parallel.
    Ключевые слова async, await.
    Машина состояний.
    Работа с контекстом.
    41. Функциональное программирование
    Лямбда-выражения и лямбда-операторы.
    Построение лямбда выражений.
    42. Домены приложений. NT-службы
    Введение в домены приложения.
    Класс System.AppDomain.
    Создание доменов.
    Выполнение сборок в доменах.
    Выгрузка доменов.
    Конфигурирование доменов приложений.
    Запуск сборок с ограниченными привилегиями.
    43. Службы Windows
    Введение в службы Windows.
    Внутренняя структура.
    Время жизни служб.
    Создание служб.
    Установка служб.

Преподаватели курса

  • Андрей Волчик

    Опыт работы: более 4 лет

    Специальность:
    Промышленная разработка ПО на ASP.NET

    .Net разработчик в компании EPAM, принимал участие в разработке 4 успешных проектов. Работаю с широким стеком современных технологий.

    Узнать больше
  • Пётр Кизик

    Специальность:
    Промышленная разработка ПО на ASP.NET

    Работаю Software Engineer в компании EPAM (Гродно). С ранних лет увлекался программированием на С#, изучал язык самостоятельно, потом нарабатывал практические навыки на фрилансе. Имею опыт в 3D-моделировании, применил знания в создании доступного по цене 3D-принтера.

    Узнать больше

Андрей Волчик

Опыт работы:более 4 лет

.Net разработчик в компании EPAM, принимал участие в разработке 4 успешных проектов. Работаю с широким стеком современных технологий.

Из личного опыта понимаю с какими трудностями приходится сталкиваться только начинающим свой путь разработчикам. 

От слушателей ожидаю желание учиться, активного участия в обсуждении материала и вовлечения в процесс.

Преподавание ведётся с индивидуальным подходом к каждому, весь материал будет закрепляться практикой.

Пётр Кизик

Работаю Software Engineer в компании EPAM (Гродно). С ранних лет увлекался программированием на С#, изучал язык самостоятельно, потом нарабатывал практические навыки на фрилансе. Имею опыт в 3D-моделировании, применил знания в создании доступного по цене 3D-принтера.

В компании EPAM прошёл путь от Junior до Middle-разработчика за полгода, участвую в проектах в направлении .NET различной сложности, параллельно выступаю в качестве ментора для студентов на летней практике и новичков на тренингах в течение года.

На курсе планирую уделить внимание приёмам и методам промышленной разработки, которые, помогут тем, кто хочет найти работу и стать специалистом именно в этой сфере.


Оставьте заявку на курс сейчас

Запишитесь на курс сегодня, и уже завтра мы свяжемся с Вами и пригласим на ближайшее вводное занятие.
И конечно, расскажем про полную программу обучения и ее специфику, тренера, а главное – про нашу программу трудоустройства.

Более 2760 выпускников успешно работают в IT-компаниях в Беларуси и за рубежом

Акции и новости