Programming in Scala (self-study course)

582643
4
Ohjelmistojärjestelmät
Syventävät opinnot
To pass the course you need to take a separate exam.
Vuosi Lukukausi Päivämäärä Periodi Kieli Vastuuhenkilö
2013 syksy 16.09-01.11. 1-2 Englanti Pietu Pohjalainen

Yleistä

This is a self-study course on the Scala programming language. Students are expected to study the language features and to be able to relate language usage as a tool in implementing modern software architectures. 

Special emphasis is put on functional aspects of the language, e.g.:

- Understanding the functional programming paradigm in the Java Virtual Machine context.

- Using functions as program building blocks; recursion, non-termination, using functions as values.

- Combining functional programming with object-oriented programming. Using immutable objects. Inheritance and dynamic binding.

- Types and pattern matching in Scala.

- Lists as the basic data type in Scala programs.

- Using generic collections and implementing combinatorial search.

- Lazy evaluation and infinite streams.

- Functional reactive programming 

 

 

 

 

Kurssin suorittaminen

The course consists of self-studying the required materials and attending to the exam. In order to have an accepted grade, a student must get at least 50% of points available in the exam. Grades 1-5 are in use. 

The exam will be held at the separate exam session on 12.11.

 

 

Kirjallisuus ja materiaali

Required materials:

1) Martin Odersky, Lex Spoon and Bill Venners: Programming in Scala (2nd edition), chapters 1-12, 15-20, 22-27, 32-33. http://www.artima.com/shop/programming_in_scala_2ed

2) Ingo Maier, Martin Odersky: Higher-Order Reactive Programming with Incremental Lists. In proceedings of ECOOP 2013 – Object-Oriented Programming Lecture Notes in Computer Science Volume 7920, 2013, pp 707-731 http://link.springer.com/chapter/10.1007/978-3-642-39038-8_29

 

Optional and/or helpful materials:

- Functional Programming Principles in Scala, a course in the Coursera learning platform. https://www.coursera.org/course/progfun

- Programming in Scala chapters 13-14, 21, 28-31, 34-35.