Lehrveranstaltungen

Hier finden Sie eine Übersicht aller Bachelorveranstaltungen in Informatik. Für aktuelle Angaben zu laufenden Vorlesungen verweisen wir auf das elektronische Vorlesungsverzeichnis und auf der von uns zusammengestellten Liste aktueller Lehrveranstaltungen.

ACHTUNG: Die Veranstaltung "Einführung in die Informatik" findet ab Herbst 2022 nicht mehr statt und "Diskrete Mathematik" ist neu im ersten Semester empfohlen.

Masterveranstaltungen finden im Rahmen des Swiss Joint Master of Science in Computer Science statt, einem Studiengang der Universitäten Bern, Neuenburg und Freiburg.

1. Semester

Vorlesung mit Übungen, 5 ECTS

Beschreibung
Diese Vorlesung führt in diskrete Mathematik ein und behandelt eine Reihe von zentralen Methoden und Konzepten, welche wichtig sind für das tiefere Verständnis der Informatik. Diskrete Mathematik ist ein Teilgebiet der Mathematik, das sich hauptsächlich mit endlichen und abzählbaren Strukturen beschäftigt. Wichtige Themen sind zuerst Mengen, Relationen und Funktionen. Es folgen Grundlagen der Algebra und Zahlentheorie, welche auch für kryptographische Verfahren oder Codierungstheorie die Basis bilden. Darüber hinaus werden Konzepte aus der Graphentheorie vorgestellt und die Grundlagen der Logik eingeführt, insbesondere Aussagenlogik und Prädikatenlogik. Die Vorlesung dient auch der Vorbereitung auf weitergehende Themen der theoretischen Informatik, wie Berechenbarkeit, Komplexität, Effizienz und probabilistische Algorithmen.
Lernziele
Die Studierenden sind mit wichtigen Grundlagen der diskreten Mathematik und Logik vertraut. Sie können selbständig komplexe Sachverhalte mathematisch formalisieren. Wer die Vorlesung erfolgreich absolviert, versteht die Rolle von Abstraktion, die Funktionsweise von Beweisen und kann sich damit präzise ausdrücken.

Vorlesung mit Übungen, 5 ECTS

Beschreibung
Diese Vorlesung legt die Grundlagen zum Verstehen des Aufbaus moderner Mikroprozessoren, wobei das Hauptaugenmerk mehr auf der logischen Sichtweise liegt und weniger auf der konkreten technischen Realisierung. Zunächst betrachten wir, wie ein Computer mit nur zwei Werten, 0 und 1, rechnen kann und wie daraus für Menschen lesbare Buchstaben und Zahlen werden. Es zeigt sich, dass nur sehr wenige einfache Bausteine notwendig sind, um "alles" berechnen zu können, theoretisch sogar nur einer! Sukzessive werden aus diesen Elementarbausteinen immer komplexere Schaltungen entwickelt, wie ein Addierwerk zum Addieren von Zahlen und Flip-Flops zum Speichern von Informationen. Ferner werden Methoden vorgestellt, wie man Schaltungen vereinfachen und Fehler in denselben erkennen kann. Viele dieser komplexeren Bausteine werden in der Praxis beim Design von Prozessoren in vielfältiger Weise verwendet.
Lernziele
Die Studierenden kennen die mathematischen Grundlagen der Booleschen Algebra und können diese anwenden, um logische Schaltung zu entwickeln, zu vereinfachen und zu testen. Sie kennen die Funktionsweise der verschiedenen Arten von Flip-Flops und können diese einsetzen um Schaltwerke zu realisieren.

Vorlesung mit Übungen, 5 ECTS

Beschreibung
In dieser Vorlesung wird eine Einführung in die Programmierung anhand der Sprache Java gegeben. Die Grundprinzipien der objektorientierten Programmierung (Objekte, Klassen, Nutzung, Vererbung) werden vorgestellt und eingeübt. Für die praktische Arbeit stehen LINUX-Rechner zu Verfügung.
Lernziele
Die Studierenden sind vertraut mit den Grundelementen der Programmierung in Java und den wichtigsten Prinzipien der objektorientierten Programmierung (Objekte, Klassen, Vererbung, Polymorphismus etc.).

2. Semester

Vorlesung mit Übungen, 5 ECTS

Beschreibung
Diese Vorlesung bietet eine umfassende Einführung in die Theorie und Praxis relationaler Datenbanken. Sie beginnt mit einer mathematisch präzisen Darstellung des relationalen Modells und der relationalen Algebra. Darauf basierend wird die Datenbanksprache SQL vorgestellt und anhand zahlreicher praktischer Beispiele besprochen. Weiter werden die grundlegenden Prinzipien des Schemaentwurfs sowie Normalformen vermittelt. Wir behandeln auch weiterführende Themen wie logische und physische Query-Optimierung oder Transaktionsverarbeitung.
Lernziele
Die Studierenden kennen das relationale Modell und die Prinzipien des Schemaentwurfs (inkl. 3 Normalform und BCNF). Sie können diese in der Praxis anwenden. Sie kennen die Techniken der Transaktionsverarbeitung und der Query-Optimierung. Sie sind in der Lage auch komplexe Datenbankanwendungen zu entwickeln.

Vorlesung mit Übungen, 5 ECTS

Beschreibung

Datenstrukturen und Algorithmen bilden die Grundbausteine aus denen Computerprogramme aufgebaut sind. In dieser Vorlesung stellen wir einige der wichtigsten Algorithmen vor, die als universelle Bausteine zahllose Anwendungen in grösseren Systemen haben. Dazu gehören Algorithmen zum Sortieren und Suchen von Daten sowie Algorithmen, um Optimierungs- und Graphenprobleme zu lösen. Wir behandeln weiter grundlegende Strategien zum Entwurf und zur Analyse von Algorithmen. Bei der Analyse interessiert uns vor allem die Frage der Effizienz von Algorithmen, welche für die praktische Anwendung oft entscheidend ist. Viele Vorlesungen innerhalb des Informatikstudiums greifen auf das in dieser Veranstaltung vermittelte Basiswissen zurück, und Kenntnisse des Stoffs können bei der Lösung vieler praktischer Programmierprobleme von grossem Nutzen sein.

Theoretische und praktische Übungen vertiefen das vermittelte Wissen mit dem Ziel, Datenstrukturen und Algorithmen selber entwerfen, analysieren und implementieren zu können, bzw. diese in eigenen Programmen sinnvoll einsetzen zu können. Programmiersprache ist Java. Voraussetzungen sind grundlegende Kenntnisse in Informatik (z. B. Vorlesung "Einführung in die Informatik") und Kenntnisse in Java-Programmierung auf der Stufe der Vorlesung "Programmierung 1".

Lernziele
Die Studierenden lernen einige der wichtigsten Algorithmen in der Informatik zu verstehen und zu analysieren. Sie sind vertraut mit den Grundbegriffen der Analyse von Algorithmen bezüglich Effizienz und Korrektheit, haben verschiedene Entwurfsstrategien von Algorithmen verstanden und können diese auf neue Probleme anwenden. Zudem entwickeln sie ein Bewusstsein der Relevanz von effizienten Algorithmen für die Entwicklung von Softwaresystemen in der Praxis.

Vorlesung mit Übungen, 5 ECTS (Webseite)

Description
This course provides an introduction to object-oriented design, with emphasis on the following themes: How does Responsibility-Driven Design help you to decompose a complex system into objects? How does Design by Contract help you to develop robust software? How do you make use of inheritance to design flexible and generic software systems? How do iterative and incremental development and continuous refactoring help you to arrive at a clean and understandable design? How do you effectively test software? How do you avoid developing complex and unmaintainable code by consistently applying simple design principles? What kinds of known design patterns help you to simplify your software? How do you develop software that communicates its own design? How do you effectively use tools like debuggers, version control systems, and integrated development environments?

Vorlesung mit Übungen, 5 ECTS

Description
In computer science there are many applications, such as computer simulations, financial transactions and medical telesurgery, where performance is of paramount importance. To write successful programs for such applications, a programmer needs to understand what factors affect performance. This course shows a deep analysis of these factors from the perspective of computer architecture, including both hardware and software. The course provides a brief introduction to the C programming language and then proceeds with the MIPS assembly language, the analysis of computer performance, the description of computer architecture and advanced techniques to gain performance such as pipelining, dealing with hazards, memory architectures, and I/O systems.
Learning Outcomes
Students will learn
  • how the major components of a computer including CPU, memory, I/O and storage operate and are interconnected,
  • the uses for cache memory,
  • a wide variety of memory technologies both internal and external,
  • the basic components of the CPU including the ALU and control unit,
  • the MIPS assembly programming language,
  • design principles in instruction set design including RISC architectures.

3. Semester

Vorlesung mit Übungen, 5 ECTS

Beschreibung
In der Vorlesung "Computernetze" werden die Grundlagen zum umfassenden Verständnis von modernen Kommunikationssystemen gelegt, und zwar von den physikalischen Aspekten bis zu den Anwendungsszenarien. Die Vorlesung ist gemäss dem ISO/OSI Schichtenmodell gegliedert. Dieses Modell teilt die Komplexität moderner Computernetzwerke in funktionale Einheiten ein. Die Schichten sind u.a. die physikalische Schicht, Sicherungs-, Netzwerk- und Applikationsschicht. Die behandelten Themen decken also das ganze Spektrum ab, beginnend bei physikalischen Übertragungstechnologien. Danach werden erste Protokolle studiert, welche die korrekte Übermittlung zwischen zwei Computern sicherstellen. Es folgen Themen wie Routing Protokolle, welche für die Wegewahl im Netzwerk zuständig sind, oder Transportprotokolle, welche die Ende zu Ende Übertragung sicherstellen. Der eigentliche Zweck all dieser Technologien ist natürlich, dass der Benutzer Applikationen laufen lassen kann, die gegen Ende der Vorlesung im Zentrum stehen. Ferner werden auch noch Möglichkeiten zur Sicherung und zum Management von Computernetzen behandelt werden. Schlagworte: Internet, IP, TCP, WLAN, Ethernet, HTTP, FTP, IPsec, SNMP, SMTP, etc.
Lernziele
Nach dem erfolgreichen Besuch der Veranstaltung sollten Studierende in der Lage sein,
  • die grundlegenden Übertragungs- und Kodierungstechniken auf der physikalischen Ebene zu beschreiben und zu vergleichen
  • Mechanismen zum Zugriff auf die Übertragungsmedien sowie die darauf aufsetzenden Sicherungsmechanismen zu beschreiben und zu bewerten
  • die verschiedenen Konzepte zur Vermittlung in Netzen zu beschreiben und zu vergleichen
  • die wichtigsten Protokolle im Internet (Internet Protocol, Transportprotokolle wie TCP und UDP, Routing) zu beschreiben
  • das Prinzip der Socket-Programmierung zu verstehen und anzuwenden
  • Dienste und Anwendungen, welche auf Transportprotokollen aufsetzen, zu verstehen und zu beschreiben
  • die Zusammenhänge und Wechselwirkungen zwischen den einzelnen Protokollen zu verstehen

Vorlesung mit Übungen, 5 ECTS (Webseite)

Beschreibung

Die stetig wachsenden Möglichkeiten der Informatik beeinflussen die Gesellschaft und Wirtschaft in bedeutsamer Weise. Dabei schafft die Digitalisierung neue Chancen der Kommunikation und Kollaboration, stellt jedoch die Menschheit auch vor neue Probleme und Herausforderungen. Zentral an dieser Veranstaltung ist die Thematik der nachhaltigen Entwicklung: Wie bedroht die Digitalisierung die Nachhaltigkeit? Wie kann Digitalisierung nachhaltiger gestaltet werden? Und wie kann die nachhaltige Entwicklung durch die Möglichkeiten der Digitalisierung verbessert werden?

Konkret werden im Rahmen der Bachelor-Vorlesung "Digitale Nachhaltigkeit" die ökologischen und sozialen Aspekte der Nachhaltigkeit im Zusammenhang mit der Digitalisierung betrachtet. Auch wird das Konzept der digitalen Nachhaltigkeit eingeführt, das aufzeigt, wie digitales Wissen für die Gesellschaft heute und in Zukunft zugänglich gemacht wird. Ausserdem werden juristische Themen wie Datenschutz und Urheberrecht behandelt und ethische Aspekte bei der künstlichen Intelligenz diskutiert. Und zuletzt wird mittels einer Vertiefung zum Thema Open Source Software aufgezeigt, wie sich in der Informatik zahlreiche Zielsetzungen der Nachhaltigkeit mit diesem Software-Entwicklungsmodell realisieren lassen.

Lernziele
  • Die Studierenden erkennen die gesellschaftliche Relevanz der Informatik und nehmen ihre persönliche Rolle wahr.
  • Die Studierenden verstehen die Auswirkungen der Digitalisierung auf die Umwelt, die Arbeitswelt, die Politik, auf die zwischenmenschlichen Beziehungen und auf weiteren Lebensbereiche.
  • Die Studierenden kennen die theoretischen Grundlagen der nachhaltigen Entwicklung und können diese mit der Informatik in Beziehung setzen.
  • Die Studierenden verstehen den Begriff der digitalen Nachhaltigkeit, kennen die Voraussetzungen für digital nachhaltige Software und Daten und kennen die relevanten zivilgesellschaftlichen Communities.
  • Die Studierenden kennen die Grundlagen von Datenschutz und Privatsphäre, Urheberrecht und Haftung und verfügen über Kenntnisse, wie rechtliche Fragestellungen in der Informatik gelöst werden können.
  • Die Studierenden verstehen den Begriff des Copyleft und kennen die Eigenschaften der relevanten Open Source Lizenzen.
  • Die Studierenden wissen wie Open Source Communities funktionieren, kennen die Geschäftsmodelle in der Informatik und verstehen die negativen Konsequenzen von Monopolen und Hersteller-Abhängigkeiten.
  • Die Studierenden können die ethischen Fragestellungen bei Anwendungen der künstlichen Intelligenz benennen und kennen die Lösungsansätze dafür.

Vorlesung mit Übungen, 5 ECTS (Webseite)

Beschreibung
Software Engineering (im deutschsprachigen Raum auch Softwaretechnik) zielt auf die ingenieurmäßige Entwicklung, Wartung, Anpassung und Weiterentwicklung großer Softwaresysteme unter Verwendung bewährter systematischer Vorgehensweisen, Prinzipien, Methoden und Werkzeuge. Die Diversifikation der unterschiedlichen Softwaresysteme und Anwendungsbereiche erfordert ein Portfolio anzuwendender Techniken, vergleichbar mit einem Werkzeugkasten. Ziel der Lehrveranstaltung ist es, diesen Werkzeugkasten mit den wichtigsten Techniken zu bestücken.
Lernziele

Die Studierenden erlangen die Fähigkeit, große Softwaresysteme zu entwerfen und systematisch korrekt zu realisieren.

Wie entwickelt man Software unter wirtschaftlichen Aspekten für realistische Projektgrößen?
  • Softwareprojekte: Rollen, Aufgaben, Ziele, Projektplanung, Projektleitung
  • Vorgehensweisen: Phasen und Ergebnisse
Wie entwickelt man qualitativ hochwertige Software?
  • Konstruktive, modellbasierte Softwareentwicklungstechniken
  • Analytische Methoden zur Sicherung von Softwarequalität
Voraussetzungen
Empfohlen wird der erfolgreiche Abschluss der Kurse Programmierung 1, Programmierung 2 und Datenbanken (oder vergleichbare Kenntnisse).

4. Semester

Vorlesung mit Übungen, 5 ECTS

Beschreibung
Diese Vorlesung führt das Gebiet der randomisierten Algorithmen und probabilistischen Verfahren ein, welche heute in der Informatik eine grosse Rolle spielen. Darüber hinaus werden auch die Grundlagen der Informationstheorie und der Begriff der Entropie vorgestellt. Probabilistische Methoden und Analysen treten in vielen Gebieten auf, in der Kommunikation, in Machine Learning, zur Datenanalyse und in der Kryptologie. Nach einer Einführung in die Wahrscheinlichkeitsrechnung mit diskreten Ereignissen werden wichtige probabilistische Methoden und deren Analyse behandelt, so zum Beispiel Abschätzungen mittels Chernoff-Bounds und die probabilistische Methode. Randomisierte Algorithmen auf Graphen und in der Zahlentheorie werden diskutiert. Entropie als Informationsmass wird eingeführt und Methoden für Codierung und Datenkompression behandelt.
Lernziele
Die Studierenden kennen die Grundlagen von randomisierten Algorithmen und deren Analyse. Sie können mit fundamentalen probabilistische Verfahren umgehen und wissen Bescheid, wie sich Laufzeit, Korrektheit und Genauigkeit gegeneinander verhalten. Sie sind mit dem Begriff der Information einer Zufallsvariable vertraut und kennen Methoden zur Codierung und Kompression von Daten.

Vorlesung mit Übungen, 5 ECTS

Beschreibung
Im Zentrum des ersten Teils der Vorlesung stehen verschiedene Formalisierungen des intuitiven Algorithmusbegriffs und die These von Church. Die Konzepte der algorithmischen Entscheidbarkeit und Semi-Entscheidbarkeit sowie die Grenzen der theoretischen Berechenbarkeit werden eingehend untersucht. Im zweiten Teil der Vorlesung wird eine kurze Einführung in die Komplexitätstheorie gegeben, dabei werden die Grenzen der praktischen Berechenbarkeit besprochen. Im Vordergrund stehen die Klassen P und NP, die Theorie der NP-Vollständigkeit und die P ≠ NP Vermutung.
Lernziele
Die Studierenden sind mit verschiedenen Formalisierungen des intuitiven Algorithmusbegriffs (Turingmaschinen, WHILE-Programme, mu-rekursive Funktionen etc.) vertraut. Sie sind in der Lage, diese Modelle zum Studium der Grenzen der Berechenbarkeit einzusetzen und können algorithmisch unlösbare Probleme identifizieren und klassifizieren. Die Studierenden kennen die Grundzüge der Komplexitätstheorie, insbesondere die Komplexitätsklassen P und NP, die Theorie der NP-Vollständigkeit und das Theorem von Cook und Levin. Sie sind mit der P!=NP Vermutung vertraut. Zahlreiche Beispiele von NP-vollständigen Problemen sind den Studierenden bekannt.

Vorlesung mit Übungen, 5 ECTS

Beschreibung
Diese Vorlesung behandelt den Aufbau und die Funktionsweise moderner Betriebssysteme. Behandelte Themen sind die Prozessverwaltung, Dateisysteme, Ein-/Ausgabe sowie Sicherheit. Kenntnisse von Rechnerarchitektur, Datenstrukturen und Programmierung werden vorausgesetzt.
Lernziele
Studierende sollten nach erfolgreichem Besuch der Veranstaltung in der Lage sein die grundlegenden Funktionen und Dienste von Betriebssystemen zu beschreiben und zu erklären. Dies betrifft insbesondere Teilaspekte, welche mit den Ressourcen eines Rechners zu tun haben, wie CPU, Speicher und Ein-/Ausgabegeräte. Studierende sollten auch in der Lage sein
  • Verfahren zur Verwaltung und zum Scheduling von Threads zu beschreiben, zu erklären und zu bewerten,
  • Mechanismen zur Synchronisation und Behandlung von Verklemmungen von Prozessen zu beschreiben,
  • die grundlegenden Verfahren zur Hauptspeicherverwaltung und zur Realisierung von virtuellem Speicher zu erklären und zu bewerten,
  • die Möglichkeiten zur Implementierung von (verteilten) Dateisystemen und Ein-/Ausgabe zu beschreiben.

Praktikum, 5 ECTS

Beschreibung
Im Praktikum Software Engineering entwickeln unsere Studentinnen und Studenten Softwareprojekte von A bis Z. Dabei arbeiten sie selbständig in Gruppen. Zusätzlich gibt es ein wöchentliches Treffen, wo sie verschiedene Aspekte der Projekte (organisatorisch, technisch, etc.) vorstellen müssen. Die Projekte erfolgen jeweils im Auftrag von externen Kunden. In der Vergangenheit waren dies unter anderem: Cassarius AG, Swisscom, Web-ID GmbH, SBB, Lumrix GmbH, Informatikdienste Universität Bern, etc.
Lernziele
Insbesondere können sie diese einsetzen, um
  • mit offenen Anforderungen umzugehen,
  • sich rasch in neue Technologien einzuarbeiten,
  • ein komplettes Produkt zu entwickeln, zu testen und einzuführen.
  • Die Studierenden können die Methoden des Software Engineering erfolgreich anwenden.

Vorlesung mit Übungen, 5 ECTS

Description
In our daily lives we are surrounded by various sources of data. Computer science provides powerful tools that allow us to extract knowledge from data. To do so, robust programming techniques are required. In this course we will study how programming can help us handle, analyze, and visualize diverse data sources in an efficient manner. In the first part of the semester, we will start with programing for numeric and multimodal data sources. We will examine how to efficiently visualize and organize diverse datasets, how to deal with noisy or incomplete data, and how to most efficiently work with specialized datasets. In the second part of the semester, we will work towards integrating individual parts of data handling and analysis into a larger scale project. We will focus on how to write reproducible and robust code for working with data. We will apply the learned skills in weekly exercises in the first part of the semester, and into a coding project in the second part. Throughout the course we will be using the Python programming language.
Learning outcomes
The students attending this course will gain knowledge of programming techniques for analyzing, handling, and visualizing data. The specific learning learning outcomes include:
  • An understanding of programming operations for data analysis
  • An understanding of techniques for organizing code and enhancing code reusability
  • Experience and independence in programming short projects for working with data
Requirements
Basic experience with Python OR experience with other programming languages

5. Semester

Vorlesung mit Übungen (Webseite)

Beschreibung
Diese Vorlesung bietet eine Einführung in die 3D Computergrafik. Der Stoff umfasst die Grundlagen der 3D Bildgenerierung und Modellierung, wobei der Schwerpunkt auf interaktiven Anwendungen liegt. Wir behandeln unter anderem die Repräsentation von 3D Geometrie, 3D Transformationen, Projektionen, Rasterisierung, Grundlagen zu Farben und Beleuchtungsmodellen sowie die Programmierung moderner Graphics Processing Units (GPUs). Die Übungen zur Vorlesung vertiefen den Stoff mit Programmierprojekten basierend auf Java und OpenGL. Die Vorlesung setzt den Stoff der ersten zwei Studienjahre voraus. Als Programmiersprache kommt Java zum Einsatz. Kenntnisse von OpenGL sind keine Voraussetzung.
Lernziele
In dieser Vorlesung erwerben Studierende folgende Kenntnisse und Fähigkeiten:
  • die mathematischen Grundlagen der 3D Grafik beschreiben und anwenden (Koordinatensysteme, Koordinatenwechsel, homogene Koordinaten, Matrixoperationen, Transformationsmatrizen für Rotation, Translation und Projektion),
  • Grundlagen der Verarbeitung und Darstellung von Farbinformation und deren Zusammenhänge mit dem menschlichen Sehsystem beschreiben (Tristimulustheorie, Farbräume, Farbtransformationen, Gammakorrektur und Tone Mapping),
  • Grundbegriffe der Radiometrie und des Lichttransports beschreiben und anwenden (Radianz, Irradianz, Bidirectional Reflectance Distribution Function (BRDF) und verschiedene Beleuchtungsmodelle),
  • Hardware Architektur von 3D Grafikprozessoren beschreiben (Grafikpipeline, Framebuffer, Graphics Processing Unit (GPU), Data Parallelism, Single Instruction Multiple Threads (SIMT) Programmiermodell),
  • die Software Architektur von 3D Grafikprogrammen beschreiben,
  • Datenstrukturen für 3D Grafikanwendungen beschreiben und anwenden (Mesh Datenstrukturen und hierarchische Szenengraphen),
  • spezielle Techniken der Grafikprogrammierung beschreiben und anwenden (Shaderprogrammierung, Texture Mapping, Bump Mapping, Shadow Mapping),
  • 3D Grafik Programmierschnittstellen wie OpenGL und GLSL zusammen mit einer objektorientierten Programmiersprache wie Java anwenden, um eigene 3D Applikationen zu entwickeln.

Vorlesung mit Übungen, 5 ECTS

Description
This course covers fundamental topics in machine learning and pattern recognition. The course will provide an introduction to supervised learning, unsupervised learning, classical learning theory, and reinforcement learning. The approach used throughout the course is mostly based on convex optimization theory. However, it is not necessary to have a background in optimization as the methods presented will be self-contained. The course requires students to be familiar with the basics of linear algebra and probability theory. A brief review of these subjects will be carried out during the exercise sessions.
Learning Outcomes
On satisfying the requirements of this course, students will have the knowledge and skills to:
  • Understand a number of models for supervised, unsupervised, and reinforcement machine learning
  • Describe the strength and weakness of each of these models
  • Understand the mathematical background from Linear Algebra, Statistics, and Probability Theory used in these machine learning models
  • Implement efficient machine learning algorithms on a computer
  • Design test procedures in order to evaluate a model
  • Combine several models in order to gain better results.
  • Make choices for a model for new machine learning tasks based on reasoned argument.

Vorlesung mit Übungen, 5 ECTS

Beschreibung
In dieser Vorlesung wird eine allgemeine Einführung in das Gebiet der Human-Computer-Interaction gegeben. Im Vordergrund stehen Modelle und Methoden zur benutzergerechten Gestaltung von interaktiven Systemen, wobei auch einfache psychologische und kognitionswissenschaftliche Aspekte besprochen werden sollen. Diese Vorlesung benötigt keine besonderen Vorkenntnisse und setzt keine anderen Vorlesungen voraus; sie kann deshalb zu einem beliebigen Zeitpunkt im Bachelorstudium (Haupt- oder Nebenfach Informatik) besucht werden.
Lernziele
Die Studierenden sind vertraut mit den wichtigsten Methoden und Modellen zur benutzergerechten Gestaltung von interaktiven Systemen (z. B. Interaktionsmodelle, Design-Regeln, Evaluationstechniken, universelles Design, kognitive Modelle, Dialog-Notationen). Sie können diese an konkreten Beispielen anwenden.

6. Semester

Abschlussarbeit, 10 + 5 ECTS

Beschreibung
Individuelle Arbeit zu einem aktuellen Forschungsgebiet bei einer unserer Forschungsgruppen.
Informieren Sie sich bei den Forschungsgruppen, welche Themen für eine Bachelor Arbeit angeboten werden.

Seminar, 5 ECTS

Description
The seminar is composed of presentations about current research topics that are investigated in the context of bachelor, master or PhD works. Bachelor students may take the seminar as "Proseminar". In this case, the students and the seminar supervisor must agree upon the topic beforehand.

Seminar, 5 ECTS

Description
The goal of the computer graphics seminar is to introduce students to current research in computer graphics. Topics vary each semester, and range from 3D rendering, modeling, and animation, to image processing and computational photography. The seminar includes lectures by the instructor and external guests to introduce selected topics. In addition, we will read and discuss recent research papers. The seminar also provides the opportunity for students pursuing Bachelors and Masters projects to present their work.
Lernziele
Upon successful completion of this class, you will be able to:
  • Independently read and understand research papers in computer graphics
  • Deepen your understanding of current research in computer graphics by discussing it with your peers
  • Critically analyze current research in computer graphics and develop your own research questions and research ideas
  • Develop, prepare, and deliver presentations of your own scientific research projects, or presentations of research papers by other authors.

Seminar, 5 ECTS

Description

This course aims at providing an overview and understanding of the state of the art research in computer vision and machine learning. Moreover, it will allow students to develop soft skills such as: critical analysis, presenting, and team work. Recent publications are discussed in detail so that students can build a deep understanding of the methodologies and concepts in these fields. This is a continuous evaluation course. Thus, every discussion and presentation of the students is used in their assessment. Some sessions may be substituted by seminars.

Learning Outcomes

Upon successful completion of the course the student

  1. will be able to read and critically analyze scientific publications in computer vision and machine learning 
  2. will have developed presentation skills and the ability to discuss and answer questions 
  3. will be able to work in teams or independently and manage his/her time 
  4. will have analyzed and discussed work in computer vision/machine learning

Seminar, 5 ECTS

Description
The seminar in cryptology and data security will cover various relevant topics in the area and its title may change from one semester to another. Typical subjects are cryptographic protocols, secure computation, privacy, distributed trust and blockchains. A seminar will start with an overview of the topic, where some basic principles will be introduced. The main content will consist of interactive presentations by the participants, on the basis of the existing literature, ranging from classic research papers to recently developed systems. In addition, students as well as members of the cryptology and data security research group will present their own current work.

Seminar, 5 ECTS

Description
Students as well as members of the Logic and Theory Research Group (LTG) present their current work. The main topics are: explicit mathematics and operational set theory, subsystems of second order arithmetic and set theory, systems of bounded arithmetic and bounded set theory, modal logics.
A general platform for students interested in theoretical computer science, logic, and the foundations of mathematics.
Learning Outcomes
Students are able to give a coherent talk about their ongoing research activities and to present their work to an interested audience.

Seminar, 5 ECTS

Description

This is a seminar for Masters students in the Swiss Joint Master of Science in Computer Science as well as Bachelors, Masters and PhD students completing their project work or thesis in the Software Engineering Group. Seminar students will work on a small, supervised project during the semester, and present their work at the end of the semester.

The seminar typically starts with a few scheduled talks revolving around different contemporary topics in advanced software engineering. The talks are given by members of the Software Engineering Group, who will also serve as mentors during the seminar and guide the student's work on a practical and focused problem in the field of software engineering.

Learning Outcomes

The Software Engineering Group aims at understanding the problems and challenges that software developers are faced with in oftentimes highly interdisciplinary environments, and at devising novel software engineering methods, techniques and tools addressing their needs. An essential result of the research are novel development tools in order to evaluate the developed approaches in the context of practical case studies and experiments.

Within this seminar, students are invited to participate in the group's research, e.g., by contributing to the prototypical implementation of new development tools and their evaluation. This way, after the successful completion of this course, students will be able to, e.g.:
  • Use a sophisticated tool supporting software verification at different levels of abstraction, or
  • build an Eclipse or other IDE plugin supporting developers in their daily development tasks, or
  • write a crawler that analyzes open source software repositories to answer a specific research question, or
  • train a machine learning model predicting quality attributes of a given program or software project, or
  • create a new method of visualizing static and dynamic aspects of a software system, or
  • work on the design and implementation of programming or modeling tools, etc.