Site Map | College of Engineering | UC Davis | MyUCDavis

ECS 10 BASIC CONCEPTS OF COMPUTING (4) I,II,III

Lecture: 3 hours

Discussion: 1 hour

Prerequisite: Two years of high school algebra

Grading: Letter; programming projects (35%), two midterms (20% each), final exam (25%)

Catalog Description:
Introduction to principles of computing. Methods and algorithms for solving problems by use of a digital computer. Not intended for students in physical sciences, engineering or mathematics. Not open for credit to students who have completed course 30, 35, Engineering 5 or former course 30H.

Goals:
The class should teach students to write programs in the Python programming language, including the features of Python described below. After completing the class, students should be well-prepared for course 30 and for independent programming projects.

Expanded Course Description:

  1. Introduction: Overview of computer organization, steps in creating a computer program.
  2. Programming in Python
    1. Simple programs: Variables, assignment statements, arithmetic expressions, input and output statements.
    2. Control flow statements: if statements, while statements, for statements.
    3. Functions: general concept, declaration and calls, parameters.
    4. Data structures: single and multidimensional arrays (implemented as Python lists), strings, parallel arrays, arrays of objects.
    5. Text files: reading and writing.
    6. Note: the course avoids the topic of object-oriented programming as much as possible, and teaches students only enough about objects so that they can write programs with simple data structures and features such as command-line arguments and random numbers.
  3. Algorithms - the course presents at least one sorting algorithm in detail and introduces students to related topics such as run-time analysis.
  4. Introduction to Software Engineering
    1. Program development - the course teaches students to develop programs systematically, one step at a time, and to divide programs into several functions.
    2. How to use a Python debugging tool.

Suggested Textbooks:
M. Dawson, Python Programming for the Absolute Beginner, Thomson Course Technology PTR, Second Edition, 2005.
J. M. Zelle, Python Programming: An Introduction to Computer Science, Franklin Beedle & Associates, Book & CD-Rom Edition, 2003.

WEB Resources:
Main Python web site: http://www.python.org
Python tutorials: http://heather.cs.ucdavis.edu/~matloff/python.html
On-line Python textbooks (also available for free download):
   A Byte of Python (by Swaroop C H) and Non-Programmers Tutorial For Python (by Josh Cogliati)

Computer Usage:
Six or more programming assignments with some requiring writing several programs. Programs require students to apply the concepts covered in the lecture. For example, the following list describes the key topics that might be covered in a typical sequence of assignments:

ABET Category Content:
Engineering Science: 0 unit
Engineering Design: 0 unit

Instructor: N. Amenta, B. Ludaescher, M. Gertz

Prepared By: N. Amenta (February 2007)

No significant overlap with other courses

Back to Course Descriptions