Links & Materials

Без систематического чтение стать приматом невозможно

Без систематического чтения стать приматом невозможно

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

Дополнительная литература

Начинаю с дополнительной литературы поскольку считаю её важнее основной. Изучить основы программирования не прочитав ни одного учебника возможно. Конечно самые-самые основы. Можно также получить фрагментарное представление о предмете и успешно сдать все лабораторные задания. Но стать настоящим специалистом не освоив алгоритмов очень сложно. Возможно это слегка провокационное заявление, но я должен как-то стимулировать Вас хоть попытаться освоить этот материал:

  1. Thomas Cormen, Charles Leiserson, Ronald Rivest, Clifford Stein. Introduction to Algorithms, Third Edition// MIT Press, 2009.
    Имеется перевод
    Кормен Т., Лейзерсон Ч., Ривест Р., Штайн K. — Алгоритмы. построение и анализ — 2013.
    Это третье издание книги. Поскольку часть материала из второго издания в третьем опущена, стоит посмотреть и его. Например, чтобы познакомиться с биномиальными кучами. Так же авторы поступили и со вторым изданием — добавили новое, но убрали часть интересного материала. В результате приходится покупать все три издания, пока кто-то не соберёт все в одной компиляции. По крайней мере у меня есть эти книги в бумажном виде.
  2. Стивен Скиена. Алгоритмы: руководство по разработке// Второе издание. — БХВ.- 2011.
  3. Robert Sedgewick and Kevin Wayne. Algorithms (Fourts edition) // Princeton University.- 2011 — Имеется перевод.
  4. S.Dasgupta, C.H.Papadimitriou, U.V.Vazirani. Algorithms// McGraw-Hill.- 2006. — Имеется перевод.
  5. Грэхем Р., Кнут Д., Паташник О. Конкретная математика. Основание информатики. Пер. с англ. —М.: Мир, 1998. — 703 с.

Учебники

  1. С.Б.Липпман, Ж.Л.Лажойе, Б.Е.Му. Язык программирования С++. Базовый курс. Пятое издание.- 2014
    (Stanley B. Lippman, Josée Lajoie, Barbara E. Moo. C++ Primer: Fifth Edition.- Addison Wesley, 2013)

    Одна из книг вполне приемлемых для начального ознакомления с основами языка С++ 11-й версии. Читать нужно короткими порциями. Сначала английский, потом русский текст. Я бы посоветовал повторить эту процедуру для уточнения или закрепления материала и лексики. Подобный подход позволит Вам выучить по крайней мере один из языков.

  2. С.Прата. Язык программирования C++. Лекции и упражнения.- 2012
    Prata S. C++ Primer Plus

    Книга также по 11-й версии языка С++. Возможно немного более серьезный подход к изложению материала по сравнению с п.1. Но еще более желательно читать английский вариант в вперемешку с русским переводом. Перевод (как и в большинстве подобных книг) довольно сырой и местами будет невозможно что-либо понять без английского текста. Например, вместо того, чтобы указать, что short это сокращенная форма записи short int переводчики сообщает, что «тип short имеет более узкий диапазон значений, чем тип short int». Фильтровать подозрительные места Вам поможет английская версия книги.

Задачники

  1. С.А.Абрамов, Г.Г.Гнездилова, Е.Н.Капустина, М.И.Селюн. Задачи по программированию. — Вологда, 2000
    Один из многих вариантов добротного задачника по программированию. Используется как основной для базового уровня. Если Вы умеете решат задачи этого сборника и оформлять решения по предъявляемым требованиям, то можете смело считать, что минимальная оценка Вам гарантирована.
  2. А.Юркин. Задачник по программированию. — СПб: Питер, 2002, 192 с.
    Несколько более трудные в среднем задачи по сравнению с предыдущим задачником. Трудность объясняется не столько объемом или запутанностью кода решения, сколько большими размышлениями над алгоритмом.

Программное обеспечение

  1. ideOne
    Среда программирования развернута в облаках и позволяет компилировать и выполнять на сервере программы на различных языках программирования. Написанный код можно (нужно!) сопроводить пояснением. Срок хранения Ваших текстов не ограничен. Есть возможность красивой публикации кода программы на своих сайтах в сети (справа есть блок «<script…» для копирования и вставки на свой сайт). Мы выбираем язык программирования С++ 11.
  2. Microsoft Visual Studio Express 2013 для Windows Desktop с обновлением 3
    Как не удобна ideOne для первых опытов, в ней не хватает отладчика с возможностью пошагового выполнения программы и просмотра значений переменных. Если Вы хотите поскорее испытать удовольствие от «профессиональной» работы, то можете загрузить и установить этого монстра. Панель управления и меню будут напоминать самолётный кокпит. Сотни кнопочек, лампочек и движков позволят Вам легко ввести среду программирования в штопор. Код, генерируемый при создании проекта, имеет некоторые особенности, которые первое время сбивают. При публикации код нуждается в некотором несложном редактировании.
  3. CodeLite
    Эта неплохая среда программирования может работать не только под Windows, но и под Linux, и в MacOS. В состав данной инсталляции входит возможно лучший из существующих компиляторов GNU С++ и система поддержки тестов. Довольно простой интерфейс и вполне взрослые возможности. Если интерфейс системы Вам не понравился, можно вместо неё установить аналогичную среду Code::Blocks.
  4. Koding
    Полноценная бесплатная среда разработки в браузере. См. инструкцию здесь.

Исходные данные

  1. Для задач по обработке текстов потребуется текст большого объёма. Рекомендуется использовать этот текст или большой отрывок из него
  2. В некоторых задачах необходим словарь. Точнее просто перечень слов. Предлагаю воспользоваться списком 2500 наиболее употребительных английских слов (составлен Александром Васильевым).

Дистанционное (online) обучение

Эти странные длительные каникулы позволят Вам полностью забыть весь материал и утратить приобретенные навыки. Конечно 2-3 раза в неделю мы будем встречаться и заниматься программированием. Однако это исключительно на добровольных началах. Т.е. часть студентов ходить на эти занятия не станет. Для них полезным выходом является домашнее онлайн обучение. Или как минимум просмотр видеолекций (смотри ниже).

  1. C++ Institute. Англоязычный ресурс (пока бета версия) на котором есть два учебных курса:
    • CLA — по языку программирования Си
    • CPA — по языку С++ и объектно-ориентированному программированию.

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

  2. Introduction to Computer Programming.
    • Часть 1 в настоящее время заканчивается, но материалы будут доступны в архиве.
    • Часть 2 начинается в конце сентября. Можно просматривать и проходить курс и позже в любое время (будет доступен архив).
  3. Несколько курсов Стэнфордского университета. Не так много конкретного или остро актуального материала, но много концептуально полезных понятий. Как минимум два из трёх курсов очень интересно слушать. Яркое ток-шоу талантливых преподавателей.

    Посмотрите по кусочку какой-либо лекции из середины каждого курса и сделайте выбор, что будете изучать. А можно подряд. Или только второй курс.

  4. Object-Oriented Programming in C++ — хороший и довольно объёмный курс. Много конкретного, полезного учебного материала. Не так ориентирован на практическое программирования как то, чем занимаемся мы. Но в этом его преимущество.
  5. Видеолекции. К сожалению не всегда студент может присутствовать на лекции. Для этого случая как нельзя лучше подходят видеолекции. Мне понравились лекции Евгения Линского с проекта «Открытая библиотека видеолекций». Их полезно посмотреть и тем, кто присутствовал на занятиях, поскольку у Евгения другой подход к изложению и подбору материала. В тоже время у нас близкое понимание языка и того как его нужно изучать.

Мазурок Игорь Евгеньевич

Мазурок Игорь Евгеньевич

Разработчик программного и информационного обеспечения.
Доцент Одесского национального университета имени И.И.Мечникова
Учёный в области защиты и противодейтствия в интеллектуальных информационных системах
Мазурок Игорь Евгеньевич

Latest posts by Мазурок Игорь Евгеньевич (see all)