Магистратура
2019/2020
7 языков программирования за 7 недель
Статус:
Курс по выбору (Науки о данных)
Направление:
01.04.02. Прикладная математика и информатика
Кто читает:
Кафедра технологий моделирования сложных систем
Где читается:
Факультет компьютерных наук
Когда читается:
1-й курс, 3, 4 модуль
Формат изучения:
без онлайн-курса
Прогр. обучения:
Науки о данных
Язык:
русский
Кредиты:
4
Контактные часы:
40
Программа дисциплины
Аннотация
Есть мнение, что каждый программист должен изучать по одному новому языку программирования в год, чтобы не потерять квалификацию. В данном курсе мы изучим основу целых 7 языков, чтобы вам было что изучать следующие 7 лет. Вот список этих языков: Ruby, Io, Prolog, Scala, Erlang, Clojure, Haskell. Если вы уже программировали на всех семи, этот курс не для вас. В противном случае, добро пожаловать.
Цель освоения дисциплины
- Получение базовых знаний о 7 языках программирования:Clojure, Haskell, Io, Prolog, Scala, Erlang, and Ruby
Планируемые результаты обучения
- Понимать объектно-ориентированную парадигму
- Понимать логическое и декларативное программировани
- Понимать функциональную парадигму
- Понимать преимущества и недостатки систем статической проверки типов
- Уметь писать распределённые программы
- Уметь писать метапрограммы
Содержание учебной дисциплины
- RubyДинамический объектно-ориентированный язык программирования.
- IoОбъектно-ориентированный язык программирования, использующий прототипную модель наследования, похожую на javascript.
- PrologЯзык логического программирования.
- ScalaМультипарадигмальный язык программирования. Сочетает в себе очень мощную статическую систему проверки типов и функциональные элементы, такие как классы типов.
- ErlangЯзык, созданный для высоконадёжных параллельных и распределённых систем.
- HaskellЧистый фукнциональный язык, способный эмулировать императивное программирование.
- ClojureДиалект Lisp для JVM, обладающий мощными возможностями для метапрограммирования.
Элементы контроля
- Проект на RubyВ начале курса будут представлены темы проекта. Студент должен выбрать одну из представленных тем, и выполнить по ней согласно алгоритма программу
- Проект на Io
- проект PrologПонимать логическое и декларативное программирование
- Проект на ScalaПонимать объектно-ориентированную парадигму Понимать функциональную парадигму Понимать преимущества и недостатки систем статической проверки типов
- Проект на ErlangУметь писать распределённые программы
- Проект на ClojureУметь писать метапрограммы
- Проект на HaskellПонимать функциональную парадигму
- экзаменДисциплина не состоялась. Экзамена не было.
Промежуточная аттестация
- Промежуточная аттестация (4 модуль)0.1 * Проект на Erlang + 0.1 * проект Prolog + 0.1 * Проект на Clojure + 0.1 * Проект на Haskell + 0.1 * Проект на Io + 0.1 * Проект на Ruby + 0.1 * Проект на Scala + 0.3 * экзамен
Список литературы
Рекомендуемая основная литература
- Object-orientation, abstraction, and data structures using Scala, Lewis, M. C., 2017
- Ruby. Объектно - ориентированное проектирование, Метц, С., 2017
- Scala для нетерпеливых, Хорстманн, К. С., 2017
- Tate, B. (2010). Seven Languages in Seven Weeks : A Pragmatic Guide to Learning Programming Languages. Dallas, Texas: Pragmatic Bookshelf. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1716661
- Tate, B., 田和勝, & まつもとゆきひろ. (2011). 7つの言語 7つの世界 : Ruby, Io, Prolog, Scala, Erlang, Clojure, and Haskell = The pragmatic programmers : Seven languages in seven weeks : a pragmatic guide to learning programming languages (Vol. 第1版). 東京都千代田区: オーム社. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=712008
- Алгоритмы искусственного интеллекта на языке PROLOG, Братко, И., Птицина, К. А., 2004
- Конкурентное программирование на Scala : освойте искусство создания современных сложных, масштабируемых и конкурентных приложений на языке Scala, Прокопец, А., 2018
- Логическое программирование на языке Visual Prolog : учеб. пособие для вузов, Цуканова, Н. И., 2008
- Проектирование масштабируемых систем с помощью Erlang/OTP, Чезарини, Ф., 2017
- Путь Ruby, Фултон, Х., 2016
Рекомендуемая дополнительная литература
- Ablak, A., & Damaj, I. (2019). HTCC: Haskell to Handel-C Compiler. https://doi.org/10.1109/DSD.2016.24
- Block, M., & Neumann, A. (2011). Haskell-Intensivkurs : Ein kompakter Einstieg in die funktionale Programmierung. Berlin: Springer. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=371579
- Hutton, G. (2007). Programming in Haskell. Cambridge, UK: Cambridge University Press. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=206716
- Hutton, G., & 山本和彦. (2009). プログラミング Haskell : Programming in Haskell (Vol. 第1版). 東京都千代田区: オーム社. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=711583
- Kunst und Glaube in der lateinischen Heiligenlegende : zu ihrem Selbstverständnis in den Prologen, Strunk, G., 1970
- Mini symposium on foreign direct investment in India / Guest editor: Aradhna Aggarwal. (2018). Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edswao&AN=edswao.513903488
- Prologos con un prologo de prologos, Borges, J. L., 2002
- Prologue to revolution : notes of A. N. Iakhontov on the secret meetings of the council of ministers, 1915, Cherniavsky, M., 1967
- Reading Castaneda : a prologue to the social sciences, Silverman, D., 2014
- Tres novelas ejemplares y un prologo, Unamuno de, M., 2004