Engineering 151: Accelerated Introduction to Computers and Programming

Instructor: Yang Zhang, Nuclear Engineering and Radiological Sciences

Administration: Krista Quinn, Ryan Latimer engin-fyp@umich.edu (Please send questions about course registration to this e-mail address)

Course Description:

We all use computers every day: for accessing and managing information, communicating with others, controlling vehicles and other machines, and entertaining ourselves. Likewise, every engineering project relies on computation–in design, analysis, manufacturing, deployment–and almost all engineered artifacts these days incorporate computational devices or services as integral components. Understanding what computers do and how is thus an essential part of engineering knowledge.

The courses ENGR 101 and ENGR 151 introduce first-year students to computers and how to program them to perform simple and complex tasks. The activity of programming is, in essence, the engineering of a computational process. We engineer a computation by specifying an algorithm: a well-defined set of instructions that achieve a particular goal. These instructions are expressed in a programming language, which governs the vocabulary and means for conveying an algorithm so that it can be executed by a machine. In these courses, we write programs in C++ and Matlab, two programming languages widely applied across engineering disciplines.

The accelerated course ENGR 151 covers the most basic programming constructs at a faster pace, which enables us to delve more deeply into programming principles, and address an extended set of topics. In particular, students in ENGR 151 will explore object-oriented as well as procedural programming methods, and master fundamental programming concepts such as data and procedural abstraction, and advanced control constructs.

ENGR 151 is designed for students who have previous programming experience, or a strong motivation and natural intuition for algorithms. Programming assignments will address more complex tasks earlier in the semester (compared to ENGR 101), and thus will demand a greater degree of resourcefulness in problem-solving and acquisition of programming knowledge.

This course is appropriate for both for students who are considering further study of computer science, and those who are interested but do not plan to take additional courses in programming. For the latter group in particular, ENGR 151 will provide instruction in programming topics useful for project work but not explicitly covered in standard curriculum.

GSI Information

This course is offered in the Fall semester only. To apply for a GSI position, send a cover letter and resume to the Office of First Year Programs at engin-fyp@umich.edu. GSI candidates are interviewed and selected by the instructor. Students who are selected for hire will receive an offer typically before the end of winter semester. All offers are contingent upon a successful background check. Both incoming and current graduate students are eligible for GSI positions. Please see the ADUE Class Size Policy for the GSI to student ratio in ENGR courses.