Learn many of the concepts that underlie all programming languages. Use functional programming and contrast it with
object-oriented programming. Through experience writing programs and studying
three different languages, learn the key issues in designing and using
programming languages, such as modularity and the complementary benefits
of static and dynamic typing. 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 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 – in any language.
Beginning with the Fall 2014 offering, verified certificates are available for this course. The certificates look slightly different than for courses from other institutions. Here is an example.