Content area
The EECS Department at Michigan has recently changed its first required course for its own majors from a high level language programming course to one that spends the first half of the semester studying the underlying hardware structure. This course is also being selected as the course of choice by many non-computer engineering majors with good results. This paper describes the course, our rationale, and some data as it relates to non-majors.
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." Some professors in other engineering disciplines may say, "Right! Fortran."
Wrong! No programming language. For our own majors, we felt it was important to present computing from the bottom up, that is, to first introduce the basic logic structures, then the basic computer, and only after the student understands what is going on underneath do we begin to teach him/her to program, in our case, in C. What we didn't expect is the resounding acceptance by a number of other engineering students. Statements from some mechanical engineers, for example, have pointed to the automobile, and the large number of features that are microprocessor controlled. "We have a pretty good idea how to deal with combustion," they argue, "but what the future automotive engineers are going to have to know is how to make appropriate use of microprocessors in the automobile, and that means understanding how the microprocessor works, not simply how to program it."
The course, EECS 100 Introduction to Computing, was developed primarily by the two 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 three iterations, in particular, PhD student Sanjay Patel. Details of the course are described in a companion paper in this conference, "Introduction to Computing: The Correct (Bottom-up) Approach"[1]. In this paper we want to emphasize the details that are particularly relevant to the non-computer engineer.
Details
Computer science;
Electrical engineering;
Microprocessors;
Engineering education;
Mechanical engineers;
Language programming;
Computer engineering;
High level languages;
Curricula;
Pascal (programming language);
Engineers;
Automotive engineering;
Colleges & universities;
Students;
Automobile industry;
Motor cars;
Engineering;
Computers;
Automobiles;
College faculty;
Programming languages;
Language