Hide menu

In-depth Introduction to Seven Programming Languages


Status Archive
School Computer and Information Science (CIS)
Division CILT
Owner Annika Silvervarg

  Log in  

Course plan

No of lectures

8 seminars.

Recommended for

Graduate students in cognitive science, computer linguistics, cognitive systems, etc.

The course was last given

The course has not been given before.


The course consist of two parts with two different goals:

A series of seminars has the goal of providing an orientation into some of the most critical programming models of our time: dynamic typing, prototype systems, pattern matching, pure functional programming, concurrency, fault tolerance, actor model and versioning.
This is done through the introduction of seven programming languages that illustrates these phenomenon.

A series of optional assignments with nontrivial problems using techniques that show off the languageÂ’s most important features has the goal of providing more practical knowledge of how to use the different programming langugages. The participants can choose if and for how many of the programming languages they want to do the assignemnts.


One (or preferable more) programming languages.


The course is based on the book "Seven languages in seven weeks" by Bruce Tate.
Each programming langugage (a chapter) is treated during a seminar.
Seminars are held every second week and mandatory to attend by course participants.
The aim is to given an overview and of features and techniques in the different programmaing languages, as well as provide time for discussion about the strength and weaknesses of the different languages, and there suitabilty for different applications.
For those students that want to deepen there knowledge there are assignments for each langugage that should be done before the seminar.


The course covers:
The dynamic typing that makes Ruby, Python, and Perl so flexible and compelling.
The underlying prototype system thatÂ’s at the heart of JavaScript.
How pattern matching in Prolog shaped the development of Scala and Erlang.
How pure functional programming in Haskell is different from the Lisp family of languages, including Clojure.
The concurrency techniques that are quickly becoming the backbone of a new generation of Internet applications.
How to use ErlangÂ’s let-it-crash philosophy for building fault-tolerant systems.
The actor model that drives concurrency design in Io and Scala.
How Clojure uses versioning to solve some of the most difficult concurrency problems.


"Seven languages in seven weeks" by Bruce Tate.


Annika Silvervarg


Annika Silvervarg


Active participation in seminars (Mandatory)
Assignments (Optional)


Seminars 2 hp.
1 hp for each programming language where the assignements are completed.
Thus the course can range from 2 hp to 9 hp.


Page responsible: Director of Graduate Studies
Last updated: 2012-05-03