Basics of Artificial Intelligence and Logic: Introduction to basic symbolic AI techniques such as search, planning, constraint satisfaction, configuration, and diagnosis. In this context the relationships to subsymbolic AI approaches such as machine learning are discussed where relevant.

Recommender Systems: recommender systems are quite well known from their application in online sales platforms such as amazon.com. A major focus of this course is to introduce basic recommendation algorithms such as content-based filtering, collaborative filtering (especially matrix factorization), hybrid recommendation, knowledge-bsed recommendation, and group recommender systems.

Configuration Systems: example application areas of configuration systems are the automotive domain, financial services, elevators, and software components. In this context, algorithms and techniques are introduced that provide inisghts to the state-of-the-art in configuration knowledge representation, interacting with configuratiors, and intelligent testing and debugging of configuration knowledge bases.

Object-oriented Analysis and Design (OAD): a basic introduction ot the concepts of OAD, specifically, Requirements Engineering, Class Diagrams, State Charts, Object-Relational Mapping, Design Patterns, Automated Testing, and Software Design Principles.

Introduction to Structured Programming: basic introduction to programming techniques on the basis of a selected programming language.

Software Development Processes: introduction to different types of software processes with a corresponding insights of how to apply which process. Overview of relevant aspects of high-quality software requirements. Introduction to basic techniques of prioritization and effort estimation.

Machine Learning (ML): basic introduction to the foundations of Machine Learning with a special focus on the topics of ML applications, classification, prediction, bias, variance, cross validation, decision trees, clustering, and matrix factorization.