Модульная программа: С++ Базовый курс и C++ Управление памятью (повтор)
С++ от человека из Яндекса
Преподаватель:
Давыдов Семен Викторович
Репетитор программирования и информатики.
Образование: МГТУ им. Баумана, факультет информатики и систем управления, магистр техники и технологии по направлению «Автоматизация и управление» (2009 г.).
Опыт преподавания – 1 год (Школа программирования, курс C++, управление памятью).
Презентация С++ Управление памятью
Для кого этот курс
Курс не для новичков. Предполагается довольно уверенное владение основными конструкциями языка С++, способность самостоятельно запрограммировать хотя бы пузырьковую сортировку или двоичный поиск. Целевая аудитория – junior developer с опытом работы от полугода, который хочет получить серьезный технический скачок, необходимый для дальнейшего развития. Цель курса – этот скачок предоставить.
С++ – язык, который не прячет от программиста машину. Управление памятью – его прямая обязанность, но только так можно построить поисковый движок, написать компьютерную игру, создать веб-сервер, реализовать видеокодек, разработать систему распознавания речи/изображения, которые имеют шанс на выживание. В этом курсе мы учимся водить машину.
Чему вы научитесь
Указатели. Рекурсия. Списки. Деревья. Стандартные контейнеры. Размещение объектов.
Аллокаторы. Обработка исключений. Умные указатели. RAII. Эффекты кэш-памяти. Tips & Tricks.
Три часа хорошего С++ каждую субботу. Много практики. Большие домашние задания, которые надо делать.
Этот курс – не всестороннее освещение С++, а вполне конкретный взгляд на память со стороны языка.
Поэтому не будет: паттернов проектирования, мета-программирования на шаблонах, ООП, разработки графического интерфейса,
сетевого программирования, в общем, всего того, что не имеет отношения к памяти непосредственно.
Программа курса
Урок 1. Зачем нужно управлять памятью.
Преподаватель
Выпускник МГТУ им. Н.Э. Баумана, главный системный инженер компании,
занимающейся поставками терминалов самообслуживания на рынок России и СНГ.
Александр занимается разработкой нового и доработкой уже существующего
программного обеспечения терминалов, а также его последующей интеграцией
в окружение банковской системы. Работает преимущественно с новым оборудованием
и его программным интерфейсом, который чаще всего реализован на C или C++.
Для кого
Курс предназначен как для новичков в программировании, так и для тех, кто уже владеет другими языками программирования или языком С++, но на недостаточном уровне, а также для тех, кому не хватает ясных представлений об организации хранения и обработки данных в компилируемых компьютерных программах.
С++ является языком общего назначения и, сочетая в себе свойства как высокоуровневых, так и низкоуровневых языков, позволяет решать самый обширный круг задач, возникающих в программировании.
Целью курса является заложить основы алгоритмического мышления, научить пользоваться основными концепциями структурного и объектно-ориентированного программирования для решения типичных задач, встающих перед программистом. Курс в достаточно полном объёме знакомит слушателя с возможностями языка С++, заложенными в нём для реализации указанных целей.
Чему вы научитесь
Переменные и типы данных
Стоимость 17000 руб. Экономия 1940 руб.
Продажник
Скрытое содержимое.
С++ от человека из Яндекса
Преподаватель:
Давыдов Семен Викторович
Репетитор программирования и информатики.
Образование: МГТУ им. Баумана, факультет информатики и систем управления, магистр техники и технологии по направлению «Автоматизация и управление» (2009 г.).
Опыт преподавания – 1 год (Школа программирования, курс C++, управление памятью).
Презентация С++ Управление памятью
Для кого этот курс
Курс не для новичков. Предполагается довольно уверенное владение основными конструкциями языка С++, способность самостоятельно запрограммировать хотя бы пузырьковую сортировку или двоичный поиск. Целевая аудитория – junior developer с опытом работы от полугода, который хочет получить серьезный технический скачок, необходимый для дальнейшего развития. Цель курса – этот скачок предоставить.
С++ – язык, который не прячет от программиста машину. Управление памятью – его прямая обязанность, но только так можно построить поисковый движок, написать компьютерную игру, создать веб-сервер, реализовать видеокодек, разработать систему распознавания речи/изображения, которые имеют шанс на выживание. В этом курсе мы учимся водить машину.
Чему вы научитесь
Указатели. Рекурсия. Списки. Деревья. Стандартные контейнеры. Размещение объектов.
Аллокаторы. Обработка исключений. Умные указатели. RAII. Эффекты кэш-памяти. Tips & Tricks.
Три часа хорошего С++ каждую субботу. Много практики. Большие домашние задания, которые надо делать.
Этот курс – не всестороннее освещение С++, а вполне конкретный взгляд на память со стороны языка.
Поэтому не будет: паттернов проектирования, мета-программирования на шаблонах, ООП, разработки графического интерфейса,
сетевого программирования, в общем, всего того, что не имеет отношения к памяти непосредственно.
Программа курса
Урок 1. Зачем нужно управлять памятью.
- POD-типы
- Указатели, статические массивы, строки, функции
- Различные типы передачи параметров
- sizeof()
- Арифметика указателей
- Структуры, объединения, выравнивание, упаковка
- Динамическое выделение и освобождение памяти
- Многомерные массивы. std::vector и std::deque.
- Тест на определение уровня владением С++.
- Циклы
- Условные переходы
- Арифметические операции
- Рекурсия
- Виды рекурсий
- Списки, деревья
- std::list, std::set, std::map, hash_set, hash_map
- Хеширование
- Хеширование без коллизий
- Приоритетная куча
- Менеджер памяти
- Аллокаторы
- Как распределять память самому
- Выделение памяти под объекты
- Размещение объектов в заранее выделенной памяти
- Конструктор, списки инициализации, offsetof(), копирующий конструктор, оператор присваивания
- Ленивое и глубокое копирование
- Квалификаторы доступа (private, public)
- Преодоление квалификаторов доступа
- Виртуальные функции
- Наследование
- Срезки
- Указатель на функцию, указатель на член класса, указатель на статический член класса.
- Временная сложность и сложность по памяти
- Почему std::vector – самый важный контейнер
- Сортировка и поиск в векторе, в списке, в дереве и в хеше
- Итераторы
- Ленивые итераторы
- RAII
- Умные указатели
- О физическом устройстве памяти
- Статическая и динамическая память
- Формула динамической памяти
- Регенерация
- Ассоциативность кэша, кэш-линия, кэш-промах
- Размещение в регистрах
- Временная и пространственная локальность
Видеозаписи всех уроков курса
Методические указания и домашние задания по каждому уроку
Доступ на закрытый форум для учеников ШП
Сертификат об успешном окончании курса
Преподаватель
Выпускник МГТУ им. Н.Э. Баумана, главный системный инженер компании,
занимающейся поставками терминалов самообслуживания на рынок России и СНГ.
Александр занимается разработкой нового и доработкой уже существующего
программного обеспечения терминалов, а также его последующей интеграцией
в окружение банковской системы. Работает преимущественно с новым оборудованием
и его программным интерфейсом, который чаще всего реализован на C или C++.
Для кого
Курс предназначен как для новичков в программировании, так и для тех, кто уже владеет другими языками программирования или языком С++, но на недостаточном уровне, а также для тех, кому не хватает ясных представлений об организации хранения и обработки данных в компилируемых компьютерных программах.
С++ является языком общего назначения и, сочетая в себе свойства как высокоуровневых, так и низкоуровневых языков, позволяет решать самый обширный круг задач, возникающих в программировании.
Целью курса является заложить основы алгоритмического мышления, научить пользоваться основными концепциями структурного и объектно-ориентированного программирования для решения типичных задач, встающих перед программистом. Курс в достаточно полном объёме знакомит слушателя с возможностями языка С++, заложенными в нём для реализации указанных целей.
Чему вы научитесь
- проектировать алгоритм для решаемой задачи, в том числе определять необходимый набор классов, функций и переменных;
- писать многомодульные программы;
- обрабатывать потоковый ввод, преобразовывать и проверять на корректность текстовые данные, осуществлять вывод данных в требуемом формате;
- обрабатывать данные на уровне бит, в том числе осуществлять упаковку и простое кодирование данных;
- разрабатывать структуру классов для решаемой задачи, реализуя принципы модульности, минимальной связанности, разделения интерфейса и реализации.
- проверка соответствия открывающих и закрывающих скобок в программе на С++; удаление комментариев из программы на С++; другое простое форматирование и проверка текста;
- простые игры типа "Крестики-нолики", "Пятнашки" в консольном режиме;
- извлечение и изменение метаинформации ID3v1-тега mp3-файла;
- печать дерева подкаталогов и файлов заданного каталога;
- псевдографическая реализация игры в шахматы для двух игроков.
Переменные и типы данных
- встроенные типы данных
- объявление переменных
- объявления typedef
- инициализация переменных
- константные переменные
- операция sizeof
- явное и неявное преобразование типов
- массивы
- арифметические операции
- арифметические выражения
- операция присваивания
- приоритет операций
- объекты cin и cout
- операции ввода из потока и вывода в поток
- полезные функции для потокового ввода и вывода
- форматирование вывода
- Управление потоком выполнения программы
- конструкции ветвления (if-else, switch)
- конструкции повторения (for, while, do-while)
- понятие о функциях
- структуры
- объявление структур
- инициализация структур
- обращение к полям структур
- перечисления
- объединения
- двоичное представление целых чисел
- побитовые операции сложения, умножения, инверсии, исключающего "или"
- битовые маски
- упакованные данные
- статические массивы: объявление, указание размера, инициализация
- обращение к несуществующим элементам массива
- указатель
- операции взятия адреса и разыменования
- адресная арифметика
- связь массивов и указателей
- динамическое выделение памяти: операции new/new[] и delete/delete[]
- утечки памяти
- Си-строки как особый вид массивов
- многомерные статические и динамические массивы
- динамические структуры данных
- передача параметров в функцию: по значению и через указатель
- передача в функцию массивов
- константные параметры
- ссылки
- передача параметров по ссылке
- возвращаемое значение: void, указатель, ссылка
- рекурсия
- указатель на функцию
- массивы функций
- функция в качестве аргумента другой функции
- перегрузка функций
- чтение/запись в текстовом режиме
- ввод: посимвольный, по словам, построчный
- чтение/запись в бинарном режиме
- перенаправление стандартного ввода и вывода
- поля и методы
- конструкторы и деструкторы
- модификаторы доступа
- инкапсуляция
- статические члены и методы класса
- константные методы
- инициализация объектов класса
- списки инициализации
- класс std::string стандартной библиотеки C++
- наследование, типы наследования
- последовательность вызова конструкторов и деструкторов
- абстрактные классы
- переопределение методов базового класса
- обращение к методам базового класса
- виртуальные методы
- виртуальный деструктор
- полиморфизм
- специфичное для С++ приведение типов
- перегрузка операций +, +=, [], >>, **, ==, * и др. для своих типов данных
- шаблонные функции
- шаблонные классы
Стоимость 17000 руб. Экономия 1940 руб.
Продажник
Скрытое содержимое.
С++ Управление памятью
С++ Базовый курсhttp://proglive.ru/courses/cpp1