General Information


Matt Bishop
Email:; Web site:
Office: 2209 Watershed Science; Phone: (530) 752-8060
Office Hours: M 1:10pm–2:00pm; W 4:10pm–5:00pm; Th 11:00am–11:50am

When you send me email, please begin the Subject field with “ECS 10” so I see that the letter has to do with the class. I receive lots of email and, while I look at it all, I sometimes miss things, or skim the Subject fields to see which letters are very important. Putting “ECS 10” in the Subject field will tell me it is important.

Teaching Assistants

Ross Gegan, Email:
Nathan Hanford, Email:
Chuan Wang, Email:


TuTh 1:40pm–3:00pm in 106 Wellman

Discussion Sections

You may go to any discussion section you like as long as there is room for those registered for that section.
Section A01  F 9:00am–9:50am in 209 Wellman  TA Chuan Wang
Section A02  W 9:00am–9:50am in 209 Wellman  TA Ross Gegan
Section A03  F 1:10pm–2:00pm in 25 Wellman  TA Nathan Hanford
Section A04  W 2:10pm–3:00pm in 25 Wellman  TA Chuan Wang

Laboratory (and TA Office) Hours

We have reserved the following lab times for this class:
M 9:00am–12:00pm in 2020 Sciences Lab Building  TA Chuan Wang
Tu 9:00am–12:00pm in 2020 Sciences Lab Building  TA Nathan Hanford
W 11:00am–2:00pm in 2020 Sciences Lab Building  TA Ross Gegan
F 2:00pm–5:00pm in 2020 Sciences Lab Building  TA Chuan Wang
In addition, Python 3 and PyScripter are installed on the PCs in 75 Hutchison, 2101 Student Community Center, 177 Memorial Union, and 182 Shields. Please check that you use Python 3, not Python 2—the two have significant differences, and a program written for one will not run on the other.

You can see when the rooms are open and the number of stations available by going to
The software is also installed in the IET Virtual Lab at
which you can access from home.

Course Outline

Introduction to principles of computing. Methods and algorithms for solving problems by use of a digital computer. The class will teach students to write programs in the Python programming language. After completing the class, students should be well-prepared for course 30 and for independent programming projects.

Course Goals

The overall goal is to learn computers by studying programming and how to use them to solve problems. More specifically, we hope you will:
  1. Learn some basics about computers: a bit about their organization, software, and how they represent information;
  2. Learn how to write programs, and how to use an integrated development environment, debuggers, compilers, and interpreters;
  3. Learn the basics of the Python programming language, and through it the basic control and data structures, operations and data types in programming languages; and
  4. Learn how to design and write an algorithm.


Two years of high school algebra


Peter Wentworth, Jeffrey Elkner, Allen B. Downey, and Chris Meyers, How to Think Like a Computer Scientist. It is on-line at and is free.

Class Web Site

The class web site is on SmartSite. To access it, go to and log in using your campus login and password. Then go to ECS 10 in your schedule. Announcements, assignments, handouts, and grades will be posted there, and you must submit any assignments there. The alternate web site, has everything except grades, and you cannot submit work there.

Extra Credit

Extra credit is tallied separately from regular scores. If you end up on a borderline between two grades at the end of the course, extra credit will count in your favor. But failure to do extra credit will never be counted against you, because grades are assigned on the basis of regular scores. You should do extra credit if you find it interesting and think that it might teach you something. Remember, though, it is not wise to skimp on the regular assignment in order to do extra credit!


Homework assignments  40%
Midterm  30%
Final  30%
Important. The grade E-NWS (sometimes called NWS or NS), which stands for “No Work Submitted”, is no longer a valid grade. In cases where it would have been assigned in the past, we will give a grade of “F”. Please be sure you drop this class rather than submit no work!

Important Dates

First day of instruction: March 31, 2014
Last day to add: April 15, 2014
20-day drop deadline: April 25, 2014
Midterm exam: May 1, 2014
Last day to opt for P/NP grading: May 2, 2014
Last day of instruction: June 5, 2014
Final exam: June 7, 2014 from 8:00am to 10:00am (I did not pick this day or time)

Academic Integrity

The UC Davis Code of Academic Conduct, available at, applies to this class. In particular, for this course, all work submitted for credit must be your own. You may discuss your assignments with classmates, with the instructor, or with a teaching assistant to get ideas or a critique of your ideas, but the ideas and words you submit must be your own. Unless explicitly stated otherwise, collaboration is considered cheating and will be dealt with accordingly.

The single exception to this rule is debugging. Once you have written your program, if you need help debugging it, you are free to ask a classmate for help providing that classmate has also written the program. Sometimes having someone else look over a program that is not quite working right will lead you to the best way to fix it, and you both will gain valuable experience in looking at programs and figuring out what is going on. But you must not collaborate on writing the program.

You can also obtain a PDF version of this. Version of March 31, 2014 at 12:53PM