CS-214
Software Construction
Welcome to CS-214 — Software Construction!
In this course, you will learn how to design and implement reliable, maintainable, and efficient software using a mix of programming skills and fundamental software construction concepts.
Useful links
- Syllabus
- Course policies
- Tools setup, Troubleshooting guide, Computer exam logistics
- Staff
- Moodle
- Course forum
- Course video channel
- Scala Documentation
- Help session rooms:
- Exam-lab rooms:
Labs
Callbacks
Exercises
- Week 1: Recursion & Git I
- Week 2: HOFs & Debugging
- Week 3: Pattern Matching
- Week 4: Polymorphism, Proofs and Tests
- Week 5: Comprehensions, Variance and Specs
- Week 6: Functional Parallelism with Collections
- Week 7: Laziness
- Week 8: Midterm study guide
Debriefs
- Week 1: Setup, Recursion exercises
- Week 2: Higher-order functions, equational reasoning
- Week 3: Pattern matching,
calculatorlab, complexity - Week 3: Debrief on
calculatorlab - Week 4:
huffmanlab, dealing with stack overflows, and extra proofs - Week 5:
anagramstips, unit tests vs integration tests, and VSCode scrollback buffers - Week 6: Fall break!
- Week 7: Midterm!