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.
Prof. Thomas Hofmann
- Vocabulary and Dictionaries
- Boolean Retrieval Model
- Index Construction and Compression
- Vector Space Model
- IR Evaluation
- Relevance Feedback and Query Expansion
- Text Categorization
- Document Clustering
- Web Search
- 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.
- 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.
||Book (2nd ed.)
||Tue 18 Sep
||Intro, admin, bit, bytes:
||Wed 19 Sep
||Tue 25 Sep
||Wed 26 Sep
|3.1 - 3.4, 3.13
||Tue 2 Oct.
||More machine operations:
||Wed 3 Oct.
||Tue 16 Oct.
||More procedures; array access:
||Wed 17 Oct.
||Structures, alignment, floats:
||Tue 23 Oct.
||Wed 24 Oct.
||Tue 30 Oct.
||Sequential processor design
|4.2 - 4.3
||Wed 31 Oct.
||Pipelined processor design #1
|4.3 - 4.4
||Tue 6 Nov.
||Pipelined processor design #2
|4.5 - 4.6
||Wed 7 Nov.
|5.6 - 5.11
||Tue 13 Nov.
||Caches and Optimization
|6.2 - 6.6
||Wed 14 Nov.
||Tue 20 Nov.
||Wed 21 Nov.
||Virtual memory I
||Tue 27 Nov.
||Virtual memory II
||Wed 28 Nov.
|no book material
ns16550 data sheet
||Tue 4 Dec.
||Memory allocation I
||Wed 5 Dec.
||Memory allocation II
|9.10 - 9.11
||Tue 11 Dec.
|no book material
21140A data sheet
||Wed 12 Dec.
|no book material
||Tue 18 Dec.
|no book material
||Wed 19 Dec.
|no book material
Solutions (password protected)
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.
- 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.
- Antoine Kaufmann (antoinek at student) (DE)
- Daniel Jost (dajost at student) (DE)
- Michael Och (ochm at student) (DE)
- 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
Group 1(En): LFW C 1 (Ercan & Qin)
|Adrian Wasim Spurr
||Tobias Florian Verhulst
|Pascal Silvio Magnus Widmer
||Julian Karl Fuchs
||Samuel Marco Ueltschi
|Nico Michael Kurmann
||Patrice Damian Marti
|Severin Lukas Münger
||Kieran James Nirkko
||Yassin Nasir Hassan
|Jonas Tobias Kuratli
|Jonathan Daniel Rosenthal
||Jonathan Johannes Maurer
|Urs Florian Müller
||Priska Elide Pietra
|Thomas Philip Hall
||David Dan Chettrit
Group 2(En): IFW A 32.1 (Stefan & Simon)
|Marko Pichler Trauber
||Nicolas Sebastian Kick
||Mattia Guglielmo Gollub
|Jannick Marc Griner
|Daniel David Schwyn
||Michael Oliver Travella
||David Wesono Niggli
|Daniel James Luginbühl
||Marc André Tanner
||Marcel Nicolas Geppert
|Joshua David Raphael Schneider
||Jeffrey Tom Bhamornsiri
||Hermann Paul Amadeus Schweizer
|Niklas Peter Hofmann
|Nadja Stephanie Müller
Group 3(De): CHN G 46 (Antoine)
|Sandro Valerio Lombardi
||Julian Henry Loss
||Andreas Erich Allenspach
||Rafael Patrick Häuselmann
||Milan Roman Bombsch
||Peyman Khodadust Gamechi
||Andreas Vinzenz Knecht
|Raffaele Lucio Meyer
||Tizian Lucien Zeltner
||Claude Remo Schwyn
|Isabelle Renée Rösch
||Arthur Siegfried Kurath
Group 4(De): IFW C 33 (Daniel)
|Andreas Michael Buob
||Severin Matieu Läubli
||Marius Paul Gisler
|Alexander Nicolas Meier
||Simon Josef Fritsche
||Leonhard Markus Helminger
||Christoph Heinz Stillhard
||Christian Pascal Vonrüti
|Benjamin Simon Steger
|Fabian Werner Rudolf
||Tino Matthias Burri
||Cyril Pascal Steimer
|Florian Claudius Sebastian Jacky
||Jonas Sebastian Maurer
Group 5(De): ML J 34.1 (Michael)
|Samuel Damian Oberholzer
||Silvan Clemens Egli
|Ruben Emanuel Wohlgenannt
|Sandro Cornelio Huber
||Roman Andreas Willi
||Lukas David Widmer
|Jessica Patricia Falk
||Cédric Manuel Bürke
|Andrea Regula Schüpfer
||Manuel Pascal Schürch
||Michael Jan Franz
|Nicolas Benjamin Forster
||Michael Andreas Giger
|Jan Milan Deriu
||Christian Felix Hagedorn
||Kevin Joël Kipfer
Takes place on Saturday, February 2, 09.00 - 11.00, HIL F61
Solutions to Queueing Exercises online.
Recommended list of exercises from the book online.
Queueing exercises online.
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.
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.
||Introduction and administration (pdf, pptx)
|Throughput and Response Time (pdf, pptx)
||Workloads (pdf, pptx)
|Statistics (pdf, pptx)
||Experimental Design part 1 (pdf)
||Queueing Theory (pdf)
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.
Milestone 1: 30%
Milestone 2: 40%
Milestone 3: 30%
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)
31.1, 31.2, 31.3, 31.4 31.7, 31.8
33.1, 33.2, 33.3, 33.5, 33.6, 33.7
||Tue 17-19h, CAB G 61
||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
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.
For assignment 1, read the following documents:
For assignment 2, read the following documents
|| 12.10.2012 18:00 PM
| Enterprise Patterns
|| 16.11.2012 18:00 PM
| RPC & CORBA
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.
||Tuesday 13:15 to 15:00, CAB G 11
||Thursday 8:00 - 10:00 CAB G 11