Comp 115: Robots, Games and Problem Solving

Basics | Textbook | Resources
Spring 2020

Announcements

Welcome to Comp 115.

Course Descritpion:

By the time you take this course, you probably had the experience of learning a second language. Learning to program a computer is not so different. We need to learn the basic vocabulary (good news! It’s only a few dozen words), then we will go over the syntax (it’s really straightforward!). It’s thinking like a computer that is harder.

Computers are dumb. To get them to do something, we have to explain every step, down to the smallest details. To write a computer program, you will have to disassemble the way you think into its most elementary steps. It is sometimes hard, often frustrating, but once you become good at it, you get the most powerful tool ever invented by humans to process information, and as a bonus, you gain the ability to rediscover the steps you use to accomplish the tasks you do so instinctively that you forgot how you do them.

We will use Python as a programming language, but the concepts you will learn in this course will be applicable to most other programming languages, such as R, Java, C/C++, Javascript, and many others. We will start with the basics like how to write programs that make basic calculations, then see how programs can make decisions and execute repetitions. We will also see how to organize your code so that it is easily understood by others, and cover the basics of object-oriented programming.

This course is the first in the sequence for students who wish to major or minor in Computer Science, but it is also intended for students who want a good introduction to programming, and for students who are just curious about Computer Science. No previous programming experience is required or assumed.

Course Basics

Lecture: Tue-Thurs 2:00PM-3:20PM, Science Center B243
Instructor: Martin Gagné
Email: lastname_firstname at wheatoncollege dot edu
Office: Science Center 1323
Office Hours: Monday 10:00AM-11:30AM
Wednesday 2:00PM-4:00PM
Thursday 11:00AM-12:00PM
and by appointment

Lab L01: Tuesday 6:30PM - 7:50PM, Science Center 1349
Lab L02: Tuesday 8:00PM - 9:20PM, Science Center 1349
Lab Instructor: Walter Eykel
Email: lastname_firstname at wheatoncollege dot edu


Tutors: Hannah Lord (Sunday 5:30PM - 7:30PM)
JP Prideaux (Wednesday 6:00PM - 8:00PM)
Jackson Reed (Tuesday 4:30PM - 6:30PM)
Francesca Sajedi (Thursday 4:30PM - 6:30PM)

Course Discussion: Piazza (by invitation, mandatory enrollment)

Course Textbook

I will be very loosely following the following online textbook:

The following online textbook from Runestone Academy covers essentially the same topics, but in a different order, and contains a few interactive exercises that you may find useful for additional practice: If you insist on having a physical book, the following is also a good reference: I will on occasion (well, ok, somewhat often...) deviate from the order of the books. I will post on the schedule the chapter from the book that corresponds to the material covered in class.

Additional references

This course provides an introduction to programming as well as to the Python program language. Each could warrant their own course of study and we highly recommend you study them further. Some references of use: