Undergraduate course, SUTD
The primary goal of this course is to help students to learn to appreciate and use the fundamental design principles of modularity and abstraction in a variety of contexts. To achieve this goal, students will learn how to build systems that interact with, and attempt to control an external environment. The second goal in this course is to show students that making mathematical models of real systems can help in the design and analysis of those systems; and to give students practice with the difficult step of deciding which aspects of the real world are important to the problem being solved and how to model them in ways that give insight into the problem.
Students will learn the basics of Python programming, Object-Oriented Programming, state machines, simple machine learning using linear regression and K-Nearest Neighbours, and basic graphical user interfaces.