Что Вы получаете

Видеозаписи всех уроков, а также дополнительные видеоуроки
|

Методические указания и домашние задания по каждому уроку
|

Доступ в закрытый форум для участников курса
|

Сертификат об успешном окончании курса
|
Для кого
Курс предназначен как для новичков в программировании, так и для тех, кто уже владеет другими языками программирования или языком С++, но на недостаточном уровне, а также для тех, кому не хватает ясных представлений об организации хранения и обработки данных в компилируемых компьютерных программах.
С++ является языком общего назначения и, сочетая в себе свойства как высокоуровневых, так и низкоуровневых языков, позволяет решать самый обширный круг задач, возникающих в программировании.
Целью курса является заложить основы алгоритмического мышления, научить пользоваться основными концепциями структурного и объектно-ориентированного программирования для решения типичных задач, встающих перед программистом. Курс в достаточно полном объёме знакомит слушателя с возможностями языка С++, заложенными в нём для реализации указанных целей.
Что Вы получите по результатам курса
Базовые знания по программированию:
* типы данных и переменные;
* операции и выражения; приоритет и ассоциативность операций;
* функции; основные конструкты структурного и модульного программирования.
* стадии жизни программы: кодирование, препроцессорная обработка, компиляция, линковка и исполнение;
* работа с данными на низком уровне: машинное представление целых чисел, операции с битами;
* адресное пространство программы (процесса); секция кода, стек и куча программы; процесс вызова функции и возврата из функции, рекурсия;
* использование динамической памяти для организации динамических структур данных, таких как многомерные динамические массивы и стеки;
* работа с потоками, перенаправление потоков, осуществление ввода-вывода, в том числе в форматном и бесформатном режимах;
* основные концепции ООП: абстракция, инкапсуляция, наследование, полиморфизм; разделение интерфейса и реализации;
* понятие об обобщённом программировании.
Знания по С++:
* встроенные и пользовательские типы данных; явное и неявное преобразование типов; структуры, перечисления, классы; статически размещаемые массивы;
* операции языка С++; приоритеты, ассоциативность, возвращаемые значения и побочные эффекты операций;
* условные и итеративные конструкции языка: if-else, switch, while, do-while, for;
* область видимости и время жизни переменной; статические и автоматические переменные; локальные и глобальные переменные;
* консольный ввод-вывод: объекты cin и cout, операции >> и <<; потоковые манипуляторы; работа с файлами;
* указатели; операции взятия адреса и разыменовывания; адресная арифметика; ссылки;
* объявление и определение функций, формальные и фактические параметры, возврат из функции; передача параметров по значению, по ссылке и через указатель; указатель на функцию; массивы функций; функции обратного вызова;
* работа с динамической памятью; операции new и delete;
* некоторые препроцессорные средства С++: директивы #include, #define, #ifdef/#ifndef;
* поддержка ООП в С++: классы, поля и методы, статические поля и методы, константные поля и методы; спецификаторы доступа; конструкторы и деструкторы, список инициализации конструктора; наследование; виртуальные и чисто виртуальные методы; абстрактные классы;
* перегрузка функций и операций; перегрузка операций для собственных типов данных;
* обобщённое программирование с использованием шаблонов функций и классов.
После прохождения курса слушатель должен уметь:
* проектировать алгоритм для решаемой задачи, в том числе определять необходимый набор классов, функций и переменных;
* писать многомодульные программы;
* обрабатывать потоковый ввод, преобразовывать и проверять на корректность текстовые данные, осуществлять вывод данных в требуемом формате;
* обрабатывать данные на уровне бит, в том числе осуществлять упаковку и простое кодирование данных;
* разрабатывать структуру классов для решаемой задачи, реализуя принципы модульности, минимальной связанности, разделения интерфейса и реализации.
Примеры программ, которые может писать слушатель после прохождения курса:
* проверка соответствия открывающих и закрывающих скобок в программе на С++; удаление комментариев из программы на С++; другое простое форматирование и проверка текста;
* простые игры типа "Крестики-нолики", "Пятнашки" в консольном режиме;
* извлечение и изменение метаинформации ID3v1-тега mp3-файла;
* печать дерева подкаталогов и файлов заданного каталога;
* псевдографическая реализация игры в шахматы для двух игроков.
Программа курса
Переменные и типы данных
-
встроенные типы данных
-
объявление переменных
-
объявления typedef
-
инициализация переменных
-
константные переменные
-
операция sizeof
-
явное и неявное преобразование типов
-
массивы
Операции
-
арифметические операции
-
арифметические выражения
-
операция присваивания
-
приоритет операций
Стандартный ввод/вывод
-
объекты cin и cout
-
операции ввода из потока и вывода в поток
-
полезные функции для потокового ввода и вывода
-
форматирование вывода
-
Управление потоком выполнения программы
-
конструкции ветвления (if-else, switch)
-
конструкции повторения (for, while, do-while)
-
понятие о функциях
Сложные типы данных
-
структуры
-
объявление структур
-
инициализация структур
-
обращение к полям структур
-
перечисления
-
объединения
Побитовые операции
-
двоичное представление целых чисел
-
побитовые операции сложения, умножения, инверсии, исключающего "или"
-
битовые маски
-
упакованные данные
Указатели и массивы. Динамически выделяемая память.
-
статические массивы: объявление, указание размера, инициализация
-
обращение к несуществующим элементам массива
-
указатель
-
операции взятия адреса и разыменования
-
адресная арифметика
-
связь массивов и указателей
-
динамическое выделение памяти: операции new/new[] и delete/delete[]
-
утечки памяти
-
Си-строки как особый вид массивов
-
многомерные статические и динамические массивы
-
динамические структуры данных
Функции
-
передача параметров в функцию: по значению и через указатель
-
передача в функцию массивов
-
константные параметры
-
ссылки
-
передача параметров по ссылке
-
возвращаемое значение: void, указатель, ссылка
-
рекурсия
-
указатель на функцию
-
массивы функций
-
функция в качестве аргумента другой функции
-
перегрузка функций
Работа с файлами
-
чтение/запись в текстовом режиме
-
ввод: посимвольный, по словам, построчный
-
чтение/запись в бинарном режиме
-
перенаправление стандартного ввода и вывода
Классы
-
поля и методы
-
конструкторы и деструкторы
-
модификаторы доступа
-
инкапсуляция
-
статические члены и методы класса
-
константные методы
-
инициализация объектов класса
-
списки инициализации
-
класс std::string стандартной библиотеки C++
Наследование, полиморфизм
-
наследование, типы наследования
-
последовательность вызова конструкторов и деструкторов
-
абстрактные классы
-
переопределение методов базового класса
-
обращение к методам базового класса
-
виртуальные методы
-
виртуальный деструктор
-
полиморфизм
-
специфичное для С++ приведение типов
Перегрузка
-
перегрузка операций +, +=, [], >>, <<, ==, * и др. для своих типов данных
Обобщённое программирование
-
шаблонные функции
-
шаблонные классы
Ключевые профессиональные навыки
-
Уверенное владение С++
-
Использование ООП-подхода
-
Работа с файловой системой
-
Знание принципов обобщенного программирования
-
Работа с памятью, указателями
-
Работа с препроцессорными директивами
Ориентировочная позиция: младший С++ программист
Ориентировочная зарплата (для Москвы): 20000 - 40000 рублей.
Как проходят занятия
Вы можете выбрать для себя любую из 4 форм обучения:
1. Очное обучение
Занятия проходят на базе наших центров в Москве и Санкт-Петербурге в специально оборудованном компьютерном классе с проектором и флип-чартом. Мы
постарались создать для вас самых комфортных условиях для обучения в кругу
однокурсников под чутким руководством преподавателя. Группы небольшие 12-16 чел.
Кроме этого, всем участникам курса открывается доступ на закрытый форум, куда будут выкладываться
материалы курса (методические указания, презентации, дополнительные видеоуроки),
а также ведется поддержка со стороны преподавателя в процессе всего цикла обучения
и выполнения домашних заданий.
2. Онлайн обучение
Вы учитесь не выходя из дома, при этом никакого дополнительного оборудования
для онлайн-обучения Вам не потребуется. Перед началом каждого занятия Вы получаете
ссылку на онлайн-класс, где проходят занятия. В онлайн-классе Вы сможете слышать
голос преподавателя, смотреть на своем экране презентацию урока, а также при необходимости
видеть экран преподавателя. Есть также чат, куда можно задавать свои вопросы преподавателю
в процессе объяснения нового материала. Кроме этого,
всем участникам курса открывается доступ на закрытый форум, куда будут выкладываться
материалы курса (методические указания, презентации, дополнительные видеоуроки),
а также ведется поддержка со стороны преподавателя в процессе всего цикла обучения и выполнения домашних заданий.
Как показывает опыт, по эффективности онлайн обучение ничуть не уступает очному обучению.
Онлайн обучение обычно выбирают при желании учиться дома удаленно и для экономии,
так как онлайн курс на 30% дешевле очных.
3. Индивидуальное обучение
Эта форма обучения подойдет Вам, если Вы хотите учиться под личным руководством
преподавателя или по индивидуальной программе. Для Вас подбирается индивидуальный
график занятий в удобное для Вас время и обговариваются сроки обучения. Преподаватель
буквально возьмет Вас за руку и проведет по требуемому направлению обучения.
Начать обучение
На этот курс Вы можете оформить кредит без первоначального взноса со сроком погашения до 24-х месяцев. Кредит предоставляет ТКС Банк (ЗАО). Ознакомьтесь с условиями кредитования.
| На данный момент нет групп по данному курсу |
На этот курс Вы можете оформить кредит без первоначального взноса со сроком погашения до 24-х месяцев. Кредит предоставляет ТКС Банк (ЗАО). Ознакомьтесь с условиями кредитования.
Отзывы о курсе
Домашние задания разбирались тщательно и полностью, хотя это не укладывалось в заявленное время.
Отличный курс. Доступный и содержательный. Дает четкое понимание основ программирования на С++. Очень понравился темп один раз в неделю и формат проведения курса: это методические материалы, домашние задания, блоки самоконтроля, а также набор видео уроков и вебинаров. Этот курс является тренингом, т.е. закрепление теории практикой именно этого мне не хватало как начинающим программисту. В домашних заданиях рассматриваются задачи приближенные к реальности, которые интересно решать. Очень приятное впечатление оставили участники курса, у которых было не пустое любопытство и поверхностный интерес, а реальное желание приобрести навык, в результате чего во время курса выполнялись, по-разному домашние задания и можно было наглядно увидеть много разных ошибок. Еще очень понравилось, что при проведении вебинаров домашние задания разбирались тщательно и полностью, хотя это не укладывалось в заявленное время. Этот курс дал мне много новых знаний и рывок к освоению более сложных технологий программирования на С++.
Что хотелось бы улучшить. Это чтобы перед курсом писали необходимые знания, и навыки, соответствующие действительности, для полного усвоения курса. И рекомендовали литературу необходимую для прочтения, чтобы быстро можно было бы влиться в курс. Домашние задания разбить по категориям от простого к сложному. Так как бывало, делаешь первое задание, а оно очень длинное и сложное и в итоге и оно не получилось, и остальные не успел. Возможно, пусть их будет больше. Но пусть первые два, будут совсем простые, чтобы делая их, появлялся интерес и уверенность для следующих более сложных заданий. Чтобы на вебинаре можно было оценить хотя бы на простых заданиях свои ошибки, если не смог сделать сложные задания.
Алексей, огромное спасибо за этот авторский курс – тренинг! Видно, что в него вложено много знаний, опыта, сил и труда. Очень приятно, что остались еще люди желающие научить других, хорошим знаниям. Если вы сделаете курс по STL и алгоритмам, я обещаю, что буду в числе первых записавшихся на него.
Владимир
Понравился опыт и методологический подход преподавателя
Рекомендовано тем, кому нравится учиться, приобретать новые знания, овладевать навыками, кто готов тратить на это время и силы, не ожидая, что кто-то вложит в его голову готовые понятия и схемы.
Я давно мечтал познакомиться с великим и могучим языком С++. Рад, что мое знакомство с ним состоялось именно благодаря курсу ШП и под руководством Алексея Захаренкова. Рад потому, что знакомство получилось обстоятельное, несуетливое и перспективное. Преподавательский опыт и методологический подход Алексея не только указывает на возможные ошибки прозелита, подводные камни использования различных библиотек, компиляторов или операционных систем, но и позволяет ощутить красоту грамотного кода, всю прелесть и мощь языка.
Спасибо!
Игорь Иванец
Курс оказался очень и очень здоровским и интересным!
Мои впечатления:
В С++ я – полный новичок, но опыт программирования на других языках имеется. Давно хотелось познакомиться с этим языком, но он всегда казался таким сложным и страшным. Изучать с нуля С++ по объемным трудам мне представлялось безумно сложным и долгим процессом. И вот появилась возможность пройти курс Алексея Захаренкова по С++ для новичков.
В общем, сразу могу сказать, что результаты меня впечатлили. Под конец курса мы уже хорошо владели основами ООП в С++ и были способны написать достаточно сложную программу консольных шахмат с разветвленной системой классов и отношениями наследования.
Курс оказался очень и очень здоровским и интересным! Во-первых, Алексей излагает темы достаточно подробно. Во-вторых, само изложение материала построено очень грамотно, очень последовательно и очень толково – так, что и новичку в С++ все будет понятно. Нет никаких перескоков с пятого на десятое, нет ненужных отступлений от темы, нету и никакой «воды». Все изложение развивается (именно развивается!) постепенно, от простого к сложному, все логично и связанно. То есть при просмотре не возникает вопросов «А что автор хотел этим сказать?» или «Откуда это берется?» и т.п. Понятно абсолютно все! Последовательность и логичность – огромный плюс этого курса. Так же, как и высокий профессионализм автора. Благодаря этому сложная информация усваивается очень легко (но только при условии, что человек уже владеет основами программирования – об этом ниже).
Примеры, которые Алексей демонстрирует в видео, я считаю, подобраны оптимально, они раскрывают тему, показывают возможные ошибки и подводные камни, которых в С++ немало. Уроки очень насыщены информацией, но при этом она усваивается легко, поскольку, повторюсь, дается строго последовательно. В общем, чувствуется качественный системный подход к построению курса. И не удивительно: у Алексея богатый опыт преподавательской практики.
В курсе даются не только основы самого языка С++, но и подробно рассказывается о таких универсальных и важных вещах, как внутреннее устройство данных, распределение данных в памяти, структурах данных, принципах хранения и обработки информации. Большое внимание уделено грамотному написанию кода, правильному структурированию программы, грамотному подходу к проектированию архитектуры программы.
Отдельное спасибо также за отличные вебинары, на которых разбирались домашние задания. Каждая работа рассматривалась максимально подробно (насколько это возможно в ограниченных временных рамках вебинара). Алексей все время обращал наше внимание на ошибки, на разные неочевидные нюансы и «фишки» языка. И в итоге эти вебинары по значимости не уступают самим урокам.
Для кого курс:
Я считаю, чтобы в полной мере усвоить все новые знания, нужно обязательно иметь какой-нибудь опыт в программировании, хотя бы разбираться в основах и понимать основные термины. Иначе, мое глубокое убеждение, абсолютный новичок в вопросах программирования просто будет погребен под лавиной новой сложной информации. Но если Вы уже владеете каким-нибудь языком программирования и хотите повысить свой уровень и познакомиться с мощью языка С++, этот курс – идеальный выбор.
Выражаю Алексею свою искреннюю благодарность за превосходный курс, качественные материалы и отличное преподавание. Я очень надеюсь на развитие темы в рамках следующего, более углубленного курса.
Алёна (ник Alenka)
Все отзывы →