Bachelor's degree in Computer Science
Studying part-time to achieve my Bachelor of Science ZFH in Computer Science.
September 2019
8 semesters / 4 years

Now: 5th Semester

The Biomimicry Institute defines biomimicry as "an approach to innovation that seeks sustainable solutions to human challenges by mimicking nature's proven patterns and strategies." In this course, you will learn concepts and a process model to apply biomimicry/bionics thinking to the development of sustainable (product) solutions. You will work on your own challenge, apply the design approach and develop, for example, new drone designs inspired by nature. Working in interdisciplinary teams is another goal of the course besides expanding your English skills in a scientific context.
Computing Technology
The module deals with the cooperation of hardware and software for the realization of a computer system. It teaches the structure and operation of a processor from the programmer's point of view and shows how programs are transformed into executable machine code.
IT Security
Includes basics on development and operation of secure systems: cryptography (secret and public key, hash functions, signatures/MAC), secure protocols (EAP, TLS), authentication and authorization.
Machine Learning and Data Mining
The digitization of processes and environments presents computer scientists with new challenges. Software development is no longer in the foreground here, but rather the expert processing and analysis of various types and quantities of data. For this purpose, it is essential to have some basic experience in the field of data analysis and its most important methods from the field of machine learning. This module provides a practical introduction to elementary data mining using machine learning methods. The focus here is on an overview and clean methodology; proofs and details of the methods are left to later courses. Participants will consolidate what they have learned by doing practical work on their own.
Visual Computing 1
The module "Visual Computing" deals with both the synthetic generation of images (= computer graphics) and the analysis of camera images (= computer vision). The joint consideration allows to show relations and thus to get a deeper understanding of the matter.
Web Development
Web technologies play a central role in IT today. Many IT systems use web interfaces as cross-platform user interfaces, with a whole range of options available from simple web front ends to complex single page applications. Mobile and native desktop applications are also frequently implemented on the basis of web technologies in the form of hybrid applications. At the center of this development is the JavaScript programming language, which has been completely revised and comprehensively expanded in recent years.

Spring 2021: 4th Semester

Business for engineers
Engineers will gain an insight into the most important business fundamentals and interrelationships. They should understand how companies function, be able to classify strategies and processes, and know the basics of financial and management accounting.
Communication technology
In virtually all modern applications, data communication is an integral part. The aim of this module is to teach concepts, terms, protocols and mechanisms of data communication for the professional environment, so that students can properly design and use data communication and solve basic problems.
Higher mathematics for computer scientists 2
Numerical solution of nonlinear systems of equations, compensatory calculus, numerical integration, numerics of ordinary differential equations.
Software Development 1
The module provides the necessary analysis and design skills to develop and implement larger and more complex software systems.
System-oriented programming
C and Unix-like operating systems are closely related and are essential in today's computing. You will become familiar with the basics of C and programming applications in C as well as interfacing with the (Linux) operating system using POSIX calls and shell scripts.
Software Project 3
In this module, students develop a larger and more complex software system. In the process, the analysis and design competencies taught in the SWEN1 module are applied (knowledge transfer). Furthermore, realization and project management skills are practiced and social and personal skills are strengthened.

Autumn 2020: 3rd Semester

Algorithms and Data Structures
You will know and practice the approach used for algorithmically complex problems. You know the central data structures of computer science and how they are implemented in Java. You will be able to estimate the computational effort. You will learn to apply basic design patterns.
Communication Competence 3
Communication in an international and interdisciplinary environment. Language mediation and transfer between English and German. Argumentation and discussion.
Basics of relational databases: relational algebra, entity-relationship design, SQL DDL/DML, efficient and correct database queries in SQL, indexes, triggers, transactions/ACID.
Fundamentals of electrical engineering and digital technology
The aim of this course is to teach the physical fundamentals of electrical and digital engineering. The lecture teaches theoretical basics as well as practical knowledge (e.g. the implementation and measurement of simple circuits).
Higher mathematics for computer scientists 1
Introduction to Python, Computational Arithmetic, Numerical Solution of Zero Problems, Numerical Solution of Linear Systems of Equations.
Stochastics and statistics
The module introduces the terms and concepts of probability theory and statistics that are essential for an in-depth understanding of many areas.

Spring 2020: 2nd Semester

Analysis 2
Basic concepts and methods of differential and integral calculus in one real variable, and their application.
Communication Competence 2
Collaborative writing and peer feedback in an academic or professional context. Deepening of research skills Addressee-oriented communication.
Linear Algebra
The module teaches the basics of linear algebra. Among other things, you will learn how to deal with systems of linear equations, vectors and matrices.
Programming 2
This module teaches the advanced concepts of object-oriented programming using the Java programming language and its environment. The overall goal is to create high-quality, understandable and well-maintainable program code with the help of various advanced methods, techniques and tools.
Software Project 2
In this module, the specialized knowledge from other modules is practically applied and deepened in several small projects or exercises, and the experience of working in software projects is expanded. This includes software analysis and refactoring, project planning and progress tracking, application of development tools in a team, idea generation and evaluation, reflection of project progress and results.
Theoretical Computer Science
Basic terms as well as concepts of theoretical computer science, models for assessing the performance of current and future computer systems: Formal languages, automata theory, computability and complexity.

Autumn 2019: 1st Semester

Analysis 1
This module teaches basic concepts and methods of differential and integral calculus of a real variable.
Communication Competence 1
Research and process information in a scientific context. Developing performance and language skills for presentations. Designing communication and giving feedback in a team
Discrete Mathemetics
The module provides basic general mathematical knowledge as well as an introduction to topics in discrete mathematics. The course is specifically designed for the computer science program. The fundamentals taught form the foundation for the following specialized lectures (e.g. Theoretical Computer Science, Programming).
Information & Coding
This course teaches the fundamentals of digital information processing and coding. Basic digital units, gates, logic are part of it as well as source (information content, entropy, redundancy) and channel coding methods with error detection.
Programming 1
Creating high-quality, understandable and well-maintainable program code is of central importance in the implementation of software projects. In this module, the fundamentals of object-oriented programming are taught in order to be able to develop and test high-quality, comprehensible and well-maintainable program code in the scope of a few classes.
Software Project 1
Software projects can be found in practically every larger company. In this module, the expertise from other modules is applied and enriched with initial experience of a project in a team. This includes specification and software design, technical writing, teamwork, project planning and code management.

Further Reading