Lectures: Monday, 14:00 - 17:10, S3 (Tomáš Bureš, Václav Pech)
Page in SIS: NPRG014
Grading: Credit
The course shows interesting and advanced concepts of modern programming languages and demonstrates their application together with real practical exercises.
The course will show advanced concepts of OO languages with dynamic typing (demonstrated on Groovy), OO languages with static typing (demonstrated on Scala) and OO languages without classes (demonstrated on IO and briefly on JavaScript/TypeScript to show the implications).
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. The course is taught in English.
The course is organized in an interactive and hands-on manner. To be able to fully participate, please make sure that you have the respective language SDK and optionally an IDE installed on your computer and that you have checked out the GIT repository with the code (https://github.com/d3scomp/NPRG014).
Due to the COVID-19 situation, the course will be conducted in a hybrid way (in-person and also on Teams). You should be automatically assigned to the respective Teams group once you register to the course.
Requirements
To successfully complete the course, students have submit 8 completed homeworks (out of 10 assigned). The submission of homeworks will be through Teams (as Teams Assignments).
Slides and code
Materials for the course can be found at: https://github.com/d3scomp/NPRG014
References
- Dierk Koenig with Andrew Glover, Paul King, Guillaume Laforge and Jon Skeet: Groovy in Action, Manning Publications Co., 2007.
- Martin Odersky, Lex Spoon, and Bill Venners: Programming in Scala, 3rd Edition, Artima, 2016.
- David Flanagan: JavaScript: The Definitive Guide, O’Reilly Media, 2011.
- Bruce A. Tate: Seven languages in Seven Weeks, The Pragmatic Bookshelf, 2010.
- Debasish Ghosh: DSLs in Action, Manning Publications Co., 2010.