General Information


Matt Bishop
office: 2209 Watershed Science
phone: +1 (530) 752-8060
office hours: Mon 11:00am–11:50am; Wed 2:10pm–3:00pm, Fri 12:10pm–1:00pm

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

Ming Xiao, email:
Eilwoo Baik, email:
Tianhong Song, email:

Discussion Sections

You may go to any discussion section you like as long as there is room for those registered for that section.

Laboratory (and TA Office) Hours

We have reserved the following lab times for this class:

In addition, Python 3 and PyScripter are installed on the PCs in 75 Hutchison and 2101 Student Community Center. Those rooms do not have classes, so you can use the systems in there whenever the rooms are opened. You are free to use any of the other computer labs when they are not otherwise scheduled, but they may not have the software installed. 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 IET Computer Rooms Available web page.

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:


Two years of high school algebra


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

Class Web Site

The class web site is on SmartSite. To access it, go to SmartSite 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%

Academic Integrity

The UC Davis Code of Academic Conduct 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
Winter Quarter 2012