FL
After watching this course, now I truly understand Objects Oriented programming, and its relation with Functional Programming. Strongly recommend!
[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.
FL
After watching this course, now I truly understand Objects Oriented programming, and its relation with Functional Programming. Strongly recommend!
AA
The course has its pain points with Ruby versions and waiting for peer reviews, but the content still earns 5 stars
SS
It is a very challenging but rewarding course. Dan is a great teacher, he engages you in learning and makes it much more fun. I enjoyed a lot.
NV
One of the best courses of my career. This was truly programming languages. You'll look at your programs, in any language you use, in a whole different way! Highly recommended!
YC
It is such a great experience for me to learn this course! I want to say a big thank you to Dan and people behind this course!
SY
Excellent course that introduced me to the field of programming languages. I can now see many OOP programs and languages from the functional perspective and simplify a lot of problems.
LC
in my top 3 course on Coursera Platform. A must for anyone interested in Programming, beginner to experienced
AE
It was an incredible journey, have learnt from it a lot of things, Prof. Dan was spectacular, his way of delivering difficult concepts in an easy way is very very good.
AE
Great course that teaches you a lot about different programming paradigms and concepts. Gives you in depth understanding of how programming languages work
SJ
Outstanding! Even if this part of the course is primarily focused on Ruby and OOP, there is a lot in it to learn even for experienced programmers.
PD
Best MOOC taken so far! Learnt a lot about programming languages and highly recommend it to anyone who wants to learn more and understand deeper about programming language in general.
FG
Last Part of the course. A fantastic learning experience. Thank you Dan and other folks participating in the creation of this course, for the great work!
Showing: 20 of 99
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.
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!
One of the best courses on coursera. Highly recommend this, together with "From Nand to Tetris".
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.
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.
After watching this course, now I truly understand Objects Oriented programming, and its relation with Functional Programming. Strongly recommend!
very good
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!
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.
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.
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! :)
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.
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!
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.
Having mostly learned programming on my own I think I had many holes, following these three courses was like a new pair of glasses
Terrific course! Highly recommend to anyone programming.
the best programming course i've ever had!!!
Dan is great. Thanks a lot!
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.
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!