Course Information for Fall 2017
Lecture Time: MWF 10-10:50
Lecture Place: Lovejoy 215
Lab Time: A W 1-2:20, B R 2:30-3:50
Lab Place: Davis 102
Instructor Information
Prof. Caitrin Eaton (Lectures)
Office: Davis 116
Email: c e eaton _at_ colby _dot_ edu
Office hours: M 4:00-5:00, T 3:00-5:00, R 3:00-4:00
and whenever her door is open
Prof. Bruce Maxwell (Labs)
Office: Davis 112
Email: b maxwell _at_ colby _dot_ edu
Office hours: whenever his door is open, Monday evening after
orchestra rehearsal, Thursday evenings 7-10pm.
The following materials are very helpful, but please note that they were written for Python 2. While they are still great learning tools, some pieces -- e.g. print statements -- will not execute correctly in Python 3.
Course Description
This course is an introduction to computational thinking: how we can describe and solve problems using a computer. The Visual Media section will focus on generating complex and interesting scenes and images through writing well-constructed programs. These applications will motivate how and why we would would want to write procedures, control the flow of information and processes, and organize information for easy access and manipulation. Through lectures, short homeworks, and weekly programming projects, you will learn about abstraction, how to divide and organize a process into appropriate components, how to describe processes in a computer language, and how to analyze and understand the behavior of their programs. While the projects are focused on visual media, the computational thinking skills you learn in this course are applicable to any type of programming or program design you may undertake in the future.
Learning Goals
- Students can read a simple program and correctly identify its behavior
- Students can convert a problem statement into a working program that solves the problem.
- Students understand abstraction and can break down a program into appropriate procedural and object-oriented components
- Students can generate an approximate model of computer memory and describe how an algorithm affects its contents.
- Students can communicate the result of their work and describe an algorithm
Links to Python Resources
- Python.org
-- This is the main source for all documentation on Python. This
documentation can be downloaded to your computer so that you don't
need web access to view it. Note that we will be using Python 3.6 in
lectures and labs.
- For an informal introduction to Python, they have a tutorial
- For a list of functions and data types, refer to the library reference documentation.
- Free Online Books on Python
- How to Think Like a Computer Scientist (Python)
- How
to Think Like a Computer Scientist, Interactive Edition.
This book has video lectures and it has editors where you can write, run, and test code - Welcome to Python for you and me
- Free Online tutorials in Python
Recommended Textbook
John Zelle, Python Programming: An Introduction to Computer Science, either the 2nd or the 3rd edition (both use Python3).
Note: This textbook is not required. Also note that the first edition is geared for a different version of Python.
Fall 2017