Chevron Left
Back to Programming Languages, Part C

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

4.9
stars
320 ratings
68 reviews

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

SS

Jan 08, 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!

JH

Dec 27, 2016

I took this course about 10 years off the college, and it was excellent refresher on the topics I don't use on a daily basis. Absolutely great lecturer, great videos and study materials!

Filter by:

1 - 25 of 67 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 Sean E

Dec 23, 2018

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

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 Jeff T

Apr 06, 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 Natalia T

Sep 30, 2018

very good

By Olga S

Feb 09, 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 A H A M

Sep 06, 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 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 Henrik B

Feb 08, 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 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 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 06, 2018

Dan is great. Thanks a lot!

By MD T M

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 Thassilo H

Nov 01, 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 Jack

May 28, 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 01, 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 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. :)

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 Jimmy C C

Mar 17, 2020

I watch the video lectures as supplements for a course I am taking at my university, which happens to be based on this course. I feel compelled to say that this is one of the best courses I have ever taken and Dan Grossman is the best instructor I have ever had.

By Joshua H

Feb 10, 2017

As far as I know this is the best series of courses that covers the major programming paradigms and the most valuable idioms that emerge from the different traits of these paradigms. I strongly recommend it to everyone studying computer science!

By Shaohao Z

Jan 19, 2017

It really took quite a lot effort to accomplish the course and I'm sure that I am having a much clearer mind towards different programming language, which is impossible without this course.

So thank you for bringing us this wonderful course, Dan!