Welcome to the course website for REMLA (CS4295), good that you are here!
In this course, we will go 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 will put the learned theory into practice. As a running example, we will build a pipeline for a machine learning application, which – compared to traditional release engineering – poses additional challenges, like data versioning or model deployment.
In this course, you will learn how to collaboratively create a complex software system with a focus on nine learning objectives:
- Explain the release concepts Continuous Integration, Deployment, Delivery, and Experimentation
- Automate packaging, versioning, and releasing in modern build environments like GitLab or GitHub
- Use modern containerization technology to build a scalable micro-service architecture.
- Use Prometheus and Grafana to monitor the state of a Kubernetes-based application
- Apply version-control techniques to data and models in a machine learning project
- Implement quality-control techniques in a machine learning application
- Document a release engineering pipeline
- Find related work and inspiration for release engineering tasks
- Identify extension opportunities in existing release pipelines
The first weeks of the course will focus on lectures and self-study material to get you and your team started. Throughout the course, you will then work on assignments that cover the lecture contents. As a team, you will be working on a project, in which you will bring an exemplary ML project from the proof-of-concept stage to production.
You work in the project will be structured around assignments. You will work on these assignments and all teams will provide each other formative peer feedback on the progress. Afterwards, the course will transition into the implementation phase, in which you will work on the project.
Overall, following this course will require you to…
- Follow interactive lectures and pre-recorded material for self-study
- Execute a programming project in teams
- Transfer lecture contents into a project through practical exercises
- Assess yourself and others in a rubric-supported peer-feedback system
- Actively participate in tutorial sessions
- Performe a small literature survey (scientific papers, gray literature, and framework documentation)
- Document a release engineering pipeline in an essay
This website is the central information hub for REMLA. You will find all required information about organization, assingments, or the assessment here, as well as link to the material and required resources. We recommend all students to carefully study the contents of this page to avoid any negative surprises throught the course.
We are excited to run this new REMLA iteration and we hope you are too. The whole team is excited to meet you in person and we wish you all the best for your project!