Chevron Left
Back to Programming Languages, Part C

Learner Reviews & Feedback for Programming Languages, Part C by University of Washington

422 ratings

About the Course

[As described below, this is Part C of a 3-part course. Participants should complete Parts A and B first -- Part C "dives right in" and refers often to material from Part A and Part B.] This course is an introduction to the basic concepts of programming languages, with a strong emphasis on functional programming. The course uses the languages ML, Racket, and Ruby as vehicles for teaching the concepts, but the real intent is to teach enough about how any language “fits together” to make you more effective programming in any language -- and in learning new ones. This course is neither particularly theoretical nor just about programming specifics -- it will give you a framework for understanding how to use language constructs effectively and how to design correct and elegant programs. By using different languages, you will learn to think more deeply than in terms of the particular syntax of one language. The emphasis on functional programming is essential for learning how to write robust, reusable, composable, and elegant programs. Indeed, many of the most important ideas in modern languages have their roots in functional programming. Get ready to learn a fresh and beautiful way to look at software and how to have fun building it. The course assumes some prior experience with programming, as described in more detail in the first module of Part A. Part B assumes successful completion of Part A. The course is divided into three Coursera courses: Part A, Part B, and Part C. As explained in more detail in the first module of Part A, the overall course is a substantial amount of challenging material, so the three-part format provides two intermediate milestones and opportunities for a pause before continuing. The three parts are designed to be completed in order and set up to motivate you to continue through to the end of Part C. Week 1 of Part A has a more detailed list of topics for all three parts of the course, but it is expected that most course participants will not (yet!) know what all these topics mean....

Top reviews


Jan 7, 2019

Great course, nicely rounded off the discussions from previous parts. Really puts OOP style programming in context and nicely contrasts it from the functional programming concepts. Highly recommended!


Nov 28, 2020

Very Challenging course but worth it at all the explanation in the three parts helps you a lot I recommend it for every one wanting to approach better to different programming languages.

Filter by:

1 - 25 of 88 Reviews for Programming Languages, Part C

By Vaidas A

Mar 31, 2018

The whole series of courses (parts A, B and C) are must take for anyone learning software engineering through moocs. Dan is one of the best teachers I've seen - to give such clarity of concepts through recorded video lectures is very impressive. I already recommended these courses and will continue to do so. Thanks!

Specifically about C part - I really liked the functional languages (especially I am into lisp-like syntax, very intrigued about other similar functional languages (clojure)) but this course gives a very nice contrast between functional and oop styles as well as deeper understanding of the oop approach to program decomposition for a person that has to write code on a daily basis, but has no software engineering training.

By Greg G

Apr 29, 2018

Finally, wrapped it all up with Ruby, OOP and other great topics. The homeworks, especially the Tetris one were really fun. A great finale to parts B and C with a pretty challenging final exam. I counted: the reading notes together for parts A, B and C are 180 pages. What a journey! Thanks for sharing this course Dan!

By Sean E

Dec 23, 2018

One of the best courses on coursera. Highly recommend this, together with "From Nand to Tetris".


Jul 15, 2020

Dan said in the last lecture that he hoped to have shared some of the passion and awe about programming languages with us, that a small number of powerful ideas underlying these languages, combined with human ingenuity, have led to the amazing variety of software. I definitely felt that passion and awe, and am very grateful to him for taking me through this journey. I learnt a lot from these courses. It's not about ML, Racket or Ruby, but the way I think in programming.

By Jeff T

Apr 6, 2018

Much to be gained with this course through learning language features with a high degree of precision around their semantics. Challenging enough to provide a real sense of accomplishment upon completion. Carefully constructed course materials.

By Feiyu L

Apr 18, 2018

After watching this course, now I truly understand Objects Oriented programming, and its relation with Functional Programming. Strongly recommend!

By Natalia T

Sep 30, 2018

very good

By Olga S

Feb 9, 2018

This is an Absolutely Great Course. One of those rare ones where you feel that each of your smallest efforts brings you a step higher. Dan explains in a very clear and precise way all those concepts that an inexperienced programmer is usually afraid of: function closures, type inference, virtual methods and many more. I definitely recommend all the 3 parts to anyone who wants to call himself a programmer.

Thank you Dan!

By Mohamed M

Sep 6, 2019

One of the most rewarding courses I ever took online if not the best. ( I have taken more than 30 courses on coursera). The instructor is dedicated, easy to follow along with and have awesome tutoring skills overall. I would recommend this course(s) to anyone I know.

By Thassilo H

Nov 1, 2017

Part C ends the story, and if you liked Part A and Part B, there is no reason to not complete your journey with this course. It has the same great teaching style but now talks about OOP and contrasts it with functional programming. The three parts together form a wonderfull learning experience back from the early times where enthusiastic profs recorded lectures themselfes to spread the world about there subject.

By Suvrat A

Oct 22, 2016

This part concludes the Programming Languages series by Dan Grossman! All the 3 parts are amazing. I have learnt a lot in each part. I think now I can look at a problem and then choose a programming languages with some good reasoning behind the choice I make.THANK YOU COURSERA! THANK YOU DAN! :)

By Allison C

Apr 23, 2018

Part C of this course was harder because there were three languages to keep in mind and remember properties of! But it's nice to have been exposed to all the different decisions that go into creating a programming language.

By Shreyas S

Jan 7, 2019

Great course, nicely rounded off the discussions from previous parts. Really puts OOP style programming in context and nicely contrasts it from the functional programming concepts. Highly recommended!

By Henrik B

Feb 8, 2018

A course with a lot of work, but great reward. Dan who holds the course is passionate and knows what he talks about, making it a pleasure to listen to.

By Maria L V

May 10, 2018

Having mostly learned programming on my own I think I had many holes, following these three courses was like a new pair of glasses

By Serjey G I

Apr 26, 2018

Terrific course! Highly recommend to anyone programming.

By Cheng H

Dec 20, 2018

the best programming course i've ever had!!!

By Jin X

Nov 5, 2018

Dan is great. Thanks a lot!


Aug 13, 2019

Excellent set of courses. I love Dr. Grossmans's enthusiasm on the topic. I feel the material is very practical, and applicable to my career in full stack web development. It's immensely helpful having access to this material as I am not classically trained in computer science. I feel more confident navigating the turbulent world of Javascript, and continuously exploring additional languages, and idioms. The rigorous nature of the course is initially off putting as a busy professional doing the course part time, but the results are extremely rewarding. I encourage all interested in development to at least check out some of the videos on this course for a deeper understanding of the tools we use everyday.

By Jack

May 27, 2020

Good finale to the three part series. Part C is probably the most applied part of the whole course, you'll learn things about OOP that you will encounter in your daily job if you deal with Java/C++. By contrasting it with earlier material, you'll also reinforce what functional programming is all about.

Just be warned this course is no piece of cake. Thanks to Dan and the team!

By Iris H

Dec 16, 2019

Great material in the last part of a great course. Section 10 in particular was challenging and fascinating, and I learned a lot about type systems. I would highly recommend this course to anyone interested in learning about the foundations of programming languages in a broad context. This course really bolstered my understanding of programming language theory.

By Johnathan F

Jan 14, 2018

Courses I've taken on programming languages often focus on one language. You learn the different concepts for that one language but don't understand why the language chose those concepts and what the alternatives are. By covering three languages, this course integrates the concepts and their alternatives to give you a solid understanding of how languages work.

By Arent S

Jun 1, 2019

This course was difficult, rewarding and fun at the same time. It took me a while to complete it, and I noticed that even after a while I did not forget the core idea. This is due to the great content of the course. Also, the passion of Dan is inspiring. In conclusion, if you're interested in software development, take this course.

By Zexiang L

Nov 30, 2020

This is one of the best courses I took in Coursera. The learning process is kind of dull, but it is also rewarding, as you finish the course and see how much you learn from it. I would recommend this course to anyone who wants to be a better programmer. It really allows me to see any programming language from a higher perspective.

By danijel k

Nov 10, 2017

The best teacher I've had chance to listen to. I've completed his corse on programming languages several years ago but always like to return and listen again. It's two things like good movie one can always return to and learn something new, or learn how to be a good teacher, and as Dan says: painting that fence. :)