Teaching

Computer Science Guided Research (2016)

Guided Research Timeline

Introduction 2015-09-14 (Monday)
Topic selection 2015-10-01 (Thursday)
Proposal submission 2015-12-04 (Friday)
(Proposal submission 1) 2016-03-06 (Sunday)
Thesis submission 2016-05-08 (Sunday)
Presentations 2016-05-13 (Friday)

Guided Research Proposal

The preparation of the Guided Research Proposal is the first half of your thesis work. Don't underestimate it! Without a successful preparation phase, by experience, thesis finalization will be less thorough and, hence, less successful. For example, large parts of the Guided Research Proposal will go into the main thesis, related work being a good example.

Computer Science Guided Research (2017)

Guided Research Timeline

Introduction 2016-09-05 (Monday)
Topic selection 2016-10-01 (Saturday)
Proposal submission 2016-12-07 (Wednesday)
(Proposal submission 1) 2017-03-10 (Friday)
Thesis submission 2017-05-12 (Friday)
Presentations 2017-05-15 (Monday)
Presentations 2017-05-16 (Tuesday)

Guided Research Materials

Below are some LaTeX templates that you are expected to use for typesetting the proposal and later the thesis. Please do not change or improve the format, it is usually far better to spend your brain cycles on the content instead of the format (and we really appreciate a common format).

Computer Networks

About

  • Course: Computer Networks (CO20-320301)
  • Semester: Spring 2018
  • Instructor: Jürgen Schönwälder
  • TA: Glontaru, Alexandru-Mihai
  • TA: Hambasan, Alexandru
  • Class: Monday, 09:45-11:00, Seminar Room RLH
  • Class: Friday, 11:15-12:30, Seminar Room RLH

Content

The course discusses network protocols in some depth in order to enable students to understand the core issues involved in network protocol design. Fundamental algorithms and principles are explained in the context of existing IEEE / Internet protocols in order to demonstrate how they are applied in real-world scenarios. This course is recommended for all students with a strong interest in communication networks and distributed systems.

CS Bachelor Project and Thesis

About

Timeline

Activity Deadline
Introduction 2017-09-11 (Monday)
Project topic/supervisor selection (campus track) 2017-09-18 (Monday)
Project topic/supervisor selection (world track) 2018-02-02 (Friday)
Presentations 2018-05-14 (Monday)
Presentations 2018-05-15 (Tuesday)
Bachelor thesis submission 2018-05-16 (Wednesday)

Materials

Doing research in computer science usually starts with a lot of reading and learning. In order to do research that is significant, it is crucial to pick a tractable topic and it is essential to understand the state of the art as well as any algorithms and tools that are relevant. While the details differ depending on the area of computer science, reading about the state of the art is essential for all of them. To find relevant literature, it is good to be aware of systems such as:

Secure and Dependable Systems

About

  • Course: Secure and Dependable Systems (CO21-320203)
  • Semester: Spring 2018
  • Instructor: Jürgen Schönwälder
  • TA: Liu, Yufei
  • TA: Xhelili, Orgest
  • Class: Monday, 08:15-09:30, Lecture Hall Research I
  • Class: Friday, 09:45-11:00, Conference Room Research IV

Content

This course introduces formal methods for analyzing and assuring safety and security of software systems. The course starts off with a clarification of concepts such as dependability, quality, safety, and security of software systems, and how to achieve them in the software development process. We introduce the foundations of cryptography as a basis for security mechanisms. The main part of the course introduces different paradigms of safety/security analysis such as formal testing (code coverage), static program analysis (control/data flow analysis and abstract interpretation), model checking (computational tree logic), and program verification (Hoare calculus, dynamic logic). The formal techniques will be used for analyzing both safety and security properties of programs. Where possible, students will be given hands-on micro-projects in state-of-the-art tools (e.g., Isabelle for program verification).

Operating Systems

About

  • Course: Operating Systems (CO20-320202)
  • Semester: Fall 2017
  • Instructor: Jürgen Schönwälder
  • TA: Mateen, Tayyab
  • Class: Wednesday, 14:15-15:30, Lecture Hall Research I
  • Class: Thursday, 14:15-15:30, Lecture Hall Research II

Content

This course provides an introduction to the concepts underlying operating systems. Students will develop an understanding how operating systems realize a virtual machine that can be used to execute multiple concurrent application programs. The course discusses resource allocation algorithms and how concurrency problems can be solved.

Introduction to Computer Science

About

  • Course: Introduction to Computer Science (CH08-320101)
  • Semester: Fall 2017
  • Instructor: Jürgen Schönwälder
  • TA: Abreu, Steven
  • TA: Granderath, Malte Aaron
  • TA: Hambasan, Alexandru
  • TA: Maiereanu, Tudor Cristian
  • TA: Shrestha, Mohit
  • TA: Tarigradschi, Mihail
  • Class: Tuesday, 08:15-09:30, Lecture Hall Research II
  • Class: Tuesday, 09:45-11:00, Lecture Hall Research II
  • Class: Thursday, 11:15-12:30, Lecture Hall Research II

Content

The course covers the fundamental concepts and techniques of computer science in a bottom-up manner. Based on clear mathematical foundations (which are developed as needed) the course discusses abstract and concrete notions of computing machines, information, and algorithms, focusing on the question of representation versus meaning in Computer Science.

Computer Networks

About

  • Course: Computer Networks (CO20-320301)
  • Semester: Fall 2016
  • Instructor: Jürgen Schönwälder
  • TA: Schmoll, Felix
  • Class: Tuesday, 11:15-12:30, West Hall 5
  • Class: Friday, 11:15-12:30, West Hall 6
  • Start: 2016-09-02

Content

The course discusses network protocols in some depth in order to enable students to understand the core issues involved in network protocol design. Fundamental algorithms and principles are explained in the context of existing IEEE / Internet protocols in order to demonstrate how they are applied in real-world scenarios. This course is recommended for all students with a strong interest in communication networks and distributed systems.

Operating Systems Lab

About

  • Course: Operating Systems Lab (CO20-320202)
  • Semester: Fall 2016
  • Instructor: Jürgen Schönwälder
  • Labs: Thursday, 15:45-17:00 (West Hall 8)
  • Labs: Thursday, 17:15-18:30 (West Hall 8)
  • Start: 2016-09-01

Content

This lab complements the Operating Systems course. Students will gain practical experience with systems programming above and below the system call interface of operating systems. Students will learn how to write concurrent programs and gain understanding how kernel programming differs from normal application development.

Computer Networks

About

  • Course: Computer Networks (CO20-320301)
  • Semester: Spring 2017
  • Instructor: Jürgen Schönwälder
  • TA: Schmoll, Felix
  • Class: Tuesday, 09:45-11:00, Lecture Hall Research I
  • Class: Wednesday, 08:15-09:30, Lecture Hall Research I
  • Class: Wednesday, 14:15-15:30, Lecture Hall Research I
  • Class: Friday, 11:15-12:30, Lecture Hall Research III
  • Start: 2017-02-03

Content

The course discusses network protocols in some depth in order to enable students to understand the core issues involved in network protocol design. Fundamental algorithms and principles are explained in the context of existing IEEE / Internet protocols in order to demonstrate how they are applied in real-world scenarios. This course is recommended for all students with a strong interest in communication networks and distributed systems.