MOOC Review: Programming Languages


Course   information

Institution University of Washington
Course Programming Languages
Date Autumn 2013
Platform coursera

Course content

Topics Syntax vs. semantics vs. idioms vs. libraries vs. tools

ML basics (bindings, conditionals, records, functions)

Recursive functions and recursive types

Benefits of no mutation

Algebraic datatypes, pattern matching

Tail recursion

Higher-order functions; closures

Lexical scope


Syntactic sugar

Equivalence and effects

Parametric polymorphism and container types

Type inference

Abstract types and modules

Racket basics

Dynamic vs. static typing

Laziness, streams, and memoization

Implementing languages, especially higher-order functions



Ruby basics

Object-oriented programming is dynamic dispatch

Pure object-orientation

Implementing dynamic dispatch

Multiple inheritance, interfaces, and mixins

OOP vs. functional decomposition and extensibility

Subtyping for records, functions, and objects

Class-based subtyping


Subtyping vs. parametric polymorphism; bounded polymorphism

Format Lecture videos


Programming Assignments

Peer Assessments

Midterm Exam

Final Exam

Target group Beginner





Length 11 weeks
Weekly workload 12 hours/week


Overall impression 9/10
Summary This course was really exciting. Dan Grossman has explained the background and ideas of programming languages by using three different programming languages: ML, Racket and Ruby. I manly use C# and therefore a static typed object oriented   language. By learning the concepts of these other languages I could increase my knowledge about programming languages and I have already used a lot of the learned topics in my daily business. I will recommend this course to each advanced software developer.
Dieser Beitrag wurde unter MOOC, Racket abgelegt und mit , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

Du kommentierst mit deinem Abmelden /  Ändern )


Du kommentierst mit deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s