General Information


Matt Bishop; Email:; Website:
Office: 2209 Watershed Science; Phone: (530) 752-8060
Office Hours: W 11:00am–11:50am; Th 1:10pm–2:00pm; F 10:00am–10: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

Eilwoo Baik, Email: ebaik@ucdavis.eduChuan Wang, Email:
Ladan Doroud, Email: ldoroud@ucdavis.eduTeng Wang, Email:


MWF 1:10pm–2:00pm in 3 Kleiber

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: W 3:10pm–4:00pm in 1132 Banier; TA Ladan Doroud
    Section A02: W 9:00am–9:50am in 113 Hoagland; TA Eilwoo Baik
    Section A03: F 4:10pm–5:00pm in 148 Phy/Geo; TA Chuan Wang
    Section A04: Th 8:00am–8:50am in 148 Phy/Geo; TA Eilwoo Baik
    Section A05: F 9:00am–9:50am in 7 Wellman; TA Teng Wang

Laboratory (and TA Office) Hours

We have reserved the following lab times for this class:
    M 9:00am–12:00pm in 75 Hutchison; TA Eilwoo Baik
    M 2:00pm–5:00pm in 75 Hutchison; TA Teng Wang
    Tu 8:00am–11:00am in 75 Hutchison; TA Ladan Droud
    Th 8:00am–11:00am in 75 Hutchison; TA Chuan Wang
    Th 12:00pm–3:00pm in 75 Hutchison; TA Eilwoo Baik
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


Mark J. Johnson, A Concise Introduction to Programming in Python, Chapman and Hall/CRC Press, Boca Raton, FL (2012); ISBN 978-1439896945.

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 assignments40%

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: September 27, 2012
Last day to add: October 12, 2012
20-day drop deadline: October 24, 2012
Last day of instruction: December 7, 2012
Final exam: December 13, 2012

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 the teaching assistant in the course 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.
A PDF version is available here.
ECS 10, Basic Concepts of Computing
Fall Quarter 2012