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.
Programming Languages, Part A
Instructor: Dan Grossman
Top Instructor
199,140 already enrolled
Included with
(1,879 reviews)
Skills you'll gain
Details to know
Add to your LinkedIn profile
2 assignments
See how employees at top companies are mastering in-demand skills
Earn a career certificate
Add this credential to your LinkedIn profile, resume, or CV
Share it on social media and in your performance review
There are 6 modules in this course
Welcome! Start here! Learn about this course and how it's organized.
What's included
7 videos5 readings1 discussion prompt
This module contains two things: (1) The information for the [unusual] software you need to install for Programming Languages Part A. (2) An optional "fake" homework that you can turn in for auto-grading and peer assessment to get used to the mechanics of assignment turn-in that we will use throughout the course. You can do this module either before or after watching the first few "actual course content" videos in the next module, but you will want to get the software installed soon so you can learn by actively trying out variations on the code in the videos. You will need to install the software to do the homework.
What's included
4 videos3 readings1 programming assignment1 peer review
It's time to dive in! Start with a careful reading of the "Section 1 Welcome Message" and go from there.
What's included
17 videos6 readings1 programming assignment1 peer review
This section is a particularly rewarding one where a lot of ideas come together to reveal a surprisingly elegant underlying structure in ML. As usual, start with the welcome reading, dive into the material, and leave plenty of time to approach the programming assignment methodically.
What's included
22 videos6 readings1 programming assignment1 peer review
This section is all about higher-order functions -- the feature that gives functional programming much of its expressiveness and elegance -- and its name! As usual, the first reading below introduces you to the section, but it will make more sense once you dive in to the lectures. Also be sure not to miss the material on course motivation that we have put in a "lesson" between the other videos for this week and the homework assignment. The material is "optional" in the sense that it is not needed for the homeworks or next week's exam, but it is still very highly encouraged to better understand why the course (including Parts B and C) covers what it does and, hopefully, will change the way you look at software forever.
What's included
28 videos6 readings1 programming assignment1 peer review
We finish Part A of the course with this module. As explained in more detail in the welcome message, we discuss type inference, ML's module system, and the fundamental idea in computing of two computations being equivalent. There is no programming assignment -- instead there is an exam covering all of Part A. Finally, there is a brief wrap-up video for the end of Part A that also looks ahead to Part B and Part C -- we have put it after the exam, so don't overlook it.
What's included
19 videos5 readings2 assignments
Instructor
Offered by
Recommended if you're interested in Software Development
Rice University
University of Colorado System
University of London
Why people choose Coursera for their career
Learner reviews
1,879 reviews
- 5 stars
93.14%
- 4 stars
5.47%
- 3 stars
0.15%
- 2 stars
0.31%
- 1 star
0.90%
Showing 3 of 1879
Reviewed on Jan 28, 2023
Great course! I learned the ML programming language and functional programming in general. I recommend it to everyone interested in programming. Assignments are interesting and fun.
Reviewed on Dec 3, 2017
Exceptionally brilliant course. The instructor, Dr. Dan Grossman became one of my favorite teachers of my life. The contents are solid, illuminating at the same time challenging.
Reviewed on Jan 3, 2017
Instant favourite programming course. Great instructor and material, fun assignments, mind-bendy recursion, cool concepts you didn't know you wanted to know about. Learned a lot.
New to Software Development? Start here.
Open new doors with Coursera Plus
Unlimited access to 10,000+ world-class courses, hands-on projects, and job-ready certificate programs - all included in your subscription
Advance your career with an online degree
Earn a degree from world-class universities - 100% online
Join over 3,400 global companies that choose Coursera for Business
Upskill your employees to excel in the digital economy
Frequently asked questions
Access to lectures and assignments depends on your type of enrollment. If you take a course in audit mode, you will be able to see most course materials for free. To access graded assignments and to earn a Certificate, you will need to purchase the Certificate experience, during or after your audit. If you don't see the audit option:
The course may not offer an audit option. You can try a Free Trial instead, or apply for Financial Aid.
The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.
When you purchase a Certificate you get access to all course materials, including graded assignments. Upon completing the course, your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile. If you only want to read and view the course content, you can audit the course for free.
You will be eligible for a full refund until two weeks after your payment date, or (for courses that have just launched) until two weeks after the first session of the course begins, whichever is later. You cannot receive a refund once you’ve earned a Course Certificate, even if you complete the course within the two-week refund period. See our full refund policy.