Software Engineering for AI Systems
This course addresses issues relevant for software engineering for systems that use artificial intelligence (AI) techniques such as machine learning or large-scale parallel data processing.
The course gives (a) an introduction of basic principles of AI, with emphasis on the principles and techniques used in machine learning (ML) and Deep Learning (DL), and (b) insights to support needed for successful implementation of AI systems.
The course addresses the life cycle of AI systems: It includes data preparation (i.e. collecting data, data processing, storage, analysis), and building AI models by training and validation. It also discusses use of data, such as implications of using different data sets for the same goal, or using the same data set for different goals.
Furthermore, the course discusses how software systems need to be structured and deployed in order to achieve the performance required for realistic applications.
Relevant software architectures and patterns are introduced and discussed in the context of a realistic application scenario. Finally, the ethical considerations in using data and providing automatically-created solutions are discussed.
The students will learn the basic ML and DL methods, processing and analyzing data in relation to the requirements, and the goals of the system implementation.
Further they will learn dependencies of the results to the selected data sets including its annotation.
The students will understand different data types, such as static, and streams, and different type of systems that use AI techniques.