In-depth Introduction to Seven Programming Languages2014HT
|
|
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