Subject Description:

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.

Learning Objectives:

At the end of the term, students will be able to:

Understand basic programming concepts, and simple data structures

Understand the use of modularity and abstraction in building complex systems from simple sub-systems

Encode systems that respond to environmental stimuli as state machines

Develop confidence in their ability to program and debug in the Python language

Work effectively in teams

Delivery Format*:

5-0-7

Grading Scheme:

*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.

We use cookies to ensure that you get the best experience while browsing our website. By continuing, you are agreeing to our cookie policy. To decline cookies, modify your browser settings at any time.