Search result: Catalogue data in Spring Semester 2009

Computer Science Bachelor Information
2. Semester Bachelor Programme (Programme Regulations 2008)
First Year Examinations (2. Sem.)
NumberTitleTypeECTSHoursLecturers
252-0002-00LData Structures and AlgorithmsO7 credits4V + 2UP. Widmayer
AbstractThis 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.
ObjectiveAn understanding of the design and analysis of fundamental algorithms and data structures.
ContentEs 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.
LiteratureTh. Ottmann, P.Widmayer: Algorithmen und Datenstrukturen, Spektrum-Verlag, 4. Auflage, Heidelberg, Berlin, Oxford, 2001
Prerequisites / NoticeVoraussetzung:
251-0001-00L Einführung in die Programmierung
252-0014-00LDesign of Digital CircuitsO6 credits3V + 2UD. Kröning
AbstractThe 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
ContentDie 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.
LiteratureBiere, Kroening, Weissenbacher, Wintersteiger: "Digitaltechnik", Springer, 2008
252-0024-00LParallel ProgrammingO7 credits4V + 2UT. Gross
AbstractIntroduction 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.
ObjectiveThe 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 / NoticeThe class page contains more information.
401-0212-00LAnalysis IIO6 credits3V + 2UM. Struwe
AbstractMultivariable differential and integral calculus, ordinary differential equations, implicit functions, constrained extrema, vector calculus.
ObjectiveMultivariable differential and integral calculus, ordinary differential equations, implicit functions, constrained extrema, vector calculus.
Lecture notesStruwe: Analysis II für Informatik (planned)
LiteratureChristian Blatter: Ingenieur Analysis I, II (als pdf-file unter Link erhältlich)

Lothar Papula: Mathematik für Ingenieure und Naturwissenschaftler, Band 2
402-0038-00LPhysicsO6 credits3V + 2UA. Rubbia
AbstractIntroduction to physics with emphasis on mechanics, electromagnetism and basic principles of quantum mechanics. Examples and exercises illustrate the basic concepts.
ObjectiveTo make the student familiar with some important topics in classical and modern physics.
ContentMechanics:
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 notesCan be downloaded in February 2009.
LiteraturePhysik: 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 / NoticePrerequisites: elementary calculus.
4. Semester Bachelor Programme
Compulsory Courses (4. Sem.)
NumberTitleTypeECTSHoursLecturers
252-0050-00LSoftware ArchitectureO4 credits2V + 1UB. Meyer
AbstractIntroduction to the techniques of software engineering, object-oriented software construction, and high-level design. See Web page for details.
ObjectiveStudents will acquire an understanding of some of the key techniques of software engineering and the issues of building large, complex software systems.
ContentSoftware 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.
LiteratureBertrand Meyer: Object-Oriented Software Construction, 2nd edition, Prentice Hall 1997.

Erich Gamma et al.: Design Patterns, Addison-Wesley, 1994
252-0052-00LComputer NetworksO6 credits3V + 2UG. Alonso, T. Roscoe
AbstractThis 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.
ObjectiveThe 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 notesThe slides for each lecture will be made available in the web pages of the course, along with additional reference material.
LiteratureThe course will be based on the following text book:

Computer Networks: A Systems Approach
Larry L. Peterson, Bruce S. Davie
Morgan Kaufmann
252-0054-00LAdvanced Computational ScienceO4 credits2V + 1UP. Koumoutsakos
AbstractFundamentals 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.
ObjectiveThe 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.
ContentNumerical 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 notesClass Notes.
LiteratureFundamentals of Engineering Numerical Analysis, P. Moin, Cambridge University Press
Numerical Analysis, R. L. Burden and J.D. Faires, Prindle, Weber and Schmidt
252-0056-00LOperating SystemsO6 credits3V + 2UF. Friedrich Wicker, J. Gutknecht
AbstractThe 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
Content1) 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-00LFormal Methods and Functional ProgrammingO6 credits3V + 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 as well as reason formally about
systems during development.
ContentIn 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-00LIntroduction to Database SystemsO4 credits2V + 1UD. Kossmann
AbstractData modelling (ER and UML class diagrams), relational data model, relational design theory (normal forms), SQL, database integrity, security, transactions and data warehousing (OLAP)
ObjectiveGrundlagen relationaler Datenbanktechnologie. Einsatz von Datenbanksystemen zur Entwicklung von Datenbankanwendungen.
ContentDiese 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.
LiteratureKemper, Eickler: Datenbanksysteme: Eine Einführung, Oldenbourg Verlag, 5. Auflage, 2004.
Compensatory Courses
NumberTitleTypeECTSHoursLecturers
252-0202-00LInformation SecurityW6 credits3V + 2UD. Basin, U. Maurer
AbstractThis 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.
ObjectiveMaster fundamental concepts in Information Security and their
application to system building. (See objectives listed below for more details).
Content1. 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-00LSoftware EngineeringW6 credits3V + 2UP. Müller
AbstractPrinciples, methods, and tools of software engineering;
requirements analysis, design, implementation, test, maintenance;
project management
ObjectiveThe 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.
ContentSoftware 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.
LiteratureWird in der Vorlesung bekannt gegeben.
252-0206-00LVisual ComputingW6 credits3V + 2UM. Gross, M. Pollefeys
AbstractThis 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.
ObjectiveThis 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.
ContentCourse 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 notesA 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.
LiteratureMarkus Gross: Computer Graphics, scriptum, 1994-2005
Prerequisites / NoticeThis 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-00LParallel ProgrammingW7 credits4V + 2UT. Gross
AbstractIntroduction 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.
ObjectiveThe 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 / NoticeThe class page contains more information.
252-2100-00LComputer Systems Lab Restricted registration - show details
This course is primarily offered for Computer Science Bachelor students. Diploma Course students may be admitted subject availability of seats.
W4 credits8PS. Freudenberger
AbstractThis class covers various topics in the area of software construction and systems.
ObjectivePractice 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-01LSoftware Engineering Laboratory: Open-Source EiffelStudio Restricted registration - show details W4 credits8PB. Meyer
AbstractThis 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
ContentThe 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-00LDistributed Systems and Networks LabW4 credits8PG. Alonso, F. Mattern, T. Roscoe
AbstractThis 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
ContentThis 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
NumberTitleTypeECTSHoursLecturers
252-0202-00LInformation SecurityW6 credits3V + 2UD. Basin, U. Maurer
AbstractThis 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.
ObjectiveMaster fundamental concepts in Information Security and their
application to system building. (See objectives listed below for more details).
Content1. 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-00LSoftware EngineeringW6 credits3V + 2UP. Müller
AbstractPrinciples, methods, and tools of software engineering;
requirements analysis, design, implementation, test, maintenance;
project management
ObjectiveThe 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.
ContentSoftware 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.
LiteratureWird in der Vorlesung bekannt gegeben.
  •  Page  1  of  5 Next page Last page     All