[MUSIC PLAYING]
PETER VAN ROY: Software is
the heart of modern society.
Software is what makes everything run.
I'm Peter Van Roy.
And I will be teaching the course
Paradigms of Computer Programming,
where we will look at software
in a uniform framework,
bringing together many of
the most recent advances.
A paradigm is an approach to
programming a computer based
on a set of coherent principles
or a mathematical theory.
So this course will cover three of the
most important programming paradigms:
functional programming, object-oriented
programming, and deterministic data
flow, a form of concurrent programming
which is very simple, which in my view
should be kind of the heart of it.
In fact, the course is not
for complete beginners.
It's a second-year university course.
So this course is intended both for
students and for software development
professionals.
So there are many highlights
in this course, things
that professionals might not
have seen in their own education.
So I'm not going to simplify things.
I'm going to talk about the things
at the right level of complexity.
This course uses the Oz
programming language.
Oz is a research language
that simplifies these concepts
and takes them to their
natural factored extreme.
Basically this course is the book
Concepts, Techniques and Models
of Computer Programming.
This book was written by myself
and by Seif Haridi, published
in 2004 by MIT Press.
So this book is still
popular now in 2013,
quite unusual for a programming book.
It tries really to present
the concept in a timeless way
to show the progression.
The Kernel language approach was first
really used in depth in this book,
and it shows very, very
many different paradigms.
So now you've seen the motivation
and the themes of the course.
Now we're going to show you in another
video the practical organization
of the course.
[MUSIC PLAYING]
