Course start: Friday April 27 at 13:15 in E:2116. Mandatory preparations before admission.
The course is flexible and individualized, depending on qualifications and ambitions.
There are two main objectives:
1.To learn (more about) Scala, including the combination of object orientation + functional programming
2.To explore how Scala can be used in teaching programming at undergraduate level
Minimum qualifications: This is a beginner's course in Scala for those who already know the basics of object-oriented programming in e.g. Java, Simula, Object Pascal etc., but we also welcome you who already know little or much about Scala.
Text book: Programming in Scala, Second Edition
by Martin Odersky, Lex Spoon, and Bill Venners
Credits and scope
The course is individualized for each participant to contain one or more of these components depending on the ambition (corresponding to between 1.5 and 7.5 ECTS credits). The course is divided into 3 optional parts. Parts 1 and 2 focus on Scala in practical systems development and teaching. The project in Part 3 can be selected freely deepening on interest, theoretical or practical / empirical studies on everything that is in some way related to Scala.
Part 1. Chapter 1-12, Appendix A
The basics of Scala (syntax, objects, classes, differences to Java, the essentials of functional programming, traits, etc.) distributed on active participation in 2 tutorials of 3 hours each, equivalent to 1.5 credits for graduate students, or about one week of full time studies. Examination: presentation and discussion of homework at seminars. Sample homework assignment: Describe by example code <concept in Scala> and discuss the advantages and disadvantages; <concept in Scala> can be for example the "difference between mutable and immutable data structure"
Part 2. Chapter 13-24
Advancement in Scala (case classes, pattern matching, type parameterization, implicit conversions, etc.) distributed on active participation in 2 tutorials of 3 hours each, equivalent to 1.5 credits for graduate students, or about one week of full time studies. Examination: presentation and discussion of homework at seminars.
Part 3. Selected portions from Chapter 25-35
Project work (eg. implement something in Scala that you need anyway in your research / teaching, a study / evaluation of something Scala-related such as Scala Test as an alternative to JUnit, etc.), divided into individual project + 1 seminar in which all projects are presented, equivalent to 2 to 4.5 ECTS credits for graduate students, or about 1.5-3 weeks of full-time studies, depending on the level of ambition. Requirements: project results and presentation.
Participants are expected to contribute to the teaching of the course, by preparing presentation / discussions on various parts of the course and teaching them to other participants.
Examiner: Bjorn Regnell (or the PhD student's supervisor if that is preferred based on the project).
Lecturers: Björn Regnell and Christian Söderberg, course participants and invited lecturers