Chevron Left
Back to Programming Languages, Part A

Programming Languages, Part A, University of Washington

4.9
962 ratings
276 reviews

About this Course

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. 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. The three parts are not quite equal in length: Part A is almost as substantial as Part B and Part C combined. 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

By YZ

Dec 03, 2016

I'm just a beginner for CS or SE classes, and find this course really concise and challenging. It opens a door for me to get deeper into programming language. No wonder it got so high average score.

By AL

Mar 22, 2017

Great course!\n\nI think this course has just the right balance of theoretical background, formal definitions, and actual examples to make "just right".\n\nThanks Dan, and everybody else involved!

Filter by:

271 Reviews

By Sean Uchida

Mar 18, 2019

Great course! I learned some concepts of functional programming and language implementation, their advantages and caveats, I'm going check out part B. It's a quite easy course, considering what it is about (it's not an easy subject). But the resources are great and there's plenty of cool activities, this definitely made me a better programmer and I tried to make some things with haskell after I finishing this, and this course definitely made things easier.

By Nicholas Thoughtly

Mar 18, 2019

Incredible course, deepened my understanding of programming considerably!

By Sohom Bhattacharjee

Mar 09, 2019

Amazing Course. Professor Dan really brings out the best in the students, and communicates the material really well. Will be taking Part B and Part C shortly!!

By Icaro Aguiar Perez

Mar 08, 2019

Probably the best MOOC I've ever taken

By CLARISA BEATRIZ HERNÁNDEZ CARPIO

Mar 05, 2019

Muy buena información; nivel alto.

By Christian Koopmann

Mar 04, 2019

Absolutely fantastic. This course is the best MOOC have ever experienced regarding the passion of the instructor, the well thought through structure and just the right level of challenge to keep you engaged without being frustrating. The experience taking the course has changed my perspective on programming languages that I already know and significantly increased my passion for the subject as well as my expectation of what MOOCS can achieve.

By Sean J Anderson

Mar 04, 2019

One of my favorite classes, I retake it just because I enjoy it, and it is a good refresher. Dan has crafted a fine class, everything he teaches is concise and accurate. Now that I have begun my career as a developer, it is easy to see the knowledge in these lessons has been well honed from experience.

By Hydra

Feb 03, 2019

The best introduction to functional languages

By Eric Tran

Jan 26, 2019

I just finished Programming Languages Part A, and I can confidently say that it has been one of the most challenging and rewarding classes that I've taken in the MOOC format. Functional Programming is new to me, but this class gives a great overview of the language paradigm. The assignments are difficult and rewarding. I encourage you to take this class if you've taken an introductory computer science class using a language such as Python, Java, or C++. It is definitely worth the time investment and it will turn you into a more competent programmer.

By Moatasem Samir

Jan 26, 2019

A very, very solid foundation in functional programming and programming in general. I recommend this for anyone who is starting to pick a functional language like Elixir for example and still find difficulties getting around it. Dan's fun way of teaching will make it feel almost second nature to you.