Introduction to Computational Problem Solving

CS 167-C, Whitman College, Fall 2016
MWF 2:30-3:50, Olin 124
Instructor: Janet Davis (
Office hours: As posted and by appointment
Class mentors: George Ashley (MW) and Richie Farman (F)
Lab hours and lab aide hours

About this course

Welcome to CS 167! The official course description:

Students will learn to design, document, implement, test, and debug algorithmic solutions to computational problems in a high-level, object-oriented programming language. We introduce core concepts: algorithms, data structures, and abstraction. We apply foundational constructs common to all programming languages: data types, variables, conditional execution, iteration, and subroutines. Students will gain experience with exploratory and structured approaches to problem solving through collaborative in-class exercises. Frequent programming projects will address applications of computing to problems arising from other disciplines.

A course very much like this is the reason I became a computer scientist.  I'm excited to teach this course, and I hope to share some of that excitement with you. 

My main goal for this class is that you will begin to learn how computer scientists solve problems. We will be using Python as our first programming language. Python is relatively easy to learn. It is widely used to solve problems across many domains, including professional software development.

Course goals

By the end of this class, you will:

How to be successful in this class

Experience suggests that learning computer science uses different parts of your brain than other courses (even math and science courses). Learning to program is difficult for many people, but with mindful practice you can succeed. Be patient with yourself. Expect some frustrating times, but have confidence that you can work through them. You'll come out of the course with new skills and knowledge.

Like learning math or a foreign language, learning in this course is cumulative: New ideas often build on ideas from earlier in the course. Make sure you understand key ideas. Review readings, notes, and exercises after class. Take the quizzes seriously. If you feel like you've missed something important, please come talk with me ASAP.

Computers have no common sense or compassion. They are complex systems, and sometimes they do things we don't expect. If things break, it's probably not your fault. Ask for help.

Janet Davis ( with thanks to Andy Exley, Albert Schueller, and Sam Rebelsky

Created August 9, 2016
Last revised August 28, 2016, 03:13:10 PM PDT
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License.