Hide menu

In-depth Introduction to Seven Programming Languages

2014HT

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.

Goals

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.

Prerequisites

One (or preferable more) programming languages.

Organization

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.

Contents

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.

Literature

"Seven languages in seven weeks" by Bruce Tate.

Lecturers

Annika Silvervarg

Examiner

Annika Silvervarg

Examination

Active participation in seminars (Mandatory)
Assignments (Optional)

Credit

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.

Comments


Page responsible: Director of Graduate Studies