Distributed Software Development
|
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 2011 | 14:00-17:10 | The first lecture! |

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
|