• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Магистратура 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