Search result: Catalogue data in Spring Semester 2016
Computer Science Bachelor | ||||||
4. Semester | ||||||
Compulsory Courses (4. Sem.) | ||||||
Number | Title | Type | ECTS | Hours | Lecturers | |
---|---|---|---|---|---|---|
252-0058-00L | Formal Methods and Functional Programming | O | 7 credits | 4V + 2U | D. Basin, P. Müller | |
Abstract | In 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. | |||||
Objective | In 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. | |||||
Content | The 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-00L | Operating Systems and Networks | O | 8 credits | 4V + 3U | T. Hoefler, A. Perrig | |
Abstract | This 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. | |||||
Objective | This 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 notes | The slides for each lecture will be made available in the web pages of the course, along with additional reference material. | |||||
Literature | The 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-00L | Data Modelling and Databases | O | 7 credits | 4V + 2U | G. Alonso | |
Abstract | Data modelling (ER and UML class diagrams), relational data model, relational design theory (normal forms), SQL, database integrity, security, transactions and data warehousing (OLAP). | |||||
Objective | Introduction to relational databases and data management. Basics of SQL programming and transaction management. | |||||
Content | The 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. | |||||
Literature | Kemper, Eickler: Datenbanksysteme: Eine Einführung, Oldenbourg Verlag, 5. Auflage, 2004. |
- Page 1 of 1