Master
2024/2025
Foundations of Software Engineering
Type:
Elective course (Math of Machine Learning)
When:
1 year, 1 module
Open to:
students of one campus
Language:
English
Course Syllabus
Abstract
This course is intended to serve as an introduction into basics of everyday industrial software engineering. Oftentimes students seek to obtain proficiency in complicated subjects such as machine learning, algorithms, or computer vision, but lack basic literacy in software engineering and therefore have little practical skills required to carry out research or industrial projects. The course focuses on Unix fundamentals (shell and command line, tools such as vim and awk, scripting, filesystem, streams and pipes, parameter parsing, remote machine and ssh, etc.) and software engineering in teams (code review and version control, building and auto-making programs, reproducibility and containers, testing and test-driven development, improving code style, software deployment and APIs, etc.).