Методическое обеспечение курса «Технология программирования»

Курс переработан, и его страница перемещена по адресу https://vk.com/mpei_uii_sdt. Данная страница не обновляется и сохранена для удобства.


Условия получения зачета:

  1. На оценку «отлично» необходимо целиком выполнить ЛР № 1—5.
  2. На оценку «хорошо» необходимо целиком выполнить ЛР № 1—4.
  3. На оценку «удовлетворительно» необходимо выполнить:
    • ЛР №№ 1—3 целиком;
    • по одному заданию, общему или бригадному, из ЛР № 4 и 5 (например, общее задание ЛР № 4 и бригадное задание ЛР № 5).
  4. При невыполнении требований на оценку «удовлетворительно» решение о приеме зачета выносится преподавателем на основе рейтинга успеваемости, формируемого по совокупности сданных заданий.
  5. Актуальный рейтинг успеваемости — в online журнале.

Организация

Курс посвящен языку C++, практическим аспектам программирования, алгоритмам и структурам данных.

Об этой странице

На странице курса размещаются все нужные методические материалы: пособия, задания, списки литературы, актуальная информация. Обновления отмечаются «новостями» под заголовком. Если вы хотите предложить что-то добавить — сообщите преподавателям. Посещайте страницу регулярно, особенно в день перед занятиями, и знакомьтесь со всеми публикуемыми материалами.

Комментарии и предложения с благодарностью принимаются.

Нашли ошибку или опечатку? Выделите её и нажмите Ctrl + Enter. Спасибо!

Учебный процесс

Журнал

Добавлен итоговый рейтинг и время приема зачетов. На случай опечаток оставлен доступ к старой версии.

Материалы для загрузки

Просматривать PDF можно online, если на рабочей станции нет Acrobat Reader. Перенос большей части материалов сразу на Google Docs планируется.

Лекции

  1. Знакомство с языком C++ и его основы

  2. Динамическая память и указатели. Ссылки. Строки C

  3. Объектно-ориентированное программирование (ООП) в C++

  4. Обработка ошибок и механизм исключительных ситуаций в C++

  5. Алгоритмы сортировки

  6. Динамические структуры данных

    Авторский конспект

  7. Шаблоны С++ и стандартная библиотека шаблонов (STL)

  8. Средства автоматизации разработки программ

Лабораторные работы

  1. Введение в язык C++ и его основы. Интегрированная среда разработки Code::Blocks

  2. Динамическая память и указатели. Ссылки. Строки C

  3. Объектно-ориентированное программирование (ООП) в C++

  4. Структуры данных

  5. Шаблоны и STL

Требования

Сдача заданий и защит

Работа считается сданной, если за нее в журнале стоит оценка. Повышать оценку можно, досдавая и исправляя задания в течение семестра (но если по каким-либо причинам оценка ограничена сверху, это сохраняется). Зачетная оценка учитывает и текущую оценку, и оценку в срок.

По первой лабораторной работе необходимо сдать индивидуально защиту, включающую:

  1. Решение теоретической задачи.
  2. На выбор, одно из двух:

    Членам бригады желательно выбрать разное, чтобы не мешать друг другу.

Студент получает номера вопросов (вариантов) из заранее опубликованных списков и может готовиться при помощи любых средств.

По каждой следующей лабораторной работе необходимо:

  1. Выполнить практическое задание (для бригады).
  2. В устной беседе пояснить решение практического задания (индивидуально).

К лабораторной работе не допускаются бригады, в которых хотя бы у одного участника не сдано две и более прошедших работы (кроме пропусков по уважительной причине, конечно же).

При пропуске предшествующего занятия или при опоздании более, чем на 30 минут, для участия в занятии требуется допуск из деканата.

Оформление кода

Предъявляемый для проверки код должен быть аккуратно и единообразно оформлен: переменным даны осмысленные имена, блоки кода выделены отступами и т. п. Правила, как именно это делать, называются соглашениями о кодировании. Вот некоторые популярные:

Неряшливо оформленный код проверяться не будет!

Средства разработки

Рекомендованные

GNU Compiler Collection (gcc) — компилятор и компоновщик

GCC — это бесплатный и открытый кросплатформенный набор средств для компиляции и отладки для различных языков программирования. Установка в ОС семейства *nix описана в документации на сайте (обычно уже есть в системе). В ОС семейства Microsoft Windows рекомендуется установка в составе MinGW или Cygwin.

Code::Blocks — интегрированная среда разработки

Code::Blocks — это бесплатная интегрированная среда разработки (ИСР; англ. integrated development environment, IDE) с открытым исходным кодом для ОС Windows и Linux. Версия для Windows поставляется как в редакции со встроенным компилятором GCC (достаточно установить Code::Blocks), так и без компилятора.

Инструкция по установке рекомендованных средств разработки для ОС Microsoft Windows XP и файл default.conf c минималистичным набором настроек и схемами подсветки кода. Для Windows 7 и 8 рекомендуется устанавливать Code::Blocks с интегрированным MinGW.

Пользуйтесь англоязычными версиями! Локализованные в индустрии практически не применяются, и вам будет сложно найти помощь.

Альтернативные

Можно пользоваться любыми средствами разработки при условиях:

Некоторые альтернативные средства разработки:

Вспомогательные

Статические анализаторы кода:

Для использования расширения интеграции CppCheck в Code::Blocks необходимо указать путь к испольняемому файлу в настройках: Settings / Environment / CppCheck, например, C:\Program Files (x86)\CppCheck\cppcheck.exe.

Генераторы документации

Для использования Doxygen с Code::Blocks при помощи расширения DoxyBlocks нужно:

  1. Загрузить и установить Doxygen.
  2. В диалоге, вызываемом из пункта меню DoxyBlocks / Open Preferences…, указать путь к исполняемым файлам Doxygen.
  3. При дальнейшей работе:

Анализаторы производительности

Системы контроля версий

Содержание курса

Темы приводятся ориентировочно, могут быть изменены, исключены или добавлены.

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

Дополнительные материалы

Литература

Стандарты языка C  и C++

В курсе преподается C++11 (стандарт ISO/IEC 14882:2011).

Доступ к стандартам ISO и ANSI платный (порядка 200–250 $ за документ). Однако, бесплатно доступны черновики (drafts) стардартов, минимально отличающиеся от окончательной редакции. Язык стандартов — только английский.

Печатные издания

Язык C++

  1. The C++ Programming Language, 4th Edition by Bjarne Stroustrup, July 10 2013
  2. Стивен Прата. Язык программирования C++. Лекции и упражнения, 6-е издание / перевод с англ. Корниенко Ю. и Моргуновой А. (C++ Primer Plus (6th Edition). — М.: Вильямс. — 2012 г. — 1248 с.

Алгоритмы и структуры данных

  1. Томас Кормен и др. Алгоритмы. Построение и анализ / пер. с англ. (Introduction to Algorithms) — М.: Вильямс. — 2012 г. — 1296 с.
  2. Роберт Седжвик. Фундаментальные алгоритмы на С++, 2-е издание / пер. с англ. (Algorithms in C++). — М.: DiaSoft — 2001 г. — 688 с.
  3. Стивен Скиена. Алгоритмы. Руководство по разработке, 2-е издание / пер. с англ. (The Algorithm Design Manual, Second Edition) — СПб.: БХВ-Петербург. — 2011 г. — 720 с.

Электронные ресурсы

Преподаватели

Дербенев Николай Викторович

Ведет: лекции.

Связь: см. страницу на сайте кафедры.

Козлюк Дмитрий Александрович

Ведет: лабораторные работы.

Связь: ОСЭП, электронная почта, «ВКонтакте», ICQ 373-337-709, Skype Dmitry.Kozliuk

Правила общения по электронной почте:

Соблюдение этих правил сделает нашу переписку эффективнее и снизит риск путаницы.

Никитин Вадим Владимирович

Ведет: лабораторные работы.


Авторы курса: Дербенев Н. В., Козлюк Д. А., Никитин В. В., кафедра Управления и информатики НИУ «МЭИ», 2013 г.

Ответственный за страницу: Козлюк Д. А. Система Orphus