Asee peer logo

Introduction To Computing The Correct (Bottom Up) Approach

Download Paper |


1997 Annual Conference


Milwaukee, Wisconsin

Publication Date

June 15, 1997

Start Date

June 15, 1997

End Date

June 18, 1997



Page Count


Page Numbers

2.265.1 - 2.265.15



Permanent URL

Download Count


Request a correction

Paper Authors

author page

Yale N. Patt

author page

Kevin J. Compton

Download Paper |

NOTE: The first page of text has been automatically extracted and included below in lieu of an abstract

Session 2632

Introduction to Computing -- The Correct (Bottom-up) Approach

Yale N. Patt, Kevin J. Compton Department of Electrical Engineering & Computer Science University of Michigan, Ann Arbor


The EECS department at Michigan has recently instituted a major change in its undergraduate program. Instead of starting with a high level language programming course as is done at most universities, we start students with a basic understanding of gates, latches, and the von Neumann model and programming in machine language and assembly language before the first C construct is introduced. This paper describes the course, our rationale, and some observations after teaching it for the third time.

1. Introduction/Rationale.

The Electrical Engineering and Computer Science Department at the University of Michigan, Ann Arbor, has recently instituted a major change in its requirements for our undergraduate majors. We feel strongly that the conventional model practiced throughout the country of introducing majors to computing via a high level language programming course is flawed. Our answer to whether it is better to start with Pascal, C, or C++ is "none of the above."

We have introduced a new course, EECS 100, Introduction to Computing, where the students start from the bottom and work up. That means, we treat (in order) CMOS transistors (briefly), logic gates, latches, logic structures, (MUX, Decoder, Adder), memory, the Von Neumann model of execution, a simple computer (the LC-2), machine language programming of the LC-2, assembly language programming of the LC-2, the high level language C, and finally some basic analysis of the algorithms the students have written. The idea is to continually build on what has gone before, so that nothing is magic, and everything can be tied to the foundation that has already been laid.

EECS 100 was developed primarily by the authors, although it has benefited greatly from input from (first) other members of the Computer Science and Engineering curriculum committee, in particular Ann Ford and David Kieras, and (more recently) from the TAs who have suffered through the first few iterations, in particular, PhD student Sanjay Patel.

EECS 100 is the required first course for all students at Michigan who wish to major in Computer Science, Computer Engineering, and Electrical Engineering. It is also being considered by the College of Engineering as a first course in Computing for majors in other

Patt, Y. N., & Compton, K. J. (1997, June), Introduction To Computing The Correct (Bottom Up) Approach Paper presented at 1997 Annual Conference, Milwaukee, Wisconsin. 10.18260/1-2--6654

ASEE holds the copyright on this document. It may be read by the public free of charge. Authors may archive their work on personal websites or in institutional repositories with the following citation: © 1997 American Society for Engineering Education. Other scholars may excerpt or quote from these materials with the same citation. When excerpting or quoting from Conference Proceedings, authors should, in addition to noting the ASEE copyright, list all the original authors and their institutions and name the host city of the conference. - Last updated April 1, 2015