CS0008: Sp 2015


Welcome to CS0008, an Introduction to Computer Programming! This course teaches the basics of programming, using Python, which is an industrial-strength programming language used at companies like Google and Industrial Light and Magic.

The course consists of 2.5 lecture hours per week, 50-minute weekly labs, optional weekly programming lab exercises, regular assignments, 2 tests, and a final exam. (Phew!) I am keeping you busy throughout the term because learning to program is like learning to play an instrument; if you want to play well, you need to practice regularly.

Class Times

Lectures Labs
T,Th 1:00-2:15pm, SENSQ 5502 (24532(A)) M: 1-1:50pm (24639 (A1)) & 4:00-4:50pm (24640 (A2)), SENSQ 6110

Contact information

Instructor Email Office Office Hours
Prof Jan Wiebe wiebe [at] cs.pitt.edu SENSQ 5409 T: 2:30-3:30pm; or by appt (please send email or see me after class)

Teaching Assistants Email Office Office Hours
Graduate Grader: Luca Lugini lul32@pitt.edu SENSQ 6150 Thurs 10am-11am
UGRAD TA: Conor Curry clc231@pitt.edu SENSQ 6506 W 3-5pm
UGRAD TA: Christian Clark cec81@pitt.edu SENSQ 6506 W 1-3pm

Course Description

This course will cover fundamental concepts in computer programming including control flow, data structures, sorting and searching algorithms, object-oriented programming concepts, accessing databases, and good program design. You will learn how to make computers do what you want them to do. You may be planning to be a linguist, physicist, nurse, or computer scientist. Being able to program and understanding how software works will be extremely valuable, whatever you do.

Course Rationale

This is a first course in computer science programming. It is recommended both for students intending to major in computer science who do not have the required background for CS 0401, as well as for students majoring in another area. There are no prerequisites for the course.


We will cover the chapters of the book in the following order: 1, 2, 3, 4, 5, 6, 8, 10, 7, 9, 11.

Course Requirements

Work Weight Comment
Labs 15% Attendance is required for credit. All labs carry equal weight.
Assignments 25% All assignments carry equal weight.
Tests 30% 15% each
Final exam 30% To get a C or better in the course, you must get 60% or higher on the final exam.

Webpage and CourseWeb

Course materials will be distributed via the course web page. A schedule on the web page will include lecture topics, lecture notes, readings, assignments, labs, and information about the exams.

Grades and solutions will be distributed via courseweb.

Lab Sessions

Lab sessions will be held during recitations. You will work in pairs. Together, you'll work through examples and explore concepts in Computer Science. The lab sessions will help you learn the material and will also give you valuable experience explaining things to each other.

Variety is the spice of life, so you should switch up partners periodically.

The labs will be graded S/U (satisfactory/unsatisfactory). You'll earn an S grade for a lab if you attend the session, work with your partner, and complete the lab with reasonable (if not all correct) answers. If needed, you can finish the lab after the session. Labs are due at the beginning of your next lab session. Labs after that time/date will not be accepted.


Assignments will receive numerical grades. Assignments are due at 11pm on the due date. The late penalty is 10% per 24 hours, for up to 72 hours (including weekend days). No assignments will be accepted 72 hours after the due date/time.

Instructions for submitting assignments will be included on the assignment handouts.

All graded materials that a student receives back should be saved in a safe place until after the term has ended and he/she has received and accepts his/her final grade. In this way, any grade discrepancies can be easily resolved.


The questions on the exams will all be similar to something we covered in lecture, on an assignment, or in a lab. To study, read the text, and then use the lectures, assignments, and labs to focus studying.

See "What will be on Exam X" on the schedule to see what will be covered on Exam X.

Exams 1 and 2 are not cumulative. The final exam is cumulative.

The exams are closed book and closed notes.

The material gets more complex as the course proceeds, and later exams build on the stuff covered in earlier exams. So, keep up!

Students are expected to be present for all exams. Make-up exams will only be given in the event of an emergency, and only if I am informed in advance. If you cannot contact me directly, send me email or call the CS Department (624-8492) and leave me a message. Failure to notify me prior to missing an exam will result in a zero for the exam.


myprogramming is a website with Python exercises, where you enter answers to questions and the website gives you feedback. To see how it works, go through the introductory videos. There is a courseID you need to register (I can't put it on the web). Once you register, you will be able to access not only the exercises, but an electronic version of the text (eText) and some videos covering the material created by the author of the text (VideoNotes).

Other Policies and Notes