LouvainX: Louv1.01x - Paradigms of Computer Programming
LouvainX: Louv1.01x - Paradigms of Computer Programming

Paradigms of Computer Programming

This course covers functional, object-oriented, and declarative dataflow programming in a unified framework.


This course gives an introduction to all major programming concepts, techniques, and paradigms in a unified framework. We cover the three main programming paradigms: functional, object-oriented, and declarative dataflow. We explain the four ways to do data abstraction and discuss the trade-offs between objects and abstract data types. We present declarative dataflow, the most useful paradigm for concurrent programming, and show how it avoids race conditions. We give a simple formal semantics for all concepts and illustrate them with practical code that runs on the accompanying open-source platform, the Mozart Programming System. This course is targeted toward people with a basic knowledge of programming. It will be most useful to beginning programming students, but the unconventional approach should be insightful even to seasoned professionals.


Simply Audit this Course

Can't commit to all of the lectures, assignments, and tests? Audit this course and have complete access to all of the course material, tests, and the online discussion forum. You decide what and how much you want to do.

Try for a Certificate

Looking to test your mettle? Participate in all of the course's activities and abide by the edX Honor Code. If your work is satisfactory, you'll receive a personalized certificate to showcase your achievement.


Peter Van Roy
Peter Van Roy
Peter Van Roy is full professor of Computing Science and Engineering at the Université catholique de Louvain (UCL) in Louvain-la-Neuve, Belgium. He is well known for the textbook "Concepts, Techniques, and Models of Computer Programming" that explains many difficult programming concepts in a simple and insightful way. For more than ten years he has been teaching two popular programming courses at UCL based on this approach. His research is focused on the general theme of increasing the expressive power of programming languages, with a special focus on large-scale distributed computing. He uses a combination of theory and practical system building to understand how to simplify programming and bring it to a higher level. He is a developer of the Mozart Programming System, a high-quality open-source development platform based on the Oz multiparadigm programming language, which he often uses as a research vehicle to explore and test new ideas.


Basic knowledge of programming in at least one programming language.