Programming Languages I - University of Tübingen
- October 14. Lecture: Introduction
- October 16. Exercise: Scala basics
- October 20. canceled
- October 21. canceled
- October 23. canceled
- October 27. Lecture
- October 28. Lecture
- October 30. Exercise: Pattern matching & alternatives
- November 3. Exercise: Primitives vs. Syntactic Sugar
- November 4. Lecture
- November 6. Lecture
- November 10. Exercise: First-class, Second-class, First-order, Second-order, Higher-order, ...
- November 11. Lecture
- November 13. Lecture
- November 17. Exercise: Pretty Printing, Closures in Java
- November 18 & 20. Lecture: Call-by-name and call-by-need, thunks
- November 24. Exercise: Call-by-name & lazy val in Scala
- November 25 & 26. Lecture: Recursion and Mutation
- December 1. Exercise: Recursion
- December 2 & 4. Lecture: Mutation and Garbage Collection
- December 8. Exercise: Mutable Variables vs. Boxes
- December 9. Guest Lecture by Karl Klose on the Dart to Javascript compiler
- December 16. Lecture: Programming in Continuation-Passing Style
- December 18. Lecture: Automatic CPS Transformation
- January 8. Lecture: First-class Continuations
- January 12. Exercise: Manual CPS Transformation
- ...
- February 2. No Exercise Session
- February 9. Exercise: Example exam
You have to hand in reasonable homework for all but one assignment to attend the exam. Work in groups of 1 or 2 students. Hand in the homework as Scala source files by email to [email protected]. The final grade is the grade of the exam.
- Hand in before Friday evening, October 24:
assignments at the end of exercises/01-scala-basics.scala. - Hand in before Friday evening, November 14:
assignment at the end of exercises/02-pattern-matching.scala. - Hand in before Monday morning, November 24: assignment at the end of exercises/05-pretty.scala.
- Hand in before Monday morning, December 8: assignment in exercises/hw-cbn.scala
- Hand in before Monday morning, December 15: assignment in exercises/hw-mutation.scala
- Hand in before Monday morning, January 19: assignments at the end of exercises/cps.scala