How do we tell robots and computers how to do what they do? Getting a handle on this question is the goal of this course. Since telling a device how to do something depends a lot on what that device can do, along the way we will learn a bit about what is "in the box." We will start with the kind of programming one might use to instruct a robot how to interact with the world around it. That will lead us to the Turing machine, a beautiful mathematical model of a computer. We will adapt that model to something that is closer to how most computer systems today are designed. We will end with an introduction to high-level programming, learning the fundamentals of programming in a language such as Python or Java.
The goal of the course is to understand not just programming, but how computers are designed, and how those designs are reflected in the way we program them. After passing this course, students will have a basic knowledge of programming and how a computer works. COMP 114 can be used to satisfy the COMP 211 prerequisite and also the mathematics major "elementary knowledge of algorithms and computer programming" requirement.