У вас уже есть заявка на текущий период.
Если вы хотите, чтобы данная программа участвовала в розыгрыше гранта в этом месяце, необходимо добавить ее в папку "Интересные мероприятия".
Или создайте заявку на другой период.
28.02.2017 - 31.03.2017 Уточните расписание у организатора. Возможно он не успел обновить расписание.
Форма обучения:
Очная/дневная; Вечерняя
Вид мероприятия:
Курсы
Тип мероприятия:
Открытые
Целевая аудитория
Для программистов, ориентирующихся на разработку приложений реального времени; для разработчиков программного обеспечения для встроенных применений, так как в этой области в настоящее время в основном программируют на языке.
Данный курс является первым в линейке курсов по разработке программного обеспечения, предлагаемых Высшей инженерной школой СПбГПУ.
Языки программирования С и С++, изучаемые в предлагаемом курсе, являются инструментами, сочетающим гибкость/мощь "низкоуровневых" возможностей, присущих языкам ассемблера, с удобством и возможностью "абстрактного" программирования, предоставляемыми современными проблемно-ориентированными языками. Это позволяет с одинаковым успехом создавать как сколь угодно сложные прикладные программы, так и компоненты системного уровня.
Курс, с одной стороны, является вводным для изучения процесса разработки программного обеспечения с использованием современных языков программирования, библиотек программирования и средств разработки. С другой стороны, курс дает целостные и глубокие знания по синтаксису и использованию конструкций языков С и С++, достаточные для самостоятельного создания несложных приложений на языках С и С++.
В курсе изучаются основные понятия языков С и С++ на базе процедурно-ориентированного подхода. Как и при изучении любого языка программирования в курсе предусмотрен начальный (интенсивный) этап знакомства с базовыми понятиями языка. На этом этапе происходит адаптация к нетривиальному (в отличие от других высокоуровневых языков) синтаксису языков С и С++, определяющему их широкие возможности.
Описание программы
Лекция 1. Введение.
Стандарт языка С++ С++11. Краткий обзор аспектов языка и технологий программирования, рассматриваемых в данном курсе, а также вопросов, не входящих в курс (выносимых для самостоятельного изучения).
Общие принципы структурного программирования, их реализация средствами С/С++.
Структура С-программы. Модульность. Раздельная компиляция. Функциональная декомпозиция. Функции С++ вообще и функция main() в частности. Блоки кода – составляющая часть структурного программирования. Оформление текста программы.
Ключевые слова С++.
Идентификаторы.
L_Value, R_Value и низкоуровневые объекты С++.
Операторы С++.
Приоритет и ассоциативность операторов. Обзор категорий операторов языка С. Примеры использования. Специфика использования.
Данные. Константы (литералы).
Виды литералов. Целые литералы. Литералы с плавающей точкой.
Стандарт языка С++ С++11. Краткий обзор аспектов языка и технологий программирования, рассматриваемых в данном курсе, а также вопросов, не входящих в курс (выносимых для самостоятельного изучения).
Общие принципы структурного программирования, их реализация средствами С/С++.
Структура С-программы. Модульность. Раздельная компиляция. Функциональная декомпозиция. Функции С++ вообще и функция main() в частности. Блоки кода – составляющая часть структурного программирования. Оформление текста программы.
Ключевые слова С++.
Идентификаторы.
L_Value, R_Value и низкоуровневые объекты С++.
Операторы С++.
Приоритет и ассоциативность операторов. Обзор категорий операторов языка С. Примеры использования. Специфика использования.
Данные. Константы (литералы).
Виды литералов. Целые литералы. Литералы с плавающей точкой.
Переменные. Фундаментальные типы языка С++. Размеры объектов и оператор sizeof. Размеры объектов базовых типов и шаблон numeric_limits. Знаковость переменной. Приведение типов. Правила неявного приведения типов. Новые операторы явного приведения типов. Тип wchar_t. BOOL и bool.
Объявление и определение переменной. Ключевое слово typedef. Понятия, связанные с переменными. Способы использования перменных и типы компоновки. Размещение переменных и время существования переменных. Ключевое слово static.
Лекция 3
Область видимости переменных. "Скрытие" имени переменной. Оператор разрешения области видимости. Пространства имен. Директива using. Пространство имен стандартной библиотеки. Неименованные пространства имен. Псевдонимы пространств имен.
Инициализация переменных.
Модификаторы const и volatile.
Инструкции.
Категории инструкций. Инструкции выбора. Инструкции цикла. Инструкции безусловного перехода.
Предкомпиляция заголовочных файлов. Защита от «вложенных» включений заголовочных файлов. Заголовочные файлы стандартной библиотеки.
Лекция 4
Указатели.
Понятие указателя. Объявление переменной – указателя. Инициализация указателя и оператор получения адреса переменной. Разыменование указателя. Арифметика указателей. Нулевой указатель. void – указатель.
Указатель и ключевое слово const. Преобразование типа указателя.
Оператор reinterpret_cast.
Массивы.
Понятие массива. Встроенные массивы. Объявление массива.
Инициализация массива. Обращение к элементу массива. Оператор sizeof и размеры массива. Связь массивов и указателей. Указатели на многомерные массивы. Массивы указателей. Модификаторы const и volatile в объявлениях массивов.
Динамическое выделение памяти.
Функции malloc, realloc и free. Операторы new и delete. Формы оператора delete. Динамические массивы.
Лекция 5
Ссылки (reference).
Понятие ссылки. Специфика инициализации и использования. Сравнение ссылок и указателей. Ссылки на временные объекты (rvalue reference – стандарт С++11).
Функции.
Понятие функции. Прототип функции. Определение функции. Вызов функции (специфика inline-функций). Соглашения о вызове функции (__cdecl, __stdcall, __fastcall).
Способы передачи параметров функции: по значению, по указателю, по ссылке. Специфика передачи параметров: выражения в качестве параметров, указатели на массивы в качестве параметров функции, значения параметров по умолчанию, неиспользуемые параметры. Возвращаемое функцией значение. Ключевое слово const и функции: передача функции константных параметров, возвращение константных значений. Обобщенные константные выражения, ключевое слово constexpr (стандарт С++11). Проблемы при возвращении ссылки или указателя. Перегрузка имен функций. Рекурсивные функции.
Лекция 6
Переменное число параметров. "Старые" потоки ввода/вывода языка С. Функции printf и scanf. Ключи формата ввода/вывода. Файловый ввод/вывод. Диагностика ошибок.
Указатель на функцию. Вызов функции с помощью указателя.
Использование указателей на функции в качестве параметров. Массив указателей на функции. Примеры сложных объявлений функций и указателей на функции.
Лекция 7
Агрегатные типы данных. Структуры языка С. Ключевое слово struct. Выравнивание полей структуры компилятором. Использование структур.
Безразмерные массивы.
Поля битов.
Объединения языка С. Ключевое слово union. Использование объединений.
Практика 1. Базовые понятия. Навыки работы в интегрированной среде разработки (IDE).
Базовые типы данных.
Неявное приведение типов данных.
Явное приведение типов данных. Операторы явного приведения типа.
Ассоциативность и приоритет операторов.
Область действия, область видимости, время существования переменных.
Спецификатор класса памяти – static.
Перечисления - enum.
Логический тип bool.
Модификатор const.
Логические условные операторы и операторы отношения.
Циклы.
Индивидуальное домашнее задание по пройденному материалу N1.
Практика 2. Побитовые операторы. Директивы препроцессора. Указатели.
Побитовые операторы и операторы сдвига.
Макросы с параметрами. Директивы условной трансляции. Опции проекта. Заголовочные файлы.
Объявление указателя. Инициализация указателя и оператор получения адреса объекта. Разыменование указателя.
Арифметика указателей.
Преобразование типа указателя.
void – указатель.
Указатели и ключевое слово const.
Конструкции типа "указатель на указатель".
Индивидуальное домашнее задание по пройденному материалу N2
Практика 3. Массивы. Связь массивов и указателей. Динамическое выделение памяти. Сложные указатели.
Массивы.
Объявление и инициализация встроенных массивов.
Неполная инициализация встроенных массивов.
Создание (и уничтожение) динамических массивов. Операторы new и delete.
Простейшие алгоритмы поиска и сортировки.
Указатели на многомерные массивы. Арифметика указателей на многомерные массивы.
Модификатор const с массивами и указателями.
Индивидуальное домашнее задание по пройденному материалу N3.
Практика 4. Функции.
Объявление, определение и вызов функции.
Передача параметров по значению, по ссылке, по указателю.
Передача функции указателя на массив (встроенный массив, динамический массив).
Функции с переменным числом параметров.
Индивидуальное домашнее задание по пройденному материалу N4.
Практика 5. Функции.
Рекурсивные функции.
Указатель на функцию.
Указатель на функцию в качестве аргумента другой функции.
Массивы указателей на функции.
Индивидуальное домашнее задание по пройденному материалу N5.
Практика 6. С-структуры.
Объявление структуры. Создание экземпляров пользовательского типа. Использование структур: массив объектов пользовательского типа, передача агрегатного объекта в функцию.
Поля битов.
Пример использования структур - картотека.
Объединения С.
Практика 7.
Экзамен по курсу.
В качестве учебного пособия по курсу слушателям предоставляется книга «С/С++ Процедурное программирование», скомпонованная автором таким образом, чтобы ее можно было использовать в качестве конспекта лекций.
Есть акция! Скидка студентам на обучение на краткосрочных курсах всех направлений. Скидка 25% студентам Политеха (СПбПУ). Скидка 15% студентам других ВУЗов Санкт-Петербурга. Скидка действия до 1 сентября 2016 года.