Chevron Left
Back to Programming Languages, Part A

Programming Languages, Part A, University of Washington

4.9
909 ratings
265 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:

260 Reviews

By Tang Ho Ting

Jan 06, 2019

Very good instructor, challenging but doable homework for week 3 and 4. Exam is too easy though. I would like the exam to be more difficult.

By Atsushi

Jan 06, 2019

the course material was good and fun! but the discussion forum was not so active.

By Ernesto Pavon

Dec 31, 2018

Excellent course! I learned the basic concepts of functional programming which I feel will be useful throughout my entire career, event when not writing functional code.

By Cheng Hao

Dec 22, 2018

Best ever classic courses! Never learnt so much from any programming courses! Expect to see materials can be published as book even textbook! Looking forward further courses from Dan!

By Patrick Burris

Dec 19, 2018

Excellent overview of SML and great introduction to functional programming concepts.

By zouzhitao

Dec 16, 2018

very good course

By hanrai

Dec 13, 2018

This is a wonderful lesson. Bring a lot of new concepts to me. Functional programming is a big surprise.

By Zhengtao Xu

Dec 10, 2018

This is a good course. It helps me to understand the same features about different programming languages, so I can get started quickly when I need to use a new programming language.

By 纯白棒球帽

Nov 08, 2018

When finding programming related courses on the Internet, I knew this lesson in “www.zhihu.com”, where someone give this course a high score evaluation. To satisfy my curiosity I tried a few lessons. However, to my surprise, it attracts me deeply. I told myself it was that courses which I have been looking for. I do believe it`s my great honor to participate and I will try my best to seize the opportunity and finish it perfectly.

By Arent Stienstra

Nov 06, 2018

This is one of the best courses I've taken so far. The assignments are difficult and interesting and more importantly, the assignment teaches the core of programming.