Programming‎ > ‎


This semester you will learn how to program a computer. All the programs you use every day, like MS-Word, iTunes, and even Windows itself are nothing more than a series of instructions, created by humans, that tell the computer hardware what to do. Programs are written in various languages. The language we will learn this semester is called "Python". It is an elegant language that makes it easy to learn simple concepts, but scales smoothly to provide very powerful modern constructs like methods and objects. 

All of our resources this year are online and freely available, so you can install the software and read the textbook on your home computer. In addition most of our resources are also very "portable" which means you can use them on a variety of computer systems including Windows, Mac, and Linux.

Python is an open-source language, which means that it's free to use. Python works on Windows, Mac OS-X, and Linux so you can download it for free onto your home computer. Like all things computer related, there are different versions of Python. The two major versions are v2.7 and v3.7. CodeHS teaches v2.7, but we will use v3.7 for the mini-projects, so you will learn both versions..

Course Structure
This course will involve self-study homework online with CodeHS, some course lecture, and in-class written tests. Every few weeks I'll have you work a mini-project that ties the various chapters together as you write a moderately complex program.

Assignments and Grading

CodeHS Units: CodeHS is a website that you will use to learn the fundamentals of python. It will provide mini lessons much like Khan Academy and give you numerous short programming tasks. You will be graded completing the CodeHS units. The CodeHS homework will have due dates posted on the website and you must complete the unit lessons by those due dates. 

Mini-Projects: There are four mini-projects in the course.  The mini-projects are assigned after you cover the appropriate content in CodeHS. Mini-projects are done with partners, requiring you to demonstrate various programming knowledge and skills. In addition to the programs you write for the mini-projects, you must also turn in design documents that explain how the programs are structured and how they work.

Tests: After each mini-project is complete you will take a written test over the material covered in mini-project.

Assignment weighting is shown below:

50%    Tests
20%    Mini Projects
30%    CodeHS

Grading follows the conventional 90/80/70/60/0 scheme for A/B/C/D/F.

Due Dates
Due dates for CodeHS, mini-projects, and tests will be posted on the class website calendar.  Your online CodeHS score as of the due date will be entered in the gradebook. If you have a CodeHS unit score below 70% on the due date, you may continue to work on the units after the due date but your maximum late score will be 70% if you raise it above 70%

Extensions to due dates must be discussed with me at least one week prior to the deadline. I do not guarantee that extensions will be granted. CodeHS progress and mini-project work is submitted online so being absent on a due date doesn't preclude you from turning in your work on time. Projects submitted more than a week late will not be graded and earn a 0%.