Distributed Software Development

Basic Information

Requirements

News

Important Dates

Lectures

Sylabus

References

Basic Information

Semester Winter 2011
Winter Term 0/2 Z (2 credits)
Lecturers: Michal Malohlava malohlava<at-sign>d3s.mff.cuni.cz
Vaclav Pech pech<at-sign>d3s.mff.cuni.cz
Date and room: every odd Wednesday at 2pm in the room S6
Information in SIS: NPRG014
Resources page: Concepts of Modern Programming Languages

The course shows interesting and advanced concepts of modern programming languages and demonstrates their application together with real practical exercises. Furthermore, students have an opportunity to play with languages. 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.

Requirements

To get credits students are required to submit correct solutions of 5 from 7 homeworks which will be announced during each lesson. The submission of homeworks has to be done via lecture's Grupik in SIS where the results will be also provided.

News

  • The first lecture will take place on Wednesday 5.10.2011 at 14:00 in S6. PLEASE, bring your own laptops if it is possible!

Important Dates

Date Time Note
20th February 2012 23:59 Deadline for remaining homeworks!
11th January 2012 14:00-17:10 The 7th lecture about JavaScript!
14th December 2011 14:00-17:10 The 6th lecture about parallelism in Groovy!
4th December 2011 00:01 Deadline of the fourth homework!
30th November 2011 14:00-17:10 The 5th lecture!
16th November 2011 14:00-17:10 The 4th lecture!
16th November 2011 00:01 Deadline of the third homework!
2nd November 2011 14:00-17:10 The third lecture!
2nd November 2011 00:01 Deadline of the second homework!
19th October 2011 14:00-17:10 The second lecture!
19th October 2011 14:00 Deadline of the first homework!
5th October 201114:00-17:10The first lecture!

0

Lectures

Lesson n. Date Time Summary Homework Slides More
#1 5th October 2011 14:00-17:10 Groovy: language dynamism, functional programming, scripting, meta-programming, DSLs Assignment PDF  PDF Link
#2 19th October 2011 14:00-17:10 Groovy+Grails: meta-programming, DSLs Assignment PDF Link
#3 2nd November 2011 14:00-17:10 Meta-programming, DSLs in Clojure Assignment PDF Link
#4 16th November 2011 14:00-17:10 Meta-programming, DSLs in Scala Assignment WWW Link
#5 30th November 2011 14:00-17:10 Concurrency in Erlang Assignment WWW Link
#6 14th December 2011 14:00-17:10 Concurrency in Groovy Assignment PDF  Link
#7 11th January 2012 14:00-17:10 JavaScript Ecosystem Assignment WWW Link

Sylabus

The course covers the following concepts:

  • concurrency
  • functional programming
  • meta-programming
  • DSL
  • pattern matching
  • prototype-based programming

The features will be demonstrated on the following programming languages:

  • Groovy
  • Scala
  • Clojure
  • Ruby
  • Go
  • JavaScript, CoffeScript, ClojureScript
  • ErLang

References

  • 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

Modified on 2012-01-18