Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RFC: Move Class-based Program Design to be taken after Systematic Program Design #1272

Open
etherealcomity opened this issue Sep 13, 2024 · 0 comments

Comments

@etherealcomity
Copy link

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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant