Summer 2019 Berlin
- Lecture: Mondays, Wednesdays, and Thursdays 14:40 - 16:10
Lecture Schedule
Topics link to slides, where available. Topics noted with (Recitation) are covered in recitation that week, not in lecture. You're responsible for everything listed on this schedule, some of which may not be covered in lecture or recitation.
- PIS means Programming in Scala
- FPIS means Functional Programming in Scala
- SFTI means Scala for the Impatient
- DDD means Domain-Driven Design
- DDDD means Domain Driven Design Distilled
- CA means Clean Architecture
- GoF means Design Patterns: Elements of Reusable Object-Oriented Software
- ES means Essential Scrum
- LCPS means Learning Concurrent Programming in Scala
- RAD means Reactive Application Development
Date | Topics | Reading and Resources | Reminders |
---|---|---|---|
Week 1 | |||
Scala Basics | |||
2019-05-13 | Orientation Day | ||
2019-05-15 |
Intro to CS2340 Install Fest Intro to Scala |
Getting Started PIS, Ch 1 PIS, Ch 2 |
HW0 Released 2019-05-15 |
2019-05-16 |
Values and Variables Scala Control Structures |
Primary reading: PIS, Ch 2, 3, 5 Code: Basics Primary reading: PIS, Ch 7 Code: Basics |
|
Week 2 | |||
2019-05-20 |
Values and Variables Scala Control Structures |
Primary reading: PIS, Ch 2, 3, 5 Code: Basics Primary reading: PIS, Ch 7 Code: Basics |
|
2019-05-22 | Scala Classes and Objects |
Primary reading: PIS, Ch 4, 6 Code: Basics |
HW0 Due 2019-05-22 |
2019-05-23 |
Scala Functions Scala OOP |
Primary reading: PIS, Ch 2.3, 8, 9 Code: Basics PIS, Ch 10, 11 |
M0: Team Formation Due |
Week 3 | |||
2019-05-27 | Scala Case Classes |
PIS, Ch 15 |
HW1 Released 2019-05-27 |
2019-05-29 |
Scala Generics Scala Collections |
PIS, Ch 19 PIS, Ch 16, 17, 24, 25 |
HW2 Released 2019-05-29 |
2019-05-30 | Himmelfahrt - No Class | ||
Practical Software Development | |||
Week 4 | |||
2019-06-03 | Intro to Functional Programming in Scala |
Functional Programming in Scala, Ch 1, 2 |
|
2019-06-05 |
Functional Data Structures Scala Collections |
Functional Programming in Scala, Ch 3 FP Scala Code PIS, Ch 16, 17, 24, 25 |
|
2019-06-06 |
Version Control Systems Build Automation Scala Play Framework |
Pro Git Git branching Topic branches Integreation manager workflow GitHub Workflow SBT Scala Play Documentation |
HW1 Due 2019-06-04 |
Advanced Scala | |||
Week 5 | |||
2019-06-10 | Pfingsten - No Class | ||
2019-06-12 |
Software Engineering Agile Software Development |
ES |
|
2019-06-13 |
Scala Implicits Scala Generics |
PIS, Ch 21 PIS, Ch 19 |
|
Week 6 | |||
2019-06-17 |
Functional Error Handling Scala Monads |
Functional Programming in Scala, Ch 4 Functional Programming in Scala, Ch 10-11 |
|
2019-06-19 | Review 1 |
Review 1 Notes |
M1 Due |
2019-06-20 | Exam 1 |
|
|
Object-Oriented Design | |||
Week 7 | |||
2019-06-24 | Object-Oriented Design |
CA, Ch 7 - 11 GoF, Ch1 - 2 |
|
2019-06-26 | OO Design Patterns |
GoF, Ch |
|
2019-06-27 | Project Work Day | ||
Reactive Software Architecture | |||
Week 8 | |||
2019-07-01 | Scala Generics |
PIS, Ch 19 |
M2 Due 2019-07-02 |
2019-07-03 | Project Demos | ||
2019-07-04 |
Functional Error Handling Testing |
Functional Programming in Scala, Ch 4 PIS, Ch 14 ScalaTest Testing Play Applications |
|
Week 9 | |||
2019-07-08 | Project Work Day | ||
2019-07-10 | Clean Code |
CC |
|
2019-07-11 | Scala Monads |
Functional Programming in Scala, Ch 10-11 |
|
Week 10 | |||
2019-07-15 |
Scala Concurrency Project Demos |
LCPS 4,8; RAD 2-3; PIS, Ch 32 |
M3 Due |
Final Exam | |||
2019-07-18 | Take-home final exam | M4 (Optional Extra Credit) Due 2019-07-19 |