Search result: Catalogue data in Spring Semester 2016

Computer Science Bachelor Information
4. Semester
Compulsory Courses (4. Sem.)
NumberTitleTypeECTSHoursLecturers
252-0058-00LFormal Methods and Functional Programming Information O7 credits4V + 2UD. Basin, P. Müller
AbstractIn this course, participants will learn about new ways of specifying, reasoning about, and developing programs and computer systems. The first half will focus on using functional programs to express and reason about computation. The second half presents methods for developing and verifying programs represented as discrete transition systems.
ObjectiveIn this course, participants will learn about new ways of specifying,
reasoning about, and developing programs and computer systems. Our objective is to help students raise their level of abstraction in modeling and implementing systems.
ContentThe first part of the course will focus on designing and reasoning
about functional programs. Functional programs are mathematical
expressions that are evaluated and reasoned about much like ordinary
mathematical functions. As a result, these expressions are simple to
analyze and compose to implement large-scale programs. We will cover the mathematical foundations of functional programming, the lambda calculus, as well as higher-order programming, typing, and proofs of correctness.

The second part of the course will focus on deductive and algorithmic validation of programs modeled as transition systems. As an example of deductive verification, students will learn how to formalize the semantics of imperative programming languages and how to use a formal semantics to prove properties of languages and programs. As an example of algorithmic validation, the course will introduce model checking and apply it to programs and program designs.
252-0062-00LOperating Systems and Networks Information O8 credits4V + 3UT. Hoefler, A. Perrig
AbstractThis is an introductory course on computer networks and operating
systems, with a particular focus on networking in the Internet and
monolithic operating systems like Linux and Windows. Network and OS
programming at different levels is an integral part of the course.
ObjectiveThis course is intended as an introduction to both computer networking
and operating systems for computer scientists. Students will get a
comprehensive overview of the key protocols and the general
architecture of the Internet, as one example of more general principles in
network design, and acquire hands-on experience in programming
different aspects of a computer network. In addition, the course
provides a full introduction to modern operating system design, including
memory management, scheduling, I/O, protection, and so on. The
architecture of Unix-like operating systems (such as Linux) is used as
an example of more general principles in OS design.
Lecture notesThe slides for each lecture will be made available in the web pages of the course, along with additional reference material.
LiteratureThe networking material will be based on the following text book:

Computer Networks (5th Edition)
Andrew S. Tanenbaum, David J. Wetherall
Prentice Hall; 5 edition (October 7, 2010)

In addition, the following textbook provides useful background for the operating systems material in the course:

Modern Operating Systems (3rd Edition)
Andrew S. Tanenbaum
Prentice-Hall, 2007
252-0063-00LData Modelling and Databases Information O7 credits4V + 2UG. Alonso
AbstractData modelling (ER and UML class diagrams), relational data model, relational design theory (normal forms), SQL, database integrity, security, transactions and data warehousing (OLAP).
ObjectiveIntroduction to relational databases and data management. Basics of SQL programming and transaction management.
ContentThe course covers the basic aspects of the design and implementation of databases and information systems. The courses focuses on relational databases as a starting point but will also cover data management issues beyond databases such as: transactional consistency, replication, data warehousing, other data models, as well as SQL.
LiteratureKemper, Eickler: Datenbanksysteme: Eine Einführung, Oldenbourg Verlag, 5. Auflage, 2004.
  •  Page  1  of  1