SubjectsSubjects(version: 945)
Course, academic year 2016/2017
   Login via CAS
Concepts of Modern Programming Languages - NPRG014
Title: Koncepty moderních programovacích jazyků
Guaranteed by: Department of Distributed and Dependable Systems (32-KDSS)
Faculty: Faculty of Mathematics and Physics
Actual: from 2016 to 2019
Semester: winter
E-Credits: 3
Hours per week, examination: winter s.:0/3, C [HT]
Capacity: unlimited
Min. number of students: unlimited
4EU+: no
Virtual mobility / capacity: no
State of the course: taught
Language: English
Teaching methods: full-time
Teaching methods: full-time
Additional information: http://d3s.mff.cuni.cz/teaching/nprg014
Guarantor: prof. RNDr. Tomáš Bureš, Ph.D.
Class: Informatika Mgr. - Softwarové systémy
Classification: Informatics > Programming
Annotation -
Last update: Tajemník Katedry (12.05.2017)
The goal of the lab is to show interesting and advanced concepts of modern programming languages and demonstrate their application together with real practical exercises. The course is intended for master student programs, already having experience with software development (Java/C++/C#). It is however open to other students with deep interest in programming.
Literature -
Last update: Tajemník Katedry (12.05.2017)

Bruce A. Tate: Seven languages in Seven Weeks, The Pragmatic Bookshelf, 2010.

Michael Fogus and Chris Houser: Joy of Closure, Manning Publications Co., 2011.

Dierk Koenig with Andrew Glover, Paul King, Guillaume Laforge and Jon Skeet: Groovy in Action, Manning Publications Co., 2007.

Gregory T Brown: Ruby Best Practices, O'Reilly Media, 2009.

Martin Odersky, Lex Spoon, and Bill Venners: Programming in Scala, 2nd Edition, Artima, 2010.

David Flanagan: JavaScript: The Definitive Guide, O'Reilly Media, 2011.

Debasish Ghosh: DSLs in Action, Manning Publications Co., 2010.

John Barnes: Programming in Ada 2005, Addision Wesley, 2006.

Miek Gieben:Learning Go, http://golang.org/doc/docs.html

Syllabus -
Last update: Tajemník Katedry (12.05.2017)

The course covers the following concepts of programming languages

  • concurency
  • functional aspects
  • meta-programming
  • internal DSL
  • pattern matching
  • message-based communication
  • scaling, transparent deployment
  • prototyping

The concepts will be demonstated using the following languages:

  • Groovy
  • Scala
  • TypeScript/JavaScript, Io

 
Charles University | Information system of Charles University | http://www.cuni.cz/UKEN-329.html