Search result: Catalogue data in Spring Semester 2009
Computer Science Bachelor | ||||||
2. Semester Bachelor Programme (Programme Regulations 2008) | ||||||
First Year Examinations (2. Sem.) | ||||||
Number | Title | Type | ECTS | Hours | Lecturers | |
---|---|---|---|---|---|---|
252-0002-00L | Data Structures and Algorithms | O | 7 credits | 4V + 2U | P. Widmayer | |
Abstract | This course is about fundamental algorithm design paradigms (such as induction, divide-and-conquer, backtracking, dynamic programming), classic algorithmic problems (such as sorting and searching), and data structures (such as lists, hashing, search trees). The connection between algorithms and data structures is explained for geometric and graph problems. | |||||
Objective | An understanding of the design and analysis of fundamental algorithms and data structures. | |||||
Content | Es werden grundlegende Algorithmen und Datenstrukturen vorgestellt und analysiert. Dazu gehören auf der einen Seite Entwurfsmuster für Algorithmen, wie Induktion, divide-and-conquer, backtracking und dynamische Optimierung, ebenso wie klassische algorithmische Probleme, wie Suchen und Sortieren. Auf der anderen Seite werden Datenstrukturen für verschiedene Zwecke behandelt, darunter verkettete Listen, Hashtabellen, balancierte Suchbäume, verschiedene heaps und union-find-Strukturen. Weiterhin wird Adaptivität bei Datenstrukturen (wie etwa Splay-Bäume) und bei Algorithmen (wie etwa online-Algorithmen) beleuchtet. Das Zusammenspiel von Algorithmen und Datenstrukturen wird anhand von Geometrie- und Graphenproblemen illustriert. | |||||
Literature | Th. Ottmann, P.Widmayer: Algorithmen und Datenstrukturen, Spektrum-Verlag, 4. Auflage, Heidelberg, Berlin, Oxford, 2001 | |||||
Prerequisites / Notice | Voraussetzung: 251-0001-00L Einführung in die Programmierung | |||||
252-0014-00L | Design of Digital Circuits | O | 6 credits | 3V + 2U | D. Kröning | |
Abstract | The class provides an introduction to the design of digital circuitry. The class covers the basics of the technical foundations of gates. An introduction to hardware description languages and their use in the design process follows. | |||||
Objective | ||||||
Content | Die Vorlesung bietet einen Einstieg in das Gebiet der Digitaltechnik. Zunächst wird auf die technische Realisierung von digitalen Schaltungen eingegangen. Die sich daraus ergebenden physikalischen Randbedingungen bestimmen massgeblich die vorgestellten Entwurfsmethoden von kombinatorischer und sequentieller Logik. Eine Einführung in Hardware-Beschreibungssprachen und deren konkrete Anwendung im Entwurfsprozess schliesst sich an. | |||||
Literature | Biere, Kroening, Weissenbacher, Wintersteiger: "Digitaltechnik", Springer, 2008 | |||||
252-0024-00L | Parallel Programming | O | 7 credits | 4V + 2U | T. Gross | |
Abstract | Introduction to parallel programming: deterministic and non-deterministic programs, models for parallel computation, synchronization, communication, and fairness. Labs provide an opportunity to gain experience with threads, libraries for thread management in modern programming lanugages (e.g., Java, C#) and with the execution of parallel programs on multi-processor/multi-core computers. | |||||
Objective | The student should learn how to write a correct parallel program, how to measure its efficiency, and how to reason about a parallel program. Student should become familiar with issues, problems, pitfalls, and solutions related to the construction of parallel programs. | |||||
Prerequisites / Notice | The class page contains more information. | |||||
401-0212-00L | Analysis II | O | 6 credits | 3V + 2U | M. Struwe | |
Abstract | Multivariable differential and integral calculus, ordinary differential equations, implicit functions, constrained extrema, vector calculus. | |||||
Objective | Multivariable differential and integral calculus, ordinary differential equations, implicit functions, constrained extrema, vector calculus. | |||||
Lecture notes | Struwe: Analysis II für Informatik (planned) | |||||
Literature | Christian Blatter: Ingenieur Analysis I, II (als pdf-file unter Link erhältlich) Lothar Papula: Mathematik für Ingenieure und Naturwissenschaftler, Band 2 | |||||
402-0038-00L | Physics | O | 6 credits | 3V + 2U | A. Rubbia | |
Abstract | Introduction to physics with emphasis on mechanics, electromagnetism and basic principles of quantum mechanics. Examples and exercises illustrate the basic concepts. | |||||
Objective | To make the student familiar with some important topics in classical and modern physics. | |||||
Content | Mechanics: Motion, Newton's axioms, work and energy, vibrations and waves, special relativity. Electromagnetism: Electrostatics, stationary currents, time dependent fields, Maxwell's equations, electromagnetic waves. Quantum physics: History of quantum theory, wave function, uncertainty principle, Schroedinger equation. | |||||
Lecture notes | Can be downloaded in February 2009. | |||||
Literature | Physik: für Wissenschaftler und Ingenieure von Paul A. Tipler, Gene Mosca, Dietrich Pelte. Spektrum Akademischer Verlag; 2. Aufl. 2004. Korr. Nachdruck edition (October 1, 2007). ISBN: 3827411645 | |||||
Prerequisites / Notice | Prerequisites: elementary calculus. | |||||
4. Semester Bachelor Programme | ||||||
Compulsory Courses (4. Sem.) | ||||||
Number | Title | Type | ECTS | Hours | Lecturers | |
252-0050-00L | Software Architecture | O | 4 credits | 2V + 1U | B. Meyer | |
Abstract | Introduction to the techniques of software engineering, object-oriented software construction, and high-level design. See Web page for details. | |||||
Objective | Students will acquire an understanding of some of the key techniques of software engineering and the issues of building large, complex software systems. | |||||
Content | Software architecture addresses the overall organization of software systems and the techniques that make the development of large systems possible. Not all programming techniques that work on small programs can "scale up"; this course explores some that do. It focuses particularly on six themes: - Advanced object oriented techniques, including: the theory of abstract data types, generic programming, the proper use of inheritance, Design by Contract. - Design patterns. - Software engineering techniques for concurrent, distributed and multi- threaded programming. - Component-based development, in particular the .NET component model and multi-language programming. - Software validation and verification, in particular testing. - Software engineering of large systems: lifecycle models, cost and reliability models, software metrics, project management. | |||||
Literature | Bertrand Meyer: Object-Oriented Software Construction, 2nd edition, Prentice Hall 1997. Erich Gamma et al.: Design Patterns, Addison-Wesley, 1994 | |||||
252-0052-00L | Computer Networks | O | 6 credits | 3V + 2U | G. Alonso, T. Roscoe | |
Abstract | This is an introductory course on computer networks (textbook by Peterson and Davie), from basic protocols to the standard network layer. Network programming at different levels is an integral part of the course. | |||||
Objective | The course is intended as an introduction to computer networking for computer scientists. Students will get a comprehensive overview of the key protocols and the general architecture of the Internet. The students will also have a chance to acquire hands-on experience in programming different aspects of a computer network. | |||||
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 course will be based on the following text book: Computer Networks: A Systems Approach Larry L. Peterson, Bruce S. Davie Morgan Kaufmann | |||||
252-0054-00L | Advanced Computational Science | O | 4 credits | 2V + 1U | P. Koumoutsakos | |
Abstract | Fundamentals of computing using Ordinary and Partial Differential Equations. Emphasis on numerical methods and their computer implementation. Exercises will be motivated by actual engineering and scientific problems. | |||||
Objective | The course aims to introduce fundamental concepts for the numerical solution of ordinary and partial differential equations. Emphasis on the computer implementation of numerical methods. Exercises will reflect actual problems from science and engineering. | |||||
Content | Numerical Quadrature: Methods of numerical integration, Euler-Mac Laurin summation. Numerical Differentiation: numerical derivatives, algorithmic differentiation, Ordinary and Partial differential equations: discretization, error analysis, multistep methods, adaptive methods. | |||||
Lecture notes | Class Notes. | |||||
Literature | Fundamentals of Engineering Numerical Analysis, P. Moin, Cambridge University Press Numerical Analysis, R. L. Burden and J.D. Faires, Prindle, Weber and Schmidt | |||||
252-0056-00L | Operating Systems | O | 6 credits | 3V + 2U | F. Friedrich Wicker, J. Gutknecht | |
Abstract | The topic of this course are operating systems, with an emphasis on concepts. In particular, the course will treat in detail the two main tasks of modern operating systems: resource management and runtime support for programs. Some keywords are: boot process, file systems, memory allocation and garbage collection, processes and threads, device drivers, runtime type support, virtual systems. | |||||
Objective | ||||||
Content | 1) Overview and Introduction 2) Bootstrapping 3) Filesystems 4) I/O Sub-Systems 5) Memory Management 6) Processor Managament 7) Operating System Architectures 8) Case Studies | |||||
252-0058-00L | Formal Methods and Functional Programming | O | 6 credits | 3V + 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 as well as reason formally about systems during development. | |||||
Content | 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. 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-0060-00L | Introduction to Database Systems | O | 4 credits | 2V + 1U | D. Kossmann | |
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 | Grundlagen relationaler Datenbanktechnologie. Einsatz von Datenbanksystemen zur Entwicklung von Datenbankanwendungen. | |||||
Content | Diese Vorlesung beschreibt die Grundlagen des Entwurfes und der Implementierung von Datenbanken und Informationssystemen. Als Schwerpunkt beschäftigt sich die Vorlesung mit der relationalen Datenbanktechnologie. Es werden allerdings auch erweitere Modelle wie sie z.B. für naturwissenschaftliche Anwendungen oder im Internet benötigt werden, betrachtet. Insbesondere werden die folgenden Themen behandelt: E/R und UML Modellierung, das relationale Datenmodell, objektrelationale Modelle, semistrukturierte Datenmodelle und XML, relationale Entwurfstheorie (Normalformen), SQL, Datenbankintegrität, Sicherheit, Transaktionen und Data Warehousing. | |||||
Literature | Kemper, Eickler: Datenbanksysteme: Eine Einführung, Oldenbourg Verlag, 5. Auflage, 2004. | |||||
Compensatory Courses | ||||||
Number | Title | Type | ECTS | Hours | Lecturers | |
252-0202-00L | Information Security | W | 6 credits | 3V + 2U | D. Basin, U. Maurer | |
Abstract | This course provides an introduction to Information Security. The focus is on fundamental concepts and models, basic cryptography, protocols and system security, and privacy and data protection. While the emphasis is on foundations, case studies will be given that examine different realizations of these ideas in practice. | |||||
Objective | Master fundamental concepts in Information Security and their application to system building. (See objectives listed below for more details). | |||||
Content | 1. Introduction and Motivation (OBJECTIVE: Broad conceptual overview of information security) Motivation: implications of IT on society/economy, Classical security problems, Approaches to defining security and security goals, Abstractions, assumptions, and trust, Risk management and the human factor, Course verview. 2. Foundations of Cryptography (OBJECTIVE: Understand basic cryptographic mechanisms and applications) Introduction, Basic concepts in cryptography: Overview, Types of Security, computational hardness, Abstraction of channel security properties, Symmetric encryption, Hash functions, Message authentication codes, Public-key distribution, Public-key cryptosystems, Digital signatures, Application case studies, Comparison of encryption at different layers, VPN, SSL, Digital payment systems, blind signatures, e-cash, Time stamping 3. Key Management and Public-key Infrastructures (OBJECTIVE: Understand the basic mechanisms relevant in an Internet context) Key management in distributed systems, Exact characterization of requirements, the role of trust, Public-key Certificates, Public-key Infrastructures, Digital evidence and non-repudiation, Application case studies, Kerberos, X.509, PGP. 4. Security Protocols (OBJECTIVE: Understand network-oriented security, i.e.. how to employ building blocks to secure applications in (open) networks) Introduction, Requirements/properties, Establishing shared secrets, Principal and message origin authentication, Environmental assumptions, Dolev-Yao intruder model and variants, Illustrative examples, Formal models and reasoning, Trace-based interleaving semantics, Inductive verification, or model-checking for falsification, Techniques for protocol design, Application case study 1: from Needham-Schroeder Shared-Key to Kerberos, Application case study 2: from DH to IKE. 5. Access Control and Security Policies (OBJECTIVES: Study system-oriented security, i.e., policies, models, and mechanisms) Motivation (relationship to CIA, relationship to Crypto) and examples Concepts: policies versus models versus mechanisms, DAC and MAC, Modeling formalism, Access Control Matrix Model, Roll Based Access Control, Bell-LaPadula, Harrison-Ruzzo-Ullmann, Information flow, Chinese Wall, Biba, Clark-Wilson, System mechanisms: Operating Systems, Hardware Security Features, Reference Monitors, File-system protection, Application case studies 6. Anonymity and Privacy (OBJECTIVE: examine protection goals beyond standard CIA and corresponding mechanisms) Motivation and Definitions, Privacy, policies and policy languages, mechanisms, problems, Anonymity: simple mechanisms (pseudonyms, proxies), Application case studies: mix networks and crowds. 7. Larger application case study: GSM, mobility | |||||
252-0204-00L | Software Engineering | W | 6 credits | 3V + 2U | P. Müller | |
Abstract | Principles, methods, and tools of software engineering; requirements analysis, design, implementation, test, maintenance; project management | |||||
Objective | The goal of this course is to equip students with the knowledge they need to contribute to demanding industrial software projects, including concepts, notations, and tools. | |||||
Content | Software engineering is an engineering discipline whose focus is the cost-effective development of high-quality software systems. The emphasis in software engineering is on both words, software and engineering. An engineer is able to build a high-quality product using off-the-shelf components and integrating them under time and budget constraints. The engineer is often faced with ill-defined problems, partial solutions, and has to rely on empirical methods to evaluate solutions. This course will survey the principles, methods, and tools of software engineering. At the core of the course are the classical phases of the software development lifecycle: requirements analysis, design, implementation, test, and maintenance. The course will also cover topics bridging software engineering and project management such as software metrics. | |||||
Literature | Wird in der Vorlesung bekannt gegeben. | |||||
252-0206-00L | Visual Computing | W | 6 credits | 3V + 2U | M. Gross, M. Pollefeys | |
Abstract | This course acquaints students with core knowledge in computer graphics, image processing, multimedia, computer vision and learning. Topics include: Graphics pipeline, perception and camera models, transformation, shading, global illumination, texturing, sampling, filtering, image representations, image and video compression, edge detection, optical flow, Bayes decision theory and classification. | |||||
Objective | This course provides an in-depth introduction to the core concepts of computer graphics, image processing, multimedia, computer vision and machine learning. The course forms a basis for the specialization track Visual Computing of the CS master program at ETH. | |||||
Content | Course topics will include: Graphics pipeline, perception and color models, camera models, transformations and projection, projections, lighting, shading, global illumination, texturing, sampling theorem, Fourier transforms, image representations, convolution, linear filtering, diffusion, nonlinear filtering, edge detection, optical flow, image and video compression, Bayes decision theory and classification. In theoretical and practical homework assignments students will learn to apply and implement the presented concepts and algorithms. | |||||
Lecture notes | A scriptum will be handed out for a part of the course. Copies of the slides will be available for download. We will also provide a detailed list of references and textbooks. | |||||
Literature | Markus Gross: Computer Graphics, scriptum, 1994-2005 | |||||
Prerequisites / Notice | This is being significantly modified from previous editions. The second half of the class in particular will now more broadly cover image processing, multimedia and computer vision topics. | |||||
252-0024-00L | Parallel Programming | W | 7 credits | 4V + 2U | T. Gross | |
Abstract | Introduction to parallel programming: deterministic and non-deterministic programs, models for parallel computation, synchronization, communication, and fairness. Labs provide an opportunity to gain experience with threads, libraries for thread management in modern programming lanugages (e.g., Java, C#) and with the execution of parallel programs on multi-processor/multi-core computers. | |||||
Objective | The student should learn how to write a correct parallel program, how to measure its efficiency, and how to reason about a parallel program. Student should become familiar with issues, problems, pitfalls, and solutions related to the construction of parallel programs. | |||||
Prerequisites / Notice | The class page contains more information. | |||||
252-2100-00L | Computer Systems Lab This course is primarily offered for Computer Science Bachelor students. Diploma Course students may be admitted subject availability of seats. | W | 4 credits | 8P | S. Freudenberger | |
Abstract | This class covers various topics in the area of software construction and systems. | |||||
Objective | Practice the programming of computer systems at the "system" level, i.e. learn how to interact with compilers, runtime system, operating system etc. to measure, understand and possibly improve the performance of a program. | |||||
252-2601-01L | Software Engineering Laboratory: Open-Source EiffelStudio | W | 4 credits | 8P | B. Meyer | |
Abstract | This course is an opportunity to take part in leading-edge software construction and gain academic credit for it. The EiffelStudio environment provides a rich basis of extensions and new developments. The course will be held in laboratory-style: students choose a project and meet regularly with assistants. The best developments are candidate for inclusion in actual software releases. | |||||
Objective | ||||||
Content | The growing popularity of open-source projects provides a fertile ground for creative software developers to demonstrate and hone their design and implementation skills. This course is an opportunity to take part in leading-edge software construction and gain academic credit for it. The EiffelStudio environment (in 2006, 2 million lines of open-source code) provides a rich basis of potential extensions and new developments. The course is not structured as a traditional set of lectures but is laboratory-style: students choose a project and meet regularly with assistants to report progress and obtain guidance. The results produced should meet standards of quality software engineering; the best developments are candidate for inclusion in actual software releases. This is an opportunity to learn by doing and to encounter the challenges of large, production-grade software development. | |||||
252-3501-00L | Distributed Systems and Networks Lab | W | 4 credits | 8P | G. Alonso, F. Mattern, T. Roscoe | |
Abstract | This course involves the development and implementation of a practical project in the area of distributed systems and networks. The course offers students the opportunity to improve their development skills and to gain deeper insights on how real systems work in practice. | |||||
Objective | ||||||
Content | This course involves the development and implementation of a practical project in the area of distributed systems and networks. The course offers students the opportunity to improve their development skills and to gain deeper insights on how real systems work in practice. It is also an excellent way to prepare for the Master track in distributed systems and to have a first contact with research work in this area. For details of the projects available, please contact Prof. G. Alonso, Prof. F. Mattern, or Prof. T. Roscoe. | |||||
Core Courses | ||||||
Number | Title | Type | ECTS | Hours | Lecturers | |
252-0202-00L | Information Security | W | 6 credits | 3V + 2U | D. Basin, U. Maurer | |
Abstract | This course provides an introduction to Information Security. The focus is on fundamental concepts and models, basic cryptography, protocols and system security, and privacy and data protection. While the emphasis is on foundations, case studies will be given that examine different realizations of these ideas in practice. | |||||
Objective | Master fundamental concepts in Information Security and their application to system building. (See objectives listed below for more details). | |||||
Content | 1. Introduction and Motivation (OBJECTIVE: Broad conceptual overview of information security) Motivation: implications of IT on society/economy, Classical security problems, Approaches to defining security and security goals, Abstractions, assumptions, and trust, Risk management and the human factor, Course verview. 2. Foundations of Cryptography (OBJECTIVE: Understand basic cryptographic mechanisms and applications) Introduction, Basic concepts in cryptography: Overview, Types of Security, computational hardness, Abstraction of channel security properties, Symmetric encryption, Hash functions, Message authentication codes, Public-key distribution, Public-key cryptosystems, Digital signatures, Application case studies, Comparison of encryption at different layers, VPN, SSL, Digital payment systems, blind signatures, e-cash, Time stamping 3. Key Management and Public-key Infrastructures (OBJECTIVE: Understand the basic mechanisms relevant in an Internet context) Key management in distributed systems, Exact characterization of requirements, the role of trust, Public-key Certificates, Public-key Infrastructures, Digital evidence and non-repudiation, Application case studies, Kerberos, X.509, PGP. 4. Security Protocols (OBJECTIVE: Understand network-oriented security, i.e.. how to employ building blocks to secure applications in (open) networks) Introduction, Requirements/properties, Establishing shared secrets, Principal and message origin authentication, Environmental assumptions, Dolev-Yao intruder model and variants, Illustrative examples, Formal models and reasoning, Trace-based interleaving semantics, Inductive verification, or model-checking for falsification, Techniques for protocol design, Application case study 1: from Needham-Schroeder Shared-Key to Kerberos, Application case study 2: from DH to IKE. 5. Access Control and Security Policies (OBJECTIVES: Study system-oriented security, i.e., policies, models, and mechanisms) Motivation (relationship to CIA, relationship to Crypto) and examples Concepts: policies versus models versus mechanisms, DAC and MAC, Modeling formalism, Access Control Matrix Model, Roll Based Access Control, Bell-LaPadula, Harrison-Ruzzo-Ullmann, Information flow, Chinese Wall, Biba, Clark-Wilson, System mechanisms: Operating Systems, Hardware Security Features, Reference Monitors, File-system protection, Application case studies 6. Anonymity and Privacy (OBJECTIVE: examine protection goals beyond standard CIA and corresponding mechanisms) Motivation and Definitions, Privacy, policies and policy languages, mechanisms, problems, Anonymity: simple mechanisms (pseudonyms, proxies), Application case studies: mix networks and crowds. 7. Larger application case study: GSM, mobility | |||||
252-0204-00L | Software Engineering | W | 6 credits | 3V + 2U | P. Müller | |
Abstract | Principles, methods, and tools of software engineering; requirements analysis, design, implementation, test, maintenance; project management | |||||
Objective | The goal of this course is to equip students with the knowledge they need to contribute to demanding industrial software projects, including concepts, notations, and tools. | |||||
Content | Software engineering is an engineering discipline whose focus is the cost-effective development of high-quality software systems. The emphasis in software engineering is on both words, software and engineering. An engineer is able to build a high-quality product using off-the-shelf components and integrating them under time and budget constraints. The engineer is often faced with ill-defined problems, partial solutions, and has to rely on empirical methods to evaluate solutions. This course will survey the principles, methods, and tools of software engineering. At the core of the course are the classical phases of the software development lifecycle: requirements analysis, design, implementation, test, and maintenance. The course will also cover topics bridging software engineering and project management such as software metrics. | |||||
Literature | Wird in der Vorlesung bekannt gegeben. |
- Page 1 of 5 All