Introduction to Computational Problem Solving
CS 167-C, Whitman College, Fall 2016
MWF 2:30-3:50, Olin 124
Office hours: As posted
and by appointment
Class mentors: George Ashley (MW) and Richie Farman (F)
Lab hours and lab aide
Welcome to CS 167! The official course
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
scientist. I'm excited to teach this course, and I
share some of that excitement with you.
My main goal for this
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
By the end of this class, you will:
- become familiar with big ideas of computer science, including
algorithms, data, abstraction, and efficiency;
- understand and apply basic elements common to all programming
languages: data types, variables, functions, iteration, and
- construct clear, well-commented, modular computer programs;
- carefully test and debug computer programs;
- independently find libraries, examples, and tutorials online to
help you with your own projects;
- be ready to use Python to solve computational problems you
- sharpen general problem-solving skills;
- consider some of the historical and contemporary social context
How to be successful in this class
Experience suggests that learning computer science
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.
some frustrating times, but have confidence that you can work through
them. You'll come out of the course with new skills and knowledge.
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
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.
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.