Bachelor Courses Offered and Timetable

Timetable

timetable for the 2019/2020 academic year (pdf)

Courses Offered

  • 1st Semester (Autumn)
    SIN.01023 Introduction to Programming  

    Programming is one of the most basic and essential skills that each computer scientist must have. This course therefore teaches basic programming concepts. Students learn the elementary control and data structures that are necessary for developing computer programs.  Detail informations

     

    SIN.01021 Networks

    The most important protocols and services that enable computer-to-computer communication are discussed in this course. Starting with local networks, how the Internet functions and how secure communication over the Internet can be achieved are then explained.

    Detail information

     

    SIN.01022 Computer Architecture

    This course focuses on computers as digital electronic systems. This view of computers requires an understanding of logical operations and binary arithmetic, the interaction between the processor, memory, and peripheral devices, as well as the machine language that the processor understands.

    Detailed information

     

    SMA.00103 Introduction to Analysis I (lecture with exercices)

    The courses Introduction to Analysis I and II refresh knowledge of real functions (differential and integral calculus) acquired in the gymnasium and enhance them, especially in the area of differential equations, for which purpose complex numbers are also introduced.

    Detailed information

     

    SMA.00202 Introductory linear algebra (lecture with exercices)

    Starting with solving linear equation systems, the Introductory Linear Algebra course introduces an area of fundamental importance for every mathematical discipline.

    Detailed information

  • 2nd Semester (Spring)
    SIN.02020 Systems-Oriented Programming

    In addition to teaching more advanced programming, this course focuses in particular on how computers and running programs interact. The program will use and/or manipulate resources available in the computer (e.g. memory management or use of operating-system functions).

    Detailed information

     

    SIN.02022 Robotics

    Controlling robots is one important application area of computer science. Depending on the task, robots need to master complex movement patterns or learn an unknown environment. The main goal of this course is to communicate these different aspects of robotics, including common learning algorithms.

    Detailed information

     

    SIN.02023 Object-Oriented Programming

    Object-oriented programming is a very systematic, structured way of programming. (Abstract) objects mutually influence one another to achieve the desired functionality of a program. An object can be derived from another object and inherit its properties, which can then be adapted. Objects can be encapsulated, meaning that they can only be accessed in very specific ways.

    Detailed information

     

    SMA.00104 Introduction to Analysis II (lecture with exercices)

    The courses Introduction to Analysis I and II refresh knowledge of real functions (differential and integral calculus) acquired in the gymnasium and enhance them, especially in the area of differential equations, for which purpose complex numbers are also introduced.

    Detailed information

     

    SMA.00402 Introductory Statistics (lecture with exercices)

    The Introductory Statistics course gives an introduction to statistical methods that is essential for every scientist.

    Detailed information

  • 3rd Semester (Autumn)
    SIN.03021 Databases

    Many computer science applications in practice require storing and retrieving data in an efficient way. This is precisely the task of data bases. They are treated in this lecture both formally (modelling) and practically (data base management systems, query languages).

    Detailed information

     

    SIN.3023 Algorithmics

    In programming courses, you learn how to implement/program specific problem solving strategies. This course focuses on teaching common problem solving strategies (algorithms) for frequently occurring problems (e.g. sorting, searching in graphs, etc.) and on how to conceptualize new ones. Additionally, the quality of algorithms (in terms of time and memory efficiency) will be discussed.

    Detailed information

     

    SIN.03029 Semi-Structured Data

    The Internet, the data cloud, etc. contain data that, in order to be processed by machines, must have a machine-readable structure. This course targets techniques and mechanisms for presenting data and converting data between different semi-structured formats.

    Detailed information

     

    MA.7003 Mathematical Methods for Computer Science I (lecture with exercices)

    Detailed information

  • 4th Semester (Spring)
    SIN.04023 Software Engineering

    Large software systems are not developed ad hoc by an individual person, they are usually developed in a systematic way by a team of developers. It is precisely this systematic way of developing software that is denoted by the term software engineering. This course focuses on the semi-formal design of software, as well as on established software design patterns.

    Detailed information

     

    SIN.04022 Operating Systems

    Operating systems are the interface between computer hardware and applications. They must make the managed memory accessible to applications and enable inter-process communication. Additionally, they must manage the input/output to/from peripheral devices and the computer network. All of these functionalities are addressed in this course, and concrete operating systems are discussed.

    Detailed information

     

    SIN.04028 Process Control

    Computers can be used to control processes in the physical world. To do so, a suitable “virtual” representation of real processes must be developed, and the physical process must be controllable using suitable interfaces. This course discusses how computers are used to control real processes.

    Detailed information

     

    MA.7004 Mathematical Methods for Computer Science II (lecture with exercices)

    Detailed information

  • 5th Semester (Autumn)
    SIN.05020 Functional and Logical Programming

    Functional programming is a mathematically inspired way of programming in which program functions are perceived as mathematical functions. Therefore, recursion becomes the main programming concept. Logical programming is a way of programming inspired by formal logical systems. The program is based on axioms (facts) and derivation rules. Both programming concepts have certain similarities and are therefore treated together in this course.

    Detailed information

     

    SIN.05022 Concurrent and Distributed Computing

    If several programs or processes are running in parallel to jointly solve a task, one talks about concurrent and distributed systems. In this area of computer science, new problems emerge that are not common in single processing: programs can mutually block themselves (deadlocks) or simultaneously manipulate a shared resource in an inconsistent way. Fundamental programming techniques for distributed systems are discussed in this course.

    Detailed information

  • 6th Semester (Spring)
    SIN.06021 Formal Methods

    The goal of formal methods is to avoid conceptual errors in software development. A program is analysed logically and checked for logical inconsistencies. This course discusses concepts and algorithms in logic for treating formal methods. Simultaneously, fundamental concepts such as computability and tractability of problems are discussed.

    Detailed information

     
    SIN.06022 Machine learning

    The goal of formal methods is to avoid conceptual errors in software development. A program is analysed logically and checked for logical inconsistencies. This course discusses concepts and algorithms in logic for treating formal methods. Simultaneously, fundamental concepts such as computability and tractability of problems are discussed.

    Detailed information

     
    SIN.06020 Bachelor Thesis

    The Bachelor thesis is a substantial individual student project at the end of the Bachelor programme. The student should show, using the skills acquired during their studies, that they are able to deal with a computer science task in an independent manner. Writing a dissertation (final report) on the project carried out and giving a final presentation are part of the Bachelor thesis. To carry out the Bachelor thesis, the student must find a supervisor (professor or lecturer) who is capable of supervising a project in the field of the Bachelor thesis. The supervisor is responsible for guiding the student throughout the thesis.

     

  • Teaching Units for Minors and Supplementary Disciplines
    SIN.00120 Scientific Programming

    In addition to their specific subject, a basic knowledge of computer programming is usually needed for students in the Faculty of Science. The goal of this course is to provide these students with programming skills that are applicable to different disciplines in mathematics and science.

    Detailed information

     

    SIN.00121 Scientific Programming (for Biomedical Sciences)

    A basic knowledge of computer programming is usually needed for biomedical sciences students. The goal of this course is to provide these students with the programming skills needed for their discipline.

    Detailed information

     

    SIN.00220 Data Processing and Visualization

    In virtually all scientific disciplines, data must be processed and visualised in a suitable way. This course teaches techniques that allow processing data with regard to its visual presentation.

    Detailed information