CS450  ☽  Conclusion  ☽  Lecture 27  ☽  Tiago Cogumbreiro

CS450

Structure of Higher Level Languages

Lecture 27: Conclusion

Tiago Cogumbreiro

1 / 5

CS450  ☽  Conclusion  ☽  Lecture 27  ☽  Tiago Cogumbreiro

Thank you!

2 / 5

CS450  ☽  Conclusion  ☽  Lecture 27  ☽  Tiago Cogumbreiro

Novelties in CS450

  • Introduction of pattern matching in Module 2
    • less boilerplate
    • no need for getters/setters
  • Introduction of TypedRacket in Module 3
    • fewer students in office hours with type mismatch issues
    • some students with type mismatch errors (easier to handle, harder to discuss the output of a test case)
    • types + monad introduce friction (poor inference algorithm), but ultimately for good cause
  • Modules were redesigned to have exactly 3 lectures (trying to make workload comparable across modules)
  • New module to emphasize recursion (give more time to absorb recursion)
3 / 5

CS450  ☽  Conclusion  ☽  Lecture 27  ☽  Tiago Cogumbreiro

Novelties in CS450

What was developed

  • Refreshed/rewrote homework assignments HW2-9 (due to types, patten matching, and course restructuring)
  • New slides/homework for module on optimized recursion (due to module restructuring; new module)
  • Rewrite of slides Lecture 4-27 (due to types, pattern matching, course restructuring)
  • A new homework assignment to emphasize recursion and fold (give more time to practice recursion)
  • New infrastructure for test cases (group test-cases per exercise; allow turning off exercises)
  • More test cases in HW7
4 / 5

CS450  ☽  Conclusion  ☽  Lecture 27  ☽  Tiago Cogumbreiro

Novelties in CS450

Redesigned exercises

  • Improve the focus on homework assignments
  • Approach: more exercises that introduce a new learning concept on an already known algorithm
    • Optimized recursion revisit simple recursion (new)
    • Delayed evaluation revisit optimized recursion (new)
    • Monads revisit recursion (new)
    • Iterative programming language implementation: (i) expressions, (ii) function calls, (iii) out-of-order definitions
    • JavaScript's object module reuses the concepts of Racket's definitions
5 / 5
Rotate for a larger view