computer-science
computer-science copied to clipboard
RFC: Move Class-based Program Design to be taken after Systematic Program Design
Problem: OSSU list courses that would make more sense when rearranged in a different order.
Duration: One month.
Background: Our current curriculum currently recommends taking Class-based Program Design after the Programming Languages classes. I think that it would make more sense if we take Class-based Program Design after SPD instead of PLABC.
Class-based Program Design follows the same concepts closely as Systematic Program Design. It discusses the same concepts that were taught in SPD, but translated to working with OOP-based languages instead of functional languages. This makes sense because in NEU, the course is called Fundies II, which is a course that is taken after Fundies I (which is their version of SPD).
Here is the prerequisites listed on the site:
The course assumes proficiency with the systematic design of programs and some mathematical maturity. It demands curiosity and self-driven exploration and requires a serious commitment to practical hands-on programming.
In fact, I am currently taking Class-based Program Design, and after taking PLABC, I had to refresh some SPD concepts again.
Additionally, these are some interesting things I've noticed when taking Class-based Program Design after PLABC.
Class-based Program Design is a gentler introduction to a statically typed programming language. Until this point, OSSU teaches two programming languages, Python and BSL/Racket, both of which are dynamically typed languages. Programming Languages Part A introduces you to SML, which is a statically typed functional programming language. Due to PL's less hand-holdy nature, I had some difficulties trying to figure out how static typing works. In contrast, Class-based Program Design is a lot more gentle and assumes no knowledge in Java or even in a statically typed language (their first course was in BSL/Racket, after all).
Lastly, PLABC assumes a bit of knowledge with Java (but they're optional, not required). This is more of a side note and not really a requirement, but it would also be nice if we can follow along optional Java example lectures. I think most of us following OSSU would just skip them because we would have no Java knowledge.
Proposal:
- Move Class-based Program Design to be taken after Systematic Program Design.
Alternatives:
- No change in ordering, but may need to tell people to refresh SPD concepts when taking the course.