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: Adding a prerequisite for “Introduction to Parallel Programming” Course #1269

Open
Zayd-R opened this issue Sep 3, 2024 · 4 comments

Comments

@Zayd-R
Copy link

Zayd-R commented Sep 3, 2024

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:

  • I recommend adding the [“Effective Programming in Scala”] (https://www.coursera.org/learn/effective-scala) , This six-week course provides comprehensive coverage of both functional and object-oriented programming in Scala course as a prerequisite
@waciumawanjohi
Copy link
Member

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:

  • Functional has more ratings: 616 vs 164
  • Functional has higher ratings: 4.8 vs 4.7
  • Functional is the most recommended Scala resource in hackr.io
  • Functional is the first course listed in the "Free Scala Courses" section of the sidebar of /r/scala

@Zayd-R
Copy link
Author

Zayd-R commented Sep 4, 2024

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

  • Personal Experience: I have taken both courses, and despite the higher number of reviews for the Functional Programming Principles course, I found it to be poorly structured.

  • Learning Curve: Scala has a steep learning curve that is not adequately addressed in the Functional Programming Principles course. This course jumps into high-level abstractions without properly explaining the basics, making it difficult for beginners to follow.

  • Assignment Quality: The assignments in the Functional Programming Principles course are poorly written and highly abstract, which has led to numerous complaints in the course discussion forums. Many students find them hard to follow and complete.

  • Comprehensive Introduction: The Effective Programming in Scala course eases the learning process by introducing a variety of Scala semantics in both object-oriented and functional programming paradigms. This balanced approach helps students grasp the language more effectively.

  • Better Assignments: The assignments in the Effective Programming in Scala course are better written and more practical. They are designed to reinforce the concepts taught in the lectures and are easier for students to understand and complete.

  • Build Tools: The Effective Programming in Scala course explains the build tools that will be used in both courses. This foundational knowledge is crucial for setting up and managing Scala projects efficiently.

  • Concurrency Introduction: The Effective Programming in Scala course touches on concurrency towards the end, which is a key topic that will be further explored in the Parallel Programming course. This provides a smoother transition and better preparation for advanced topics

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
Copy link
Member

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
Copy link
Author

Zayd-R commented Sep 4, 2024

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.

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

2 participants