
#114 overall
Programming Languages, Part A
Coursera
4 recommenders · 4 threads · recommended in 4 years, 2017–2024 · score 3.8
Dan Grossman's first Coursera course on programming languages, taught using SML, covering functional programming concepts such as recursion, types, and how languages are defined. It is the first of a three-part series.
Commenters praise it for opening their thinking about what a programming language is and for providing good recursion practice.
Programming Languagesintermediatefreevideo lectures#functional programming#sml#recursion#grossman#programming languages
Recommendations by year
20062026
About a quarter through this one:
https://effectivetypescript.com/
Also, for a deeper, theoretical understanding of functional and generic programmers, I highly recommend Programming Languages Part A by Dan Grossman on Coursera. That single class did more to open my mind about what is a “programming language”, than anything in my career.
All videos of all courses in Coursera are free. You can watch them fully without providing your credit card info.
There are two types of courses in Coursera- free and paid.
In case of the paid courses, you can go to the course and navigate to the "Buy Subscription" page and click on "audit the course". You can watch all the videos for free, but you don't get access to quizzes and programming assignments (you never know what a web search will turn up ;)) ⊕. You do not get a certificate by completing a course or completing all courses of a "Specialization".
In the case of a free course, you get access to all the videos, quizzes, and assignments. You don't get any kind of certificate. Instead of going to subscription page, you can just click "Enroll" and choose the no certification option.
There are some great courses in the free tier (videos + assignments, no certs) as well. Dan Boneh's Cryptography and Grossman's Programming Languages A, B, C come to mind. Also Model Thinking by Scott Page.
There were some great discussions on HN in the past. [0][1][2]
⊕ There are courses where duplicates of paid assignments and quizzes are provided under "Practice Assignment" as opposed to "Graded Assignment". Like Martin Odersky's Functional Programming Principles in Scala MOOC.
[0]: https://news.ycombinator.com/item?id=25245125
[1]: https://news.ycombinator.com/item?id=16745042
[2]: https://news.ycombinator.com/item?id=22826722
I recommend taking a look at the courses How to Code: Simple Data and How to Code: Complex Data on edX.
https://www.edx.org/course/how-to-code-simple-data
https://www.edx.org/course/how-to-code-complex-data
They use Racket and are based on the book How to Design Programs. I think they're a great supplement to SICP, which is an excellent book you should stick with. The book The Little Schemer is also helpful for solidifying recursion principles. The Programming Languages courses (Parts A, B, and C) on Coursera are excellent two. Part A uses SML, and is another good source for recursion practice, Part B uses Racket, and Part C uses Ruby.
Lastly, are you going through SICP using Scheme or Racket? If not, I highly recommend doing so (in the case you are using the Python version of the book, which has been modified heavily from the original).
Yes, I did the Coursera Racket course and it was great.