From 2 November 2020, the autumn semester 2020 will take place online. Exceptions: Courses that can only be carried out with on-site presence. Please note the information provided by the lecturers via e-mail.

Search result: Catalogue data in Spring Semester 2016

Computer Science (General Courses) Information
Generally Accessible Seminars and Colloquia
251-0100-00LComputer Science Colloquium Information Z0 credits2KLecturers
AbstractInvited talks on the entire spectrum of Computer Science. External guests are welcome. A detailed program is published at the beginning of every semester.
ContentEingeladene Vorträge aus dem gesamten Bereich der Informatik, zu denen auch Auswärtige kostenlos eingeladen sind. Zu Semesterbeginn erscheint jeweils ein ausführliches Programm.
401-5900-00LOptimization Seminar Information Z0 credits1KR. Weismantel, R. Zenklusen
AbstractLectures on current topics in optimization.
ObjectiveThis lecture series introduces graduate students to ongoing research activities (including applications) in the domain of optimization.
ContentThis seminar is a forum for researchers interested in optimization theory and its applications. Speakers, invited from both academic and non-academic institutions, are expected to stimulate discussions on theoretical and applied aspects of optimization and related subjects. The focus is on efficient (or practical) algorithms for continuous and discrete optimization problems, complexity analysis of algorithms and associated decision problems, approximation algorithms, mathematical modeling and solution procedures for real-world optimization problems in science, engineering, industries, public sectors etc.
252-4810-00LZISC Information Security Colloquium Information
Does not take place this semester.
Z0 credits2KS. Capkun, D. Basin, U. Maurer, A. Perrig
AbstractSeries of invited lectures about current topics in information security. Schedule according to announcement on the lecture web page.
Objectivesee above
Computer Science for Non-Computer Scientists
252-0232-00LSoftware Design Information Z6 credits2V + 1UD. Gruntz
AbstractThe course Software Design presents and discusses design patterns regularly used to solve problems in object oriented design and object oriented programming. The presented patterns are illustrated with examples from the Java libraries and are applied in a project.
ObjectiveThe students
- know the principles of object oriented programming and can apply these.
- know the most important object oriented design patterns.
- can apply design patterns to solve design problems.
- discover in a given design the use of design patterns.
ContentThis course makes an introduction to object oriented programming. As programming language Java is used. The focus of this course however is object oriented design, in particular design patterns. Design patterns are solutions to recurring design problems. The discussed patterns are illustrated with examples from the Java libraries and are applied in the context of a project.
Lecture notesno script
Literature- Gamma, Helm, Johnson, Vlissides; Design Patterns: Elements of Reusable Object-Oriented Software; Addison-Wesley; 0-2016-3361-2
- Freeman, Freeman, Sierra; Head First Design Patterns, Head First Design Patterns; O'Reilly; 978-0596007126
Prerequisites / NoticeThe course Software Design is designed for students in the computational sciences program, but is open to students of all programs. The precondition is, that participants have knowledge in structured programming (e.g. with C, C++, or Fortran).
252-0832-00LInformatics Information Z4 credits2V + 2UM. Gross
AbstractThe fundamental elements of imperative programming languages (variables, assignments,
conditional statements, loops, procedures, pointers, recursion) are explained on the basis of C++.
Simple data structures (lists, trees) and fundamental algorithms (searching, sorting)
are discussed and implemented. Finally, the concept of object oriented programming is briefly explained.
ObjectiveThe fundamental elements of imperative programming languages (variables, assignments,
conditional statements, loops, procedures, pointers, recursion) are explained on the basis of C++.
Simple data structures (lists, trees) and fundamental algorithms (searching, sorting)
are discussed and implemented. Finally, the concept of object oriented programming is briefly explained.
ContentAnhand der Programmiersprache C++ werden die elementaren Elemente der imperativen Programmiersprachen (Variablen, Zuweisungen, bedingte Anweisung, Schleifen, Prozeduren, Pointer) eingeführt. Darauf aufbauend, werden dann einfache Datenstrukturen, z.B. Listen und Bäume, sowie grundlegende Algorithmen, z.B. zum Suchen und Sortieren, behandelt. Elementare Techniken zur Analyse von Algorithmen (wie asymptotische Laufzeitanalyse, Invarianten) werden vermittelt. Abschliessend wird kurz das Konzept der Objektorientierung erläutert.
LiteratureWird noch bekannt gegeben.
252-0836-00LComputer Science II Information Z4 credits2V + 1UF. Mattern, W. Kleiminger
AbstractIntroduction to basic problem solving methods, algorithms, and data structures. Topics: divide and conquer, recursion, sorting algorithms, backtracking, game tree search, data structures (lists, stacks, queues, binary trees), discrete simulation, concurrency. In the assignments and exercises, the programming language Java is used.
ObjectiveIntroduction to the general methods of computer science for electrical engineers. Also provides basic skills for advanced exercises and projects later in the electrical engineering program.
ContentPart II of the lecture concentrates on the most common problem solving skills, algorithms, and data structures. It also teaches fundamental concepts and mechanisms of structured programming. Furthermore, working with formal systems, the necessity of abstraction, and the importance of modeling in computer science will be motivated. The emphasis of the lecture is on practical concepts of computer science. Specific topics are: complexity of algorithms, divide and conquer, recursion, algorithms for sorting, backtracking, game tree search, data structures (lists, stacks, queues, binary trees), discrete simulation, and concurrency. For the assignments and exercises, the programming language Java is used. Here, also modularization, abstraction, encapsulation, and object orientation will be considered. In the practice groups, students program an automatic player for the game "Reversi"; at the end of the semester a tournament will take place.
Lecture notesCopies of slides.
LiteratureTextbook: Mark Allan Weiss: Data Structures and Problem Solving Using Java, Addison Wesley.
Prerequisites / NoticePrerequisite: Part 1 of the course.
252-0840-01LIntroductory Programming in MATLAB Information Z2 credits2GT. Hruz
AbstractThe lecture "Introductory Programming in MATLAB" provides a basic knowledge about imperative programming. Additionally, the students learn how to apply imperative programming in modeling of domain specific systems.
ObjectiveThe students should learn how to write programs in MATLAB, resp. how to understand, change and extent existing programs.
ContentA basic knowledge about imperative programming is explained together with algorithms and data structures for simulation tasks in MATLAB. Additionally, the techniques how to modularize large programs are discussed. During the exercises the students write their own programs in team. The course is closed with a larger project which simulates a complex system from the students main domain of study.

1) MATLAB installation, MATLAB programming environment, Help, variables, expressions, floating point number representation
2) Modeling and simulation in Environmental sciences
3) Program branching, loops, propositional logic
4) Matrices in MATLAB
5) 2D visualization in MATLAB
6) Function, Modularity, Stack, local Variables (scope)
7) Rekursion, 3D visualization
8) Modeling and simulation of dynamic systems in MATLAB
LiteratureEinstieg ins Programmieren mit Matlab, U. Stein, Carl Hanser Verlag.
252-0842-00LIntroduction to Programming and Problem Solving Information Z3 credits2V + 0.5UA. L. Schüpbach
AbstractIntroduction to programming in Java and to problem solving using standard algorithms and data structures.
ObjectiveThe goals of this lecture are first, to become familiar with the programming
language Java, and second, to be able to solve given problems of the
student's subject area (for example data processing) with their own programs.

The students should know standard algorithms and data structures, they
should know how to use them and also what properties the algorithms and
data structures have.
The goal is, that students are able to make a reasonable choice of
algorithms and data structures for a given problem and that they
can implement their own program to solve the given problem.

The students will work on an own project during the lecture. They will
need to present the project during the last lecture.
ContentThe following topics will be covered:
- Programming concepts vs. programming languages
- Introduction to Java
- Arrays
- Methods and parameters
- Classes, types and objects
- I/O, using the keyboard and the screen, reading and writing files
- Exceptions
- Data structures
- Object-oriented programming
- Introduction to GUI programming
- Design patterns
- Threads

During the exercise sessions, students learn how to install Java, Eclipse
and Subversion in their own laptop.

The students have to use the repository to store their project.
The project has to be presented during the last lecture on.
Lecture notesLecture website:
Literature- Sprechen Sie Java? Eine Einführung in das systematische Programmieren,
Hanspeter Mössenböck, dpunkt.verlag
- Java-API, Oracle, Java-API
- The Java Language Specification Java SE 7 Edition,
James Gosling, Bill Joy, Guy Steele, Gilad Bracha, Alex Buckley JLS7
Prerequisites / NoticePrerequisites:
- Application of software tools (252-0839-00)
- Application Oriented Programming Using MATLAB (252-0840-01)
252-0846-00LComputer Science II Information Z4 credits2V + 2UF. O. Friedrich
AbstractTogether with the introductory course Informatics I this course provides the foundations of programming and databases. This course particularly covers algorithms and data structures and basics about design and implementation of databases. Programming language used in this course is Java.
ObjectiveBasing on the knowledge covered by lecture Informatics I, the primary educational objectives of this course are
- to learn object oriented programming
- constructive knowledge of data structures and algorithms
- the knowledge of relational databases and
- their connection with a programming environment.
When successfully attended the course, students have a good command of the mechanisms to construct an object oriented program. They know the typically used control and data structures and understand how an algorithmic problem is mapped to a sufficiently efficient computer program. They have an idea of what happens "behind the secenes" when a program is translated and executed. The know how to write database queries and how to design simple databases.
Secondary goals are an algorithmic computational thinking, undestanding the possibilities and limits of programming and to impart the way of thinking of a computer scientist.
ContentWe discuss the paradigm of obejct oriented programming, typical data structures and algorithme and design principles for the design and usage of relational databases.
More generally, formal thinking and the need for abstraction and importance of appropriate modelling capabilities will be motivated. The course emphasizes applied computer science. Concrete topics are complexity of algorithms, divide and conquer-principles, recursion, sort- and search-algorithms, backtracking, data structures (lists, stacks, queues, trees) and data management with lists and tables in relational data bases.
Lecture notesThe slides will be available for download on the course home page.
LiteratureRobert Sedgewick, Kevin Wayne, Einführung in die Programmierung mit Java. Pearson, 2011

Robert Sedgewick, Kevin Wayne, Introduction to Programming in Java: An Interdisciplinary Approach, Addison-Wesley, 2008

Christian Ullenboo, Java ist auch eine Insel,

Guido Krüger, Heiko Hansen, Handbuch der Java-Programmierung
Standard Edition Version 7, Addison-Wesley, 2011,

Thomas Ottmann, Peter Widmayer, Algorithmen und Datenstrukturen, Springer 2012
Prerequisites / NoticePrerequisites are knowledge and programming experience according to course 252-0845-00 Computer Science I (D-BAUG).
  •  Page  1  of  1