Software Engineering for Data Science and AI
This theme emphasizes applying engineering methods and best practices for transitioning AI models from prototypes to production systems. You will learn about architectural design principles, continuous integration and delivery pipelines, validation, and testing techniques, as well as designing and evaluating non-functional properties like privacy, energy consumption, response time, and robustness.
Year 1 |
|||
Quarter 1 |
Quarter 2 |
Quarter 3 |
Quarter 4 |
Data management and Engineering | Software Engineering and Testing for AI Systems | Responsible Data Science and AI Engineering | Research course |
Machine and Deep Learning | Theme 1 | Theme 1 | Theme 1 |
Probabilistic AI and Reasoning | Theme 2 | Theme 2 | Theme 2 |
Credits: each course in a theme is 5EC, so each theme is 15EC.
Students choose 2 themes, each of which has 3 courses in the 2nd, 3rd and 4th quarters of the 1st year. For this theme, you will take the following courses:
Q2 - Machine Learning for Software Engineering
Machine Learning for Software Engineering will teach you how to us advanced ML models (e.g., CodeBERT, Code2Vec) to complex input data, and code snippets and program, with focus on encoding, program representation and performance evaluation. This course aims to give students a deep understanding of a hands-on approach on how deep neural networks and NLP techniques are used to represent knowledge and solve existing Software Engineering problems in novel ways.
Q3 - Sustainable Software Engineering
Sustainable Software Engineering is an overarching discipline that addresses the long-term consequences of designing, building, and releasing a software project. By definition, sustainability covers five main perspectives: environmental, social, individual, economic, technical. This course mainly focuses on the first, also known as Green Software Engineering. The course also covers fundamental aspects of social and individual sustainability of software projects. You will also learn how to measure other non-functional properties of trained models, including the response time, resource usage (e.g., memory) and energy footprint.
Q4 - Release Engineering for Machine Learning Applications
In this course you will learn how to systematically release your applications and make them scalable in an orchestrated environment and how to make your proof-of-concept applications production ready. This course takes you on a journey that starts at continuous integration and then moves on to continuous delivery, continuous deployment, and continuous experimentation. We will discuss the theory and the current research on various related subjects like containerization, testing, or monitoring and you will put the learned theory into practice. As a running example, you will build a pipeline for a machine learning application, which compared to traditional release engineering- poses additional challenges, like data versioning or model deployment.