ossu / computer-science

🎓 Path to a free self-taught education in Computer Science!
MIT License
172.65k stars 21.81k forks source link

RFC: Adding a prerequisite for “Introduction to Parallel Programming” Course #1269

Open Zayd-R opened 2 months ago

Zayd-R commented 2 months ago

Problem: The “Introduction to Parallel Programming” course is difficult to follow and poorly structured, Many students, including myself, find it challenging to grasp the concepts due to the lack of clear prerequisites and the course’s overall organization.

Duration: 1 month

Background: The “Introduction to Parallel Programming” course assumes a high level of functional programming knowledge and familiarity with advanced concepts in Scala. However, many students, including myself, find that merely being familiar with the surface-level syntax and basic constructs of Scala is insufficient to grasp the course material effectively.

The course content is highly abstract and delves deeply into functional programming paradigms, concurrency, and parallel computing. It requires a solid understanding of advanced Scala features, such as higher-order functions, immutability, and monads, which are not adequately covered in the prerequisites provided.

Without a rigorous foundation in these areas, students struggle to keep up with the course, leading to frustration and a steep learning curve.

Proposal:

waciumawanjohi commented 2 months ago

Can you talk about why Effective Programming in Scala (hereafter: Effective) is a better choice than Functional Programming Principles in Scala (hereafter: Functional)?

I ask because:

Zayd-R commented 2 months ago

why I recommend the Effective Programming in Scala course over the Functional Programming Principles in Scala course as a prerequisite:

Overall, the Effective Programming in Scala course provides a more structured and comprehensive introduction to Scala making it a better prerequisite for further studies in functional programming and concurrency.

waciumawanjohi commented 2 months ago

A well thought through list!

You mention conversations in the Discord. Can you link to examples? When looking for conversations about Effective Scala I found this exchange comparing Effective Scala to Functional Program Design, which is a follow-on course to Functional Programming Principles. (And to be clear, recommended Effective over Design)

Zayd-R commented 2 months ago

I didn’t mention Discord conversations in my proposal. My points are based on personal experience and observations from the course discussion forums. Unfortunately, I don’t have specific links to share.