Fall 2012

Advanced Systems Lab - Spring 2012 - Teaching Material

Lecture Slides

Week Topic
1. 18.09.2012 Introduction and administration (pdf, pptx)
2. 25.09.2012
3. 02.10.2012
Throughput and Response Time (pdf, pptx)
4. 09.10.2012 Workloads (pdf, pptx)
5. 16.10.2012
6. 23.10.2012
Statistics (pdf, pptx)
7. 30.10.2012 Experimental Design part 1 (pdf)
8. 06.11.2012 Queueing Theory (pdf)


Week Topic
1. 20.09.2012 Project Infrastructure (Slides from the plenary session)
2. 01.11.2012

Gnuplot Tutorial

3. 27.11.2012

Queueing Exercises 1, Queueing Exercises 2


The project consists of the (1) design and development of a message based middleware platform, (2) evaluation and analysis of its performance, and (3) development of an analytical model of the system and an analysis of how the model predictions compare to the actual system behavior.

Grading Scheme:
Milestone 1: 30%
Milestone 2: 40%
Milestone 3: 30%

Information Retrieval - Fall 2012

Course Description

The course presents an introduction to the field of information retrieval and discusses automated techniques to effectively handle and manage unstructured and semi-structured information. This includes methods and principles that are at the heart of various systems for information access, such as Web or enterprise search engines, categorization and recommended systems, as well as information extraction and knowledge management tools.

The plan for exercise classes: there will be 3 or 4 small programming projects which one of them is optional and the rest are mandatory. In other words, in order to pass the course you need to hand in all, except one, of the projects. It's up to you to choose which project to skip. Projects will be done by groups of 3 or 4 students. Please form (or join)  a group as soon as possible and let the TAs know. The projects results and artifacts will be discussed face to face in exercise classes. Moreover, some of the exercise sessions are reserved for giving tutorials on the subjects that are not fully covered in lectures (mainly, the necessary mathematical basics). The exact  schedule for these tutorials will be announced in advance.


Course Materials

See here



Prof. Thomas Hofmann



Anja Grünheid

Simon Lösing






  1. Introduction
  2. Vocabulary and Dictionaries
  3. Boolean Retrieval Model
  4. Index Construction and Compression
  5. Vector Space Model
  6. IR Evaluation
  7. Relevance Feedback and Query Expansion
  8. Text Categorization
  9. Document Clustering
  10. Web Search
  11. Link Analysis


  • Lecture:   Wed     09:00 - 11:00   ML F 34
  • Exercise:  Wed     11:00 - 12:00   ML F 34



C. Manning, P. Raghavan, H. Schütze: Introduction to Information Retrieval, 2008, Cambridge University Press. Online version available here.



Systems Programming and Computer Architecture - Fall 2012

What's new?

  • Dec. 17: Slides for Lectures 25&26 are up.
  • Dec. 13: Assignment 11 is up.
  • Dec. 10: Slides for Lectures 23&24 are up.
  • Dec. 4: Sample solutions for Assignments 6 & 7 are up.
  • Nov. 26: Slides for Lecture 19&20 are up
  • Nov. 22: Assignment 8 is up.
  • Nov. 19: Slides for Lecture 17&18 are up.
  • Nov. 15: Assignment 7 is up.
  • Nov. 14: Sample solutions for Assignments 4 & 5 are up.


Week no. Lecture no. Lecture date Lecture topic Book (2nd ed.)
1 1 Tue 18 Sep Intro, admin, bit, bytes:
1up-pdf, 6up-pdf
2 Wed 19 Sep Integer arithmetic:
1up-pdf, 6up-pdf
2 3 Tue 25 Sep Floating Point:
1up-pdf, 6up-pdf
4 Wed 26 Sep Machine Basics:
1up-pdf, 6up-pdf
3.1 - 3.4, 3.13
3 5 Tue 2 Oct. More machine operations:
1up-pdf, 6up-pdf
6 Wed 3 Oct. Control transfer:
1up-pdf, 6up-pdf
5 7 Tue 16 Oct. More procedures; array access:
1up-pdf, 6up-pdf
8 Wed 17 Oct. Structures, alignment, floats:
1up-pdf, 6up-pdf
6 9 Tue 23 Oct. Memory layout:
1up-pdf, 6up-pdf
3.12, 5.1-5.11
10 Wed 24 Oct. Advanced C:
1up-pdf, 6up-pdf
7 11 Tue 30 Oct. Sequential processor design
1up-pdf, 6up-pdf
4.2 - 4.3
12 Wed 31 Oct. Pipelined processor design #1
1up-pdf, 6up-pdf
4.3 - 4.4
8 13 Tue 6 Nov. Pipelined processor design #2
1up-pdf, 6up-pdf
4.5 - 4.6
14 Wed 7 Nov. Optimization
1up-pdf, 6up-pdf
5.6 - 5.11
9 15 Tue 13 Nov. Caches and Optimization
1up-pdf, 6up-pdf
6.2 - 6.6
16 Wed 14 Nov. Linking
1up-pdf, 6up-pdf
6.6, 7.1-7.14
10 17 Tue 20 Nov. Exceptions
1up-pdf, 6up-pdf
18 Wed 21 Nov. Virtual memory I
1up-pdf, 6up-pdf
11 19 Tue 27 Nov. Virtual memory II
1up-pdf, 6up-pdf
20 Wed 28 Nov. Devices
1up-pdf, 6up-pdf
no book material
ns16550 data sheet
12 21 Tue 4 Dec. Memory allocation I
1up-pdf, 6up-pdf
22 Wed 5 Dec. Memory allocation II
1up-pdf, 6up-pdf
9.10 - 9.11
13 23 Tue 11 Dec. More Devices
1up-pdf, 6up-pdf
no book material
21140A data sheet
24 Wed 12 Dec. Multiprocessing
1up-pdf, 6up-pdf
no book material
14 25 Tue 18 Dec. Synchronization primitives
1up-pdf, 6up-pdf
no book material
26 Wed 19 Dec. Multiprocessing II
1up-pdf, 6up-pdf
no book material


Solutions (password protected)

Week no. Date Topic Material
1 20 Sept. C Introduction Part I C Tutorial I
Unix Tutorial
2 27 Sept. C Intro Part II and Assignment1
3 & 4 4 Oct. Assembly
5 18 Oct. Bomblab and Assembly (cont.) 
6 25 Oct. Programming in C
7 1 Nov. Sequential Processor Architecture
8 8 Nov. Pipelined Processor Architecture
9 15 Nov.  Performance measurement and optimization  assignment7.pdf   a7_handout.tar.gz
10 22 Nov. Linking  assignment8.pdf 
11 29 Nov. Virtual memory  assignment9.pdf 
12 6 Dec. Page table programming  assignment10.pdf   handout_a10.tgz
13 13 Dec. Memory management  assignment11.pdf
14 20 Dec. Q & A   


This course introduces the fundamental concepts, mechanisms, and techniques that underpin how computer systems process information, execute programs, and interact with the outside world. We focus on computing immediately above and below the boundary between hardware and software, and expose students to the practical issues that affect performance, portability, robustness, and extensibility through assembly language, the C programming language, and computer hardware from the perspective of systems software.

Topics include:

  • Representing information in computer systems
  • Systems programming in C
  • Assembly language and compiled code
  • Sequential, pipelined, and multicore processor design
  • Caches and the memory hierarchy
  • Performance optimization and performance measurement
  • Devices, I/O, traps, and DMA
  • Memory management

Main Text and Reference books

  • R. Bryant, D. O'Hallaron: Computer Systems: A Programmer's Perspective, 2nd ed. 2002, Prentice Hall.
  • B. Kernighan, D. Ritchie: C Programming Language, 2nd ed. 1988, Prentice Hall.

Recommended Text and Reference books

  • D. Patterson, J. Hennessy: Computer Organization and Design, 4nd ed. 2008, Morgan Kaufmann.
  • S. Harbison, G. Steele: C: A Reference Manual, 5nd ed. 1994, Prentice Hall.
  • S. Oualline: Practical C Programming, 1997, O'Reilly.
  • S. Prata: C Primer Plus, 2004, Sams.
  • U Kirch-Prinz, P. Prinz: C Pocket Reference, 2002, O'Reilly.
  • Intel publishes a lot of material covering the IA-32 processors. The official web site for IA-32 and Intel 64 documentation is here.

Additional Material




  • Antoine Kaufmann (antoinek at student) (DE)
  • Daniel Jost (dajost at student) (DE)
  • Michael Och (ochm at student) (DE)

Course Hours


  • Tue 10-12h, CAB G 61: Timothy (En)
  • Wed 10-12h, CAB G 61: Timothy (En)


  • Thu, 13-15h, CHN G 46
  • Thu, 13-15h, IFW A 32.1
  • Thu, 13-15h, IFW C 33
  • Thu, 13-15h, LFW C 1
  • Thu, 13-15h, ML J 34.1

Exercise Groups

Group 1(En): LFW C 1 (Ercan & Qin)

Adrian Wasim Spurr Anton Markaj Tobias Florian Verhulst
Pascal Silvio Magnus Widmer Julian Karl Fuchs Samuel Marco Ueltschi
Nico Michael Kurmann Seraiah Walter Patrice Damian Marti
Severin Lukas Münger Kieran James Nirkko Yassin Nasir Hassan
Jonas Tobias Kuratli Jonas Passerini Karl Wüst
Jonathan Daniel Rosenthal Jonathan Johannes Maurer Benjamin Weber
Urs Florian Müller Priska Elide Pietra Abhimanyu Patel
Thomas Philip Hall David Dan Chettrit Jonas Waeber

Group 2(En): IFW A 32.1 (Stefan & Simon)

Marko Pichler Trauber Nicolas Sebastian Kick Mattia Guglielmo Gollub
Jannick Marc Griner Mrigya Agarwal Lukas Bischofberger
Daniel David Schwyn Michael Oliver Travella David Wesono Niggli
Daniel James Luginbühl Madelin Schumacher Marc André Tanner
Mathias Jostock Marcel Nicolas Geppert Samuel Schmid
Joshua David Raphael Schneider Jeffrey Tom Bhamornsiri Hermann Paul Amadeus Schweizer
Niklas Peter Hofmann Jonas Stulz Miriam Tschanen
Nadja Stephanie Müller Mohanarajah Gajamohan Pascal Roos

Group 3(De): CHN G 46 (Antoine)

Sandro Valerio Lombardi Dominik Kovacs Julian Henry Loss
Andreas Blöchliger Rijad Nuridini Damian Gruber
Sébastien Santschi Andreas Erich Allenspach Rafael Patrick Häuselmann
Michel Keller Milan Roman Bombsch Peyman Khodadust Gamechi
Stefan Morgenthaler Andreas Vinzenz Knecht Stefan Blumer
Raffaele Lucio Meyer Tizian Lucien Zeltner Claude Remo Schwyn
Isabelle Renée Rösch Christian Cadruvi Arthur Siegfried Kurath
Claudio Anliker Andreas Albrecht  

Group 4(De): IFW C 33 (Daniel)

Andreas Michael Buob Severin Matieu Läubli Jonas Krucher
Gabriel Leuenberger Marius Paul Gisler Marc Gähwiler
Alexander Nicolas Meier Simon Josef Fritsche Leonhard Markus Helminger
Lukas Häfliger Christoph Heinz Stillhard Christian Pascal Vonrüti
Alexander Viand Alexandra Maximova Gregori Wegberg
Benjamin Simon Steger Matthias Gerber Philipp Gamper
Fabian Werner Rudolf Tino Matthias Burri Cyril Pascal Steimer
Florian Claudius Sebastian Jacky Jonas Sebastian Maurer Marek Arnold

Group 5(De): ML J 34.1 (Michael)

Samuel Damian Oberholzer Tobias Grob Silvan Clemens Egli
Ruben Emanuel Wohlgenannt Thomas Müller Fabian Stutz
Sandro Cornelio Huber Roman Andreas Willi Lukas David Widmer
Jessica Patricia Falk Tatjana Brülisauer Cédric Manuel Bürke
Manuela Fischer Nico Previtali Robin Guldener
Andrea Regula Schüpfer Manuel Pascal Schürch Michael Jan Franz
Nicolas Benjamin Forster Dejan Mircic Michael Andreas Giger
Jan Milan Deriu Christian Felix Hagedorn Kevin Joël Kipfer
Tim Taubner    


Advanced Systems Lab - Fall 2012


  • Exam
    Takes place on Saturday, February 2, 09.00 - 11.00, HIL F61

  • December 17
    Solutions to Queueing Exercises online.

  • November 28
    Recommended list of exercises from the book online.

  • November 27
    Queueing exercises online.

Course Description

The goal of this course is to teach students how to evaluate the performance of complex computer and software systems. Accordingly, the methodology to carry out experiments and measurements is studied.  Furthermore, the modeling of systems with the help of queueing network systems is explained.

The course will have lectures and project work. The first lecture will be on September 18.


  • The following document explains in detail the course and the project organization. It also contains general remarks and advice on how to perform best during the course. 
    Course and project description 

  • The assignments of people to groups and groups to TAs and rooms can be found in the
    Group Assignments document.

  • SVN-Repository: https://svn.inf.ethz.ch/svn/systems/asl12/trunk/userXX/

  • Cluster: dryad01, dryad02, ..., dryad16
    - acess the cluster from within ETH or use VPN
    - use your group username (e.g. user07)
    - the schedule can be found here. It can also be downloaded as a file.

  • E-mail address available for questions, requests, and feedback regarding the course: sg-asl [at] lists [dot] inf [dot] ethz [dot] ch.

Teaching material (Slides, Exercises, Project...)


The Art of Computer Systems Performance Analysis, Raj Jain, Wiley Professional Computing, 1991.

Of this textbook, the exam will be based on the following chapters:

Chapters 1, 2, 3 = general introduction, common terminology
Chapters 4, 5, 6 = workloads
Chapter 10 = data presentation
Chapters 12, 13, 14 = probability and statistics
Chapters 16, 17, 18, 20, 21, 22 = experiment design
Chapters 30, 31, 32, 33, 36 = queueing theory

Exam: Saturday, February 2, 09.00 - 11.00, HIL F61

Useful exercises to prepare for the exam
The following exercises are taken from the textbook and are indicative of some of the questions you can expect to get in the exam. This list is intended only as an example and to help you prepare for the exam by pointing to important topics that you need to know well. Note that this list does not exclude the possibility of having questions about topics that are not mentioned in this list. The format and style of the question might also deviate from the exercises in this list.

2.2 (use the system you build in milestone 1 as example)
12.1, 12.7
13.2, 14.2
30.3, 30.4
31.1, 31.2, 31.3, 31.4 31.7, 31.8
33.1, 33.2, 33.3, 33.5, 33.6, 33.7

Course Hours

Lecture: Tue 17-19h, CAB G 61
Exercise: Thu 17-19h, CAB G 52
Thu 17-19h, CAB G 56
Thu 17-19h, CHN D 42
Thu 17-19h, CHN D 46
Thu 17-19h, CHN D 48


Gustavo Alonso, Donald Kossmann


Enterprise Application Integration - Fall 2012

Course Overview 

The course will explore the design and architecture of large information systems, such as those found behind commercial web sites, scientific servers, or data clusters. The course aims at providing an in depth review of the evolution and state of the art of the tools and methodologies used to build large information systems. In particular, the role of middleware, databases, programming languages, and distributed systems will be discussed in the light of the new requirements imposed by the Internet and the large amounts of data involved. The course will emphasize practical aspects and will be organized around concrete examples taken from real applications and commercial products.


Multi-Tier Organization
Basic Modules and Patterns
Synchronous Interaction
Communication in EA
WS-Advanced Protocols
Service Oriented Architectures

Reading Material

For assignment 1, read the following documents:

For assignment 2, read the following documents

Assignments Schedule

# date due date topic assignment
 1 18.09.2012  12.10.2012 18:00 PM
 Enterprise Patterns
 2 16.10.2012  16.11.2012 18:00 PM



There will be a written exam that will take place in the examination session.
Completion of the reports carried out in the exercises is a requirement for taking the exam. The material covered in the reports and the reading material included in the assignments is part of the lecture and can be included in the exam.


Gustavo Alonso

Teaching Assistant

Pratanu Roy

Course Hours 

Lecture: Tuesday 13:15 to 15:00, CAB G 11
Exercise: Thursday 8:00 - 10:00 CAB G 11