Open Zayd-R opened 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:
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.
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)
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.
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: