In “The Digital World”, students will learn to use the principles of modularity and abstraction, two fundamental ideas in many areas of design. Modularity is the notion that simple components can be reused to build larger, more complex components. Abstraction is the idea that after a module is built, details on its internal workings can largely be ignored and a simpler description can be used to characterize its function. These two techniques will be taught in terms of constructing systems that interact with and control an external environment. Students will learn object-oriented programming (OOP) in the Python programming language. OOP is a style of software engineering that applies the principles of modularity and abstraction to both code execution and data representation. The course will also cover how to model state machines using abstraction provided in OOP.
At the end of the term, students will be able to:
*The first number represents the number of hours per week assigned for lectures, recitations and cohort classroom study. The second number represents the number of hours per week assigned for labs, design, or field work. The third number represents the number of hours per week assigned for independent study.