Методические указания по самостоятельному изучению литературы по информационным технологиям Учебно-методическое пособие

Методические указания по самостоятельному изучению литературы по информационным технологиям Учебно-методическое пособие


Скачать 189.5 Kb.
Название Методические указания по самостоятельному изучению литературы по информационным технологиям Учебно-методическое пособие
Тип Методические указания
rykovodstvo.ru > Руководство эксплуатация > Методические указания
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОСССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ НИЖЕГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИМ. Н.И. ЛОБАЧЕВСКОГО»

Институт информационных технологий, математики и механики

Методические указания по самостоятельному изучению литературы по информационным технологиям

Учебно-методическое пособие

Рекомендовано методической комиссией ИИТММ для студентов ННГУ, обучающихся по направлениям подготовки

01.03.02 Прикладная математика и информатика,

02.03.02 Фундаментальная информатика и информационные технологии


Нижний Новгород

2018

УДК 004.4
Методические указания по самостоятельному изучению литературы по информационным технологиям.

Составители: Гергель В.П., Карпенко С.Н., Кузенкова Г.В., Кустикова В.Д., Лебедев С.А., Линёв А.В., Мееров И.Б., Пирова А.Ю., Свистунов А.Н., Сысоев А.В., Турлапов В.Е., Шапошников Д.Е., Шестакова Н.В., Штанюк А.А. Учебно-методическое пособие. – Нижний Новгород: Нижегородский госуниверситет, 2018. – 21 с.
Рецензент: д.т.н., доцент каф. ИАНИ, Старостин Н.В.
В учебном пособии приведены списки рекомендованной литературы по следующим разделам компьютерных наук: основы алгоритмизации, языки и технологии программирования, системное программирование, компьютерная графика, базы данных, алгоритмы и структуры данных, параллельное, распределенное и индустриальное программирование.

Основная цель пособия состоит в том, чтобы сформировать и предоставить перечень рекомендуемых источников для их самостоятельного изучения студентами, планирующими дальнейшее трудоустройство в индустрии разработки программного обеспечения. Учитывая большое количество хороших книг по методам и технологиям программирования, авторы пособия не претендуют на полноту приведенных списков, которые могут быть дополнены в будущих изданиях.

УДК 004.4
Содержание



1. Основы алгоритмизации 4

2. Языки и технологии программирования 5

3. Системное программирование 7

4. Компьютерная графика 9

5. Технологии баз данных 11

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

7. Параллельное программирование 14

8. Распределенное программирование 16

9. Промышленное программирование 17

10. Компьютерное зрение 19



1. Основы алгоритмизации


В данном разделе представлена рекомендуемая к изучению литература по основам алгоритмизации. Данная литература акцентирует внимание читателя не столько на конкретных языках программирования, сколько на вопросах разработки базовых алгоритмов. Приведенные в перечне книги могут быть рекомендованы для изучения в старших классах общеобразовательных школ и на первых курсах профильных вузов. В частности, делающим первые шаги в направлении освоения будущей профессии, можно порекомендовать разноплановые книги [2] и [5]. Изучение книги [5] способствует формированию первых навыков разработки программ. Книга [2] содержит массу примеров и может оказаться весьма полезной для тех, кто хочет преодолеть барьер на пути самостоятельного решения задач. Книги [1, 3, 4, 6] направлены на изучение более сложных алгоритмов, востребованных при решении олимпиадных задач по программированию. Книги по алгоритмической тематике, ориентированные в большей степени на студентов, перечислены в разделе «Алгоритмы и структуры данных».

1.1. Книги


1. Долинский М.С. Решение сложных и олимпиадных задач по программированию. – СПб.: Питер, 2006.

2. Кетков Ю.Л., Кетков А.Ю. Практика программирования: Бейсик, Си, Паскаль. – СПб.: БХВ-Петербург, 2001.

3. Окулов С. М. Программирование в алгоритмах. – 5-е изд. (эл.). – М.: БИНОМ. Лаборатория знаний, 2014.

4. Скиена С.С., Ревилла М.А. Олимпиадные задачи по программированию. Руководство по подготовке к соревнованиям – М.: КУДИЦ-ОБРАЗ, 2005.

5. Столяров А.В. Программирование: введение в профессию. Том 1: Азы программирования. – М.: МАКС Пресс, 2016.

6. Шень А. Программирование. Теоремы и задачи. – М.: МЦНМО, 2004.

2. Языки и технологии программирования


Литературу по разделу «Языки и технологии программирования» описывать необычайно сложно – количество книг от «отличных» до «шедевров» в своей области таково, что сколько-нибудь полный список займет многие десятки страниц, даже если рассматривать только самые популярные и широко используемые языки и только устоявшиеся общепринятые технологии разработки. Поэтому в данном разделе представлены книги только по языкам C и C++, на которых ведется обучение программированию на первом и втором курсе института ИТММ ННГУ и только книги по технологии ООП. И даже при таком жестком ограничении каждый преподаватель с большим стажем и каждый специалист-практик со значительным опытом работы на этих языках найдет, чем представленный ниже список дополнить.

С другой стороны, присутствие некоторых книг в представленном далее списке, на взгляд авторов, оспорить не сможет никто. К таковым, безусловно, относится книга [1], не только потому, что написана она создателями языка C, но и потому, что в относительно небольшом объеме авторы книги и изложили сам язык, и представили большое количество содержательных примеров, и выстроили материал так, что книгу вполне можно использовать в качестве самоучителя.

Книги [2] и [3] также относятся к числу обязательных на книжной полке современного программиста. Книга [2] уже давно считается классической по технологии объектно-ориентированного программирования, а книга [3] принадлежит перу создателя языка C++ и рассматривает, в числе прочего, реализацию этой технологии в С++. Сложность и наполнение языка C++ таковы, что объем базовой книги по C++ в несколько раз превышает объем базовой книги по C. Кроме того, и сам материал и сложность его изложения также значительно выше, поэтому для старта изучения языка C++ мы рекомендуем такие книги, как [4–7].

Разработка качественных программ на языке C++ с использованием технологии ООП требует значительного объема знаний и большого практического опыта, в том числе по вопросам эффективного использования возможностей языка, а также корректной и эффективной реализации на нем концепций ООП. Этим вопросам посвящено большое число отличных книг, к числу которых относятся, например, книги [8-10]. К сожалению, устоявшейся русской транскрипции фамилии автора этих книг (Scott Meyers) все еще не сложилось. Дополнительно отметим, что в книге [10] изложение ведется на основе последних стандартов по языку C++ (2011 и 2014 годов). Кроме того, крайне полезным источником информации по этой же теме является раздел «C++ Super-FAQ» сайта [11] (на английском языке).

Интернет-источников с полезной информацией по различным аспектам практического использования языков C и C++, наверное, не меньше, чем книг по этим языкам. Кроме уже упомянутого сайта [11] отметим один из лучших справочных сайтов по C++ [12], раздел C++ сайта [13], а также публикации с тэгом C++ сайта [14], среди которых можно найти много полезных.

2.1. Книги


1. Керниган Б., Ритчи Д. Язык программирования Си. – СПб.: Невский диалект, 2000.

2. Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений. – М.: Вильямс, 2010.

3. Страуструп Б. Язык программирования С++. – М.: Бином-Пресс, 2008.

4. Подбельский В.В. Язык С++. М.: Финансы и статистика. 2003.

5. Шилдт Г. Самоучитель С++. – СПб.: БХВ-Петербург, 2006.

6. Павловская Т.А. С/С++. Программирование на языке высокого уровня. – СПб.: Питер. 2009.

7. Кетков Ю.Л. Введение в языки программирования C и C++. – М.: Интернет-университет информационных технологий. 2006.

8. Мэйерс С. Эффективное использование C++. 55 верных советов улучшить структуру и код ваших программ. – М.: ДМК-Пресс. 2006.

9. Майерс С. Эффективное использование С++. 35 новых способов улучшить стиль программирования. – СПб.: Питер. 2006.

10. Мейерс С. Эффективный и современный С++: 42 рекомендации по использованию C++11 и C++14. – М.: Вильямс, 2016.

2.2. Интернет-источники


11. The C++ Programming Language. – https://isocpp.org.

12. Справочный сайт по C++. – http://www.cppreference.com

13. RSDN. – https://rsdn.org.

14. Хаб C++ на сайте «Хабрахабр». – https://habrahabr.ru/hub/cpp/.

3. Системное программирование


Вопросы системного программирования рассматриваются в рамках нескольких курсов и позволяют понять, в каких условиях выполняются разрабатываемые программы. Литература по архитектуре ЭВМ [1-4] позволяет разобраться в структурной и функциональной организации современных вычислительных систем и сформировать представление о ходе выполнения программ на аппаратном уровне. Книги по операционным системам описывают принципы построения и функционирования современных операционных систем и позволяют разобраться, каким образом и в каких условиях происходит выполнение прикладных программ. Базовые учебники [5-7] содержат информацию о типовых подходах и алгоритмах, реализуемых в операционных системах, в то время как дополнительная литература содержит технические подробности о внутренней реализации распространенных ОС [8-10] и моделях и механизмах, предоставляемых ими прикладным программистам [11-12]. Литература по сетевым технологиям дает начальное представление о функционировании компьютерных сетей, позволяет изучить программно-аппаратную архитектуру сетевых систем, а также базовые методы и алгоритмы, используемые различными компонентами сетевых систем [13-14].

Для ознакомления с материалами [3,6,12,17] требуется знание английского языка.

3.1. Книги


1. Хэррис Д.М., Хэррис С.Л. Цифровая схемотехника и архитектура компьютера. 2-е издание. – Morgan Kaufman, 2013.

2. Хеннеси Д.Л., Паттерсон Д.А. Компьютерная архитектура. Количественный подход. Издание 5-е. – М: Техносфера, 2016.

3. Patterson D.A., Hennessy J.L. Computer Organization and Design: The Hardware / Software Interface. – Morgan Kaufmann, 2011.

4. Таненбаум Э. Остин Т. Архитектура компьютера. – СПб: Питер, 2016.

5. Таненбаум Э., Бос Х. Современные операционные системы. 4-е изд. – СПб.: Питер, 2017.

6. Silberschatz A., Gagne G., Galvin P.B. Operating System Concepts. 9th Edition. – Wiley, 2013.

7. Карпов В.Е., Коньков К.А. Введение в операционные системы. Курс лекций. 2-е изд. – М.: ИНТУИТ.РУ, 2005.

8. Лав Р. Linux. Системное программирование. 2-е изд. – СПб.: Питер, 2014.

9. Руссинович М., Соломон Д., Ионеску А. Внутреннее устройство Microsoft Windows. 6-е изд. – СПб.: Питер, 2013.

10. Руссинович М., Соломон Д., Ионеску А. Внутреннее устройство Microsoft Windows. 6-е изд. Основные подсистемы ОС. – СПб.: Питер, 2014.

11. Рэймонд Э. Искусство программирования для Unix. – М: Вильямс, 2016.

12. Stevens W.R., Rago S.A., Advanced Programming in the UNIX Environment, 3rd Edition. – Addison-Wesley Professional, 2013.

13. Рихтер Дж., Назар К. Windows via C/C++. Программирование на языке Visual C++. – СПб: Русская Редакция, Питер, 2009.

14. Олифер В.Г., Олифер Н.А. Компьютерные сети. Принципы, технологии, протоколы: Учебник для вузов. 5-е изд. — СПб.: Питер, 2016.

15. Таненбаум Э., Уэзеролл Д. Компьютерные сети. 5-е издание. – СПб: Питер, 2016.

16. Сети TCP/IP. Ресурсы Microsoft Windows 2000 Server. – М: Русская редакция, 2001.

Стивенс У.Р. Протоколы TCP/IP. Практическое руководство. – СПб.: "Невский диалект" -"БХВ-Петербург", 2003.

17. StevensW.R., Wright G.R., TCP/IP Illustrated (3 Volume Set) 1st Edition. – Addison-Wesley Professional, 2001.

4. Компьютерная графика


В разделе представлена рекомендуемая к изучению литература по предмету «Компьютерная графика». По данной тематике в России и, особенно, в мире выпускается большое количество учебников, пособий и открытых библиотек для программирования.

Для знакомства с основами компьютерной графики и расширения кругозора в данной области дополнительно к Интернет-материалам курса [1], читаемого в ИИТММ ННГУ им. Н.И. Лобачевского рекомендуется прочитать учебники и учебные пособия
[1-3], в которых изложены базовые понятия, основные проблемы и алгоритмы.

Наиболее широкой в применении областью компьютерной графики является обработка изображений (как двумерных, так и трехмерных), в которой на данный момент накоплено большое количество алгоритмов, многие из которых описаны в учебниках и пособиях [3-6, 9].

Важной частью курса компьютерной графики в Университете Лобачевского является программирование алгоритмов компьютерной графики для графических процессоров. Стандартом для Open Source программирования является библиотека OpenGL. Стандарт активно развивается и включает сегодня прямое программирование графических процессоров на шейдерном языке высокого уровня GLSL. Выпущено значительное количество книг и учебников, посвященных OpenGL, которые помогают освоить этот стандарт (сегодня OpenGL 4.х), например, [7, 8]. Глобальное освещение (виртуальная реальность) и научная визуализация являются интенсивно развивающимися в настоящее время областями. Наиболее интересные дополнительные материалы по ним можно найти на постоянно обновляемых Интернет-ресурсах.

В перечне Интернет-источников указаны открытые онлайн-курсы и видеокурсы
[11–15] по компьютерной графике и обработке изображений. Перечисленные курсы содержат дополнительные материалы, вопросы и тесты для самопроверки. Для ознакомления с материалами [14, 15] требуется знание английского языка. Особое место занимают образовательные ресурсы профессионального сообщества SIGGRAPH (USA) и одноименной ежегодной и крупнейшей в мире конференции [16]. Это лекции, прочитанные в ходе этой конференции лучшими специалистами мира, признанными лидерами в своей области, по самым актуальным направлениям.

4.1. Книги


1. Петров М.Н. Компьютерная графика: Учебник для вузов. 3-е изд. – СПб.: Питер, 2011. – 544 с.

2. Васильев В.Е., Морозов А.В. Компьютерная графика: Учеб. пособие – СПб.: СЗТУ, 2005. – 101 с.

3. Миронов Д.В. Компьютерная графика в дизайне: учебник. – СПб.: БХВ-Петербург, 2008. – 560 с.

4. Ежова К.В. Моделирование и обработка изображений. Учебное пособие. – СПб: НИУ ИТМО, 2011. – 93 с.

5. Гонсалес Р., Вудс Р. Цифровая обработка изображений. Изд. 3-е, испр. и доп. –
М.: Техносфера, 2012. – 1104 с.

6. Яне Б. Цифровая обработка изображений. М.: Техносфера, 2007. – 584 с.

7. Вольф Д. OpenGL 4. Язык шейдеров. Книга рецептов. – М.: ДМК Пресс, 2015. – 368 с.

8. Richard S. Wright. OpenGL superbible: comprehensive tutorial and reference. Michigan. 2010. – 1002 p.

9. Буэно, Суарес, Эспиноса. Обработка изображений с помощью OpenCV. М.: ДМК-Пресс, 2016. – 210 с.

10. Никулин Е.А. Компьютерная геометрия и алгоритмы машинной графики. – СПб.: БХВ-Петербург, 2003. – 560 с.

4.2. Интернет-источники


11. Интернет ресурс курса лекций «Компьютерная графика» для бакалавриата ИИТММ ННГУ: https://sites.google.com/site/turlapovveunn/compgraphics_fiit_pmi и на сайте лаборатории компьютерной графики: http://www.graph.unn.ru/.

12. Курс «Алгоритмические основы современной компьютерной графики» на портале Интуит: http://www.intuit.ru/studies/courses/70/70/info.

13. Курс «Программирование графических процессоров с использованием Direct3D и HLSL» на портале Интуит: http://www.intuit.ru/studies/courses/1120/175/info.

14. Курс «Interactive computer graphics» на портале Coursera: https://ru.coursera.org/learn/interactive-computer-graphics.

15. Курс «Computer Graphics» на сайте Университета MIT (USA): https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-837-computer-graphics-fall-2012/.

16. SIGGRAPH, Open Access Education Courses (http://education.siggraph.org/).

5. Технологии баз данных


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

5.1. Книги


1. Дейт, К. Дж. Введение в системы баз данных. 8-е изд.: Пер. с англ. – М.: Издательский дом «Вильямс», 2005. – 1328 с.

2. Швецов В.И., Визгунов А.Н., Мееров И.Б. Базы данных. Н. Новгород: Изд-во ННГУ, 2004. – 289 c.

3. Silberschatz A., Korth H.F., Sudarshan S. Database System Concepts. Sixth Edition. – McGraw-Hill, 2011. – 1349 p.

4. Elmasri R., Navathe Sh. Fundamentals of Database Systems. Sixth Edition. – Addison-Wesley, 2011. – 1172 p.

5. Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. Базы данных: Учебник для высших учебных заведений / Под ред. проф. А.Д. Хомоненко. – СПб.: КОРОНА принт, 2002. – 672 с.

6. Саймон А. Стратегические технологии БД. – М.: Финансы и статистика, 1999. – 484 с.

7. Хансен Г., Хансен Д. Базы данных. Разработка и управление. – М.: Бином, 2000. – 704 с.

8. Дж. Ульман, Дж. Видом. Введение в системы баз данных. – М.: Лори. – 2000. – 374 с.

9. Мещеряков Е.В., Хомоненко А.Д. Публикация баз данных в Интернете. – СПб.: БХВ-Петербург, 2001. – 572 с.

10. Бекаревич Ю.Б., Пушкина Н.В. СУБД Access для Windows 95 в примерах. – СПб.: BHV, 1997. – 400 с.

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


В данном разделе представлена рекомендуемая к изучению литература по тематике «Алгоритмы и структуры данных». Отметим, что по данной тематике написано большое количество поистине бесценной литературы. Фундаментальные книги [2, 4, 5] выдержали многие переиздания и по сей день стоят на полке у многих специалистов в области компьютерных наук. Обращают на себя внимание ставшие классическими при жизни авторов учебники [3, 6, 7], по которым читают курсы по алгоритмам и структурам данных в ведущих университетах мира. Книга [8] в доступной форме демонстрирует подходы к реализации структур данных на языке C++. Книга [9], электронный вариант которой доступен для скачивания с сайта издательства МЦНМО, содержит большое количество задач и изначально написана для преподавателей, занимающихся информатикой с одаренными школьниками в старших классах. Между тем, данную книгу можно рекомендовать и студентам младших курсов для самостоятельного изучения. Отметим также известную работу [1] нижегородских математиков, на протяжении многих лет ведущих занятия в ННГУ.

В перечне интернет-источников указаны онлайн-курсы [10–18] по алгоритмам и структурам данных. По всем перечисленным курсам доступно множество материалов, включая видео-лекции, которые можно прослушать самостоятельно. Для ознакомления с материалами [10–16] требуется знание английского языка.

6.1. Книги


1. Алексеев В. Е., Таланов В. А. Графы и алгоритмы. Структуры данных. Модели вычислений. – М.: Интернет-университет информационных технологий, 2006.

2. Ахо А., Хопкрофт Д., Ульман Д. Структуры данных и алгоритмы. – М.: Вильямс, 2016.

3. Дасгупта С., Пападимитриу Х., Вазирани У. Алгоритмы. – М.: МНЦМО. – 2014.

4. Кнут Д. Искусство программирования. Том 3. Сортировка и поиск. – М.: Вильямс, 2007.

5. Кнут Д., Грэхем Р., Паташник О. Конкретная математика. Математические основы информатики. – М.: Вильямс. – 2009.

6. Кормен Т., Лейзерсон Ч., Ривест Р, Штайн К. Алгоритмы: построение и анализ, 3-е изд. – М.: Вильямс, 2013.

7. Седжвик Р. Алгоритмы на C++. Фундаментальные алгоритмы и структуры данных. – М.: Вильямс, 2016.

8. Топп У., Форд У. Структуры данных в C++. – М.: Бином, 1999.

9. Шень А. Программирование. Теоремы и задачи. – М.: МЦНМО, 2004.

6.2. Интернет-источники


10. Demaine E. 6.851 Advanced data structures. – Massachusetts Institute of Technology: MIT OpenCourseWare, 2012. – https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-851-advanced-data-structures-spring-2012.

11. Demaine E., Devadas S. 6.006 Introduction to Algorithms. – Massachusetts Institute of Technology: MIT OpenCourseWare, 2011. – https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011.

12. Demaine E., Devadas S., Lynch N. 6.046J Design and Analysis of Algorithms. –Massachusetts Institute of Technology: MIT OpenCourseWare, 2015. –https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-design-and-analysis-of-algorithms-spring-2015

13. Leiserson Ch., Demaine E. 6.046J Introduction to Algorithms. – Massachusetts Institute of Technology: MIT OpenCourseWare, 2005. – https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-introduction-to-algorithms-sma-5503-fall-2005.

14. Sedgewick R. Analysis of Algorithms. – Coursera. – https://ru.coursera.org/learn/analysis-of-algorithms.

15. Sedgewick R., Wayne K. Algorithms, Part II. – Coursera. – https://ru.coursera.org/learn/algorithms-part2.

16. Wayne K., Sedgewick R. Algorithms, Part I. – Coursera. – https://ru.coursera.org/learn/algorithms-part1.

17. Бабенко М.А. Алгоритма и структуры данных поиска, часть 1. Видео-курс в рамках школы анализа данных (Яндекс). – https://yandexdataschool.ru/edu-process/courses/algorithms.

18. Бабенко М.А. Алгоритма и структуры данных поиска, часть 2. Видео-курс в рамках школы анализа данных (Яндекс). – https://yandexdataschool.ru/edu-process/program/computer-science/algorithms2.

7. Параллельное программирование


В данном разделе представлена рекомендуемая литература по общим и специальным дисциплинам, читаемым в институте ИТММ ННГУ, начиная с 3-го курса бакалавриата и до 2-го курса магистратуры, по темам, связанным с параллельным программированием. Изучение этих дисциплин невозможно без освоения, как минимум, общих курсов по основам программирования, алгоритмам и структурам данных и языку C (в некоторых случаях – C++). Предполагается, что изучающие параллельное программирование имеют указанный базис и знакомы с соответствующей литературой.

Общетеоретическая информация по параллельным вычислениям и подходам к разработке параллельных алгоритмов представлена в книгах [1, 2].

Разработка параллельных программ для систем с распределенной памятью с использованием библиотеки MPI (включая не только описание наполнения и возможностей библиотеки MPI, но и примеры программ) подробно рассмотрена в книге [3] и первом томе источника [4].

Параллельное программирование для систем с общей памятью на основе технологии OpenMP может быть изучено по книге [5] и второму тому источника [4].

Библиотека TBB, позволяющая разрабатывать параллельные программы для систем с общей памятью на основе объектного подхода на языке C++, подробно описана во втором томе книги [4]. Там же даны описания и примеры программ для библиотеки ArBB, технологии Intel Cilk Plus, технологии OpenCL.

Разработка параллельных программ для графических процессоров с использованием технологии CUDA описана в книгах [6, 7].

Особенности разработки параллельных программ для сопроцессоров Intel Xeon Phi подробно изложены в учебных курсах [8, 9].

Некоторые инструменты, поддерживающие процесс разработки параллельных программ для систем с общей памятью, описаны в книге [10].

В сети Интернет по каждой из упомянутых технологий может быть найдено значительное количество источников информации. Отметим лишь основные из них: официальный сайт MPI [11], официальный сайт OpenMP [12], разделы сайта компании Intel с документацией по библиотеке TBB [13], библиотеке ArBB [14], технологии Intel Cilk Plus [15, 16], официальный сайт технологии OpenCL [17].

7.1. Книги


1. Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. – СПб.: БХВ-Петербург. 2002.

2. Гергель В.П. Теория и практика параллельных вычислений. – М.: Интернет-университет информационных технологий. 2007.

3. Немнюгин С., Стесик О. Параллельное программирование для многопроцессорных вычислительных систем. СПб.: БХВ-Петербург. 2002.

4. Гергель В.П., Баркалов К.А., Мееров И.Б., Сысоев А.В. и др. Параллельные вычисления. Технологии и численные методы. Учебное пособие в 4 томах. – Нижний Новгород: Изд-во Нижегородского госуниверситета. 2013.

5. Гергель В.П. Высокопроизводительные вычисления для многопроцессорных многоядерных систем. – М.: Изд-во Московского университета. 2010.

6. Линев А.В., Боголепов Д.К., Бастраков С.И. Технологии параллельного программирования для процессоров новых архитектур. – М.: Изд-во Московского университета, 2010.

7. Боресков А.В. и др. Параллельные вычисления на GPU. Архитектура и программная модель CUDA. – M.: Изд-во Московского университета, 2012.

8. Учебный курс «Введение в принципы функционирования и применения современных мультиядерных архитектур (на примере Intel Xeon Phi)» – http://www.intuit.ru/studies/courses/10611/1095/info.

9. Учебный курс «Программирование на современных мультиядерных архитектурах (на примере Intel Xeon Phi)» – http://www.intuit.ru/studies/courses/10612/1096/info.

10. Корняков К.В., Кустикова В.Д., Мееров И.Б., Сиднев А.А., Сысоев А.В., Шишков А.В. Инструменты параллельного программирования в системах с общей памятью. – M.: Изд-во Московского университета, 2010.

7.2. Интернет-источники


1. MPI Forum. – http://mpi-forum.org.

2. The OpenMP API specification for parallel programming. – http://www.openmp.org.

3. Intel® Threading Building Blocks Documentation. – https://software.intel.com/en-us/tbb-documentation.

4. Страница библиотеки ArBB. – http://software.intel.com/en-us/articles/intel-array-building-blocks.

5. Руководство по использованию Intel® Cilk Plus. – http://software.intel.com/sites/products/evaluation-guides/docs/cilk-plus-evaluation-guide.pdf.

6. Спецификация синтаксических конструкций Intel® Cilk Plus. – http://software.intel.com/sites/products/cilk-plus/cilk_plus_language_specification.pdf.

7. OpenCL – официальный сайт. – http://www.khronos.org/opencl.

8. Распределенное программирование


Приведенный ниже список содержит литературу, рекомендованную к изучению по разделу «Распределенное программирование». Всю литературу по этой тематике условно можно разбить на две большие группы. В первую входят работы, посвященные общим проблемам, возникающим при проектировании и реализации распределенных приложений. К таким работам относятся признанные классическими и выдержавшие несколько изданий книги [1] и [2]. Также к этой группе можно отнести получившую широкую известность книгу [3], которая содержит большое количество полезных решений и шаблонов, используемых при проектировании распределенных приложений.

Вторая группа представлена книгами, описывающими особенности использования той или иной технологии программирования применительно к рассматриваемой задаче. Эта группа чрезвычайно многочисленна, поэтому ниже представлены наиболее яркие на наш взгляд ее представители для некоторых часто используемых технологий: [4] – для Java, [5] для C++ (с той оговоркой, что значительная часть книги посвящена вопросам использования технологий MPI и PVM), [6] для С#.

Интернет источники представлены онлайн-курсами.

8.1. Книги


1. Таненбаум Э., Ван Стеен М. Распределенные системы. Принципы и парадигмы – СПб.: Питер, 2003.

2. Coulouris G., Dollimore J., Kindberg T., Blair G. DISTRIBUTED SYSTEMS Concepts and Design (Fifth Edition). – Addyson-Wesley 2012.

3. М., Райс Д., Фоммел М., Хайет Э., Ми Р., Стаффорд Р. Шаблоны корпоративных приложений. – Вильямс, 2016

4. Дейтел Х.М., Дейтел П.Дж., Сантри С.И. Технологии программирования на Java 2. Распределенные приложения. – М.: ООО «Бином-Пресс», 2011

5. Хьюз К., Трейси Хьюз Т. Параллельное и распределенное программирование с использованием C++. – Вильямс, 2004

6. Фленов М.Е. Библия С#. – СПб: БХВ-Петербург, 2011.

8.2. Интернет-источники


7. 6.824: Distributed Systems. – MIT Computer Science and Artificial Intelligence Laboratory. http://css.csail.mit.edu/6.824/2014/index.html.

8. Clouds, Distributed Systems, Networking. – Coursera. https://www.coursera.org/specializations/cloud-computing.

9. Using Python to Access Web Data. – Coursera. https://ru.coursera.org/learn/python-network-data.

10. Параллельные и распределенные вычисления. – Яндекс. https://yadi.sk/d/mxzmc_aTFn2up.

11. Горин С., Крищенко В. Поддержка разработки распределенных приложений в Microsoft .NET Framework. – ИНТУИТ. http://www.intuit.ru/studies/courses/1115/177/info.

12. Свистунов А.Н. Построение распределенных систем на Java. – ИНТУИТ. http://www.intuit.ru/studies/courses/633/489/info.

9. Промышленное программирование


В данном разделе представлены издания, имеющие непосредственное отношение к промышленной (корпоративной) разработке ПО. Этот подход включает широкое использование паттернов проектирования, использование готовых фреймворков и пакетов, упрощающих решение объемных и сложных задач. Для удобства список поделен на несколько подразделов.

К языкам промышленного программирования можно отнести Java, С# и C++, а также набирающие популярность языки функциональной парадигмы (например, F#).

9.1. Паттерны и разработка


1. Гонсалес Е. Изучаем Java EE 7. – Питер, 2014.

2. Гупта А. Основы java EE 7. – O'Reilly, 2014.

3. Йенер М., Фидом А. Java EE: паттерны проектирования для профессионалов. – Питер, 2016.

4. Хеффельфингер Д. Разработка приложений Java EE 7 в NetBens 8. – ДМК Пресс, 2016.

5. Гамма Э., Хелм Р. Приемы объектно-ориентированного проектирования. Паттерны проектирования. – Питер, 2016.

6. Фримен Э., Фримен Э. Паттерны проектирования, – Питер, 2016.

7. Тепляков С. Паттерны проектирования на платформе .NET, – Питер, 2016.

8. Фаулер М., Райс Д. Шаблоны корпоративных приложений, – Вильямс, 2016.

9. Александреску А. Современное проектирование на С++, – Вильямс, 2002.

10. Metsker S. Design Patterns Java Workbook, – Addison-Wesley Professional, 2002.

11. Sarcar V. Java Design Patterns, – Apress, 2015.

12. Metsker S., William C. Wake Design Patterns in Java, – Addison-Wesley Professional, 2006.

13. Мартин Р., Мартин Р. Принципы, паттерны и методики гибкой разработки на языке C#. – Символ, 2011.

9.2. Функциональное программирование


1. Уорбэртон Ричард Лямбда-выражения в Java 8, – ДМК Пресс, 2015.

2. Смит К. Программирование на F#, – Символ-Плюс,2011.

3. Naftalin M, Wadler P. Java Generics and Collections, – O'Reilly Media, 2006.

4. Masood A. Learning F# Functional Data Structures and Algorithms, – Packt, 2015.

5. Petricek T., Trelford P. F# Deep Dives, – Manning Publications, 2014.

9.3. Веб-разработка


1. Williams N. Professional Java for Web Applications, – Wrox, 2014.

2. Prasad M. Java Server Side Programming: The Conceptual Foundation, – CreateSpace Independent Publishing Platform, 2013.

9.4. Мобильные системы


1. Брайан Х., Филлипс Б., Android. Программирование для профессионалов. – Питер, 2016.

2. Дейтел П., Дейтел Х. Android для разработчиков. – Питер, 2016.

3. Jackson W. Android Apps for Absolute Beginners, – Apress, 2012.

9.5. Тестирование


1. Майерс Г., Баджет Т., Сандлер К. Искусство тестирования программ. – Вильямс, 2016.

2. Плаксим М. Тестирование и отладка программ – для профессионалов будущих и настоящих. – Бином, 2013.

3. Криспин Л., Грегори Д. Гибкое тестирование. Практическое руководство для тестировщиков ПО и гибких команд. – Вильямс, 2016.

4. Рассел Д., Кон Р. Тестирование программного обеспечения.

5. Котляров В.П. Коликова Т.В. Основы тестирования программного обеспечения. – М.: Интернет-университет информационных технологий, Бином. Лаборатория знаний, 2009. – 288 c.

6. Котляров, В.П. Основы тестирования программного обеспечения: монография – М.: Интернет-Университет Информационных Технологий (ИНТУИТ), 2015.

7. Anil Hemrajani. Agile Java Development with Spring, Hibernate and Eclipse (Developer's Library), – Sams Publishing, 2006.

8. Jeff Langr. Agile Java: Crafting Code With Test-Driven Development, – Prentice Hall, 2005.

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


1. Чакон С., Штрауб Б. Git для профессионального программиста, – Питер, 2016.


10. Компьютерное зрение


В данном разделе представлена рекомендуемая к изучению литература по компьютерному зрению. Книги [1, 2] являются классическими, они содержат основные постановки задач компьютерного зрения и базовые математические алгоритмы их решения. Указанные источники позволяют сформировать общее представление об области и вопросах, которые в ней рассматриваются. С развитием методологии решения задач компьютерного зрения машинное обучение становится неотъемлемой частью большого количества алгоритмов компьютерного зрения, поэтому появляется литература, в которой представлены различные подходы к решению задач компьютерного зрения с использованием методов машинного обучения [3–6]. Книга [7] содержит наиболее полный обзор методов решения классических задач компьютерного зрения и представляет интерес для исследователя, перед которым поставлена определенная задача обработки визуальных данных. Для более детального изучения методов машинного обучения рекомендуются источники [8, 9].

Наиболее известной открытой библиотекой компьютерного зрения, содержащей реализацию большого числа алгоритмов, является библиотека OpenCV. Изучение возможностей данной библиотеки [10, 11] позволяет быстро собрать базовое решение какой-либо задачи компьютерного зрения с использованием существующих примитивов работы с визуальными данными и простейших методов их обработки.

10.1. Книги


1. Форсайт Д., Понс Ж. Компьютерное зрение. Современный подход. –
М.: Издательский дом «Вильямс», 2004.

2. Шапиро Л., Стокман Дж. Компьютерное зрение. – М.: БИНОМ. Лаборатория знаний, 2006.

3. Рассел С., Норвиг П. «Искусственный интеллект: современный подход (AIMA)», 2-е издание: Пер. с англ. – М.: Издательский дом «Вильямс», 2005.

4. Bishop C.M. Pattern Recognition and Machine Learning. – Singapore: Springler Science+Business Media, 2006.

5. Sonka M., Hlavac V., Boyle R. Image Processing, Analysis and Machine Vision. – Thomson, 2008.

6. Amit Y. 2D Object Detection and Recognition: models, algorithms and networks. – MIT Press, 2002.

7. Szeliski R. Computer Vision: Algorithms and Applications. – Springler, 2011.

8. Hastie T., Tibshirani R., Freidman J. The elements of statistical learning. Data mining, inference and prediction. – Springer, 2001.

9. Goodfellow I., Bengio Y., Courville A. Deep Learning. – MIT Press, 2016.

10. Bradski G. Learning OpenCV Computer Vision with OpenCV Library. – O' Reilly Media Publishers, 2008.

11. Bradski G., Kaehler A. Learning OpenCV 3. Computer Vision in C++ with the OpenCV Library. – O' Reilly Media Publishers, 2016.

Похожие:

Методические указания по самостоятельному изучению литературы по информационным технологиям Учебно-методическое пособие icon Методические указания по изучению курса «Обязательства по оказанию услуг»
Учебно-методическое пособие для магистрантов 1 и 2 курса очной и заочной формы обучения по направлению подготовки
Методические указания по самостоятельному изучению литературы по информационным технологиям Учебно-методическое пособие icon Учебно-методическое пособие для студентов 1, 2 курса очной формы...
Учебно-методическое пособие предназначено для студентов-очников (1-2 курсов) учебных заведений (факультетов) неязыковых специальностей...
Методические указания по самостоятельному изучению литературы по информационным технологиям Учебно-методическое пособие icon Методические указания по изучению учебной дисциплины
Методические указания предназначены для преподавателей русского языка и литературы профессиональных образовательных организаций
Методические указания по самостоятельному изучению литературы по информационным технологиям Учебно-методическое пособие icon Тесты по информатике и информационным технологиям Центр образования «Юниор»
Информационная система «Единое окно доступа к образовательным ресурсам» (Информационно-методическое пособие для учреждений общего...
Методические указания по самостоятельному изучению литературы по информационным технологиям Учебно-методическое пособие icon Методические указания по выполнению практических и лабораторных работ...
Учебно-методическое пособие предназначенодля студентов 3 курса, обучающихся по профессии 23. 01. 03 Автомеханик. Пособие содержит...
Методические указания по самостоятельному изучению литературы по информационным технологиям Учебно-методическое пособие icon Учебно-методическое пособие Рекомендовано методической комиссией...
Методы молекулярной диагностики: Учебно-методическое пособие. Авторы: А. Д. Перенков, Д. В. Новиков, С. Г. Фомина, Л. Б. Луковникова,...
Методические указания по самостоятельному изучению литературы по информационным технологиям Учебно-методическое пособие icon Учебно-методическое пособие Елабуга 2016 ббк 74. 58 Учебно-методическое...
Методическое пособие предназначено для студентов 1 курса высших учебных заведений неязыковых специальностей
Методические указания по самостоятельному изучению литературы по информационным технологиям Учебно-методическое пособие icon Учебно-методическое пособие к изучению курса «детские болезни»
В учебно-методическом пособии представлены современные сведения об этиологии, эпидемиологии, патологии, клинике, диагностике и терапии...
Методические указания по самостоятельному изучению литературы по информационным технологиям Учебно-методическое пособие icon Учебно-методическое пособие Методические указания к практическим...
Государственное бюджетное образовательное учреждение высшего профессионального образования
Методические указания по самостоятельному изучению литературы по информационным технологиям Учебно-методическое пособие icon Методические указания по изучению дисциплины Для студентов заочного факультета
Подготовка к международным полётам. Методические указания по изучению дисциплины/Университет га. С. Петербург,2008
Методические указания по самостоятельному изучению литературы по информационным технологиям Учебно-методическое пособие icon Р. В. Треушников Методические указания по подготовке и сдаче квалификационного...
Учебно-методическое пособие предназначено для студентов, обучающихся по специальности 38. 02. 01 «Экономика и бухгалтерский учет...
Методические указания по самостоятельному изучению литературы по информационным технологиям Учебно-методическое пособие icon Методические указания по выполнению практической (лабораторной) работы...
...
Методические указания по самостоятельному изучению литературы по информационным технологиям Учебно-методическое пособие icon Моя специальность
Методические указания содержат аутентичные тексты для чтения на английском языке по автоматизации производства, мехатронике, информационным...
Методические указания по самостоятельному изучению литературы по информационным технологиям Учебно-методическое пособие icon Методическое пособие Саратов 2008 г. Организация комплексной системы...
Методическое пособие предназначено для руководителей и преподавателей- организаторов обж образовательных учреждений
Методические указания по самостоятельному изучению литературы по информационным технологиям Учебно-методическое пособие icon Учебно-методическое пособие
...
Методические указания по самостоятельному изучению литературы по информационным технологиям Учебно-методическое пособие icon Методические указания для магистрантов направления 38. 04. 01 «Экономика»
«Экономика», магистерской программы 38. 04. 01. 17 «Налоги и налоговое администрирование»): Учебно-методическое пособие Ростов н\Д:...

Руководство, инструкция по применению




При копировании материала укажите ссылку © 2024
контакты
rykovodstvo.ru
Поиск