Engineering 101: Introduction to Computers and Programming

Instructors:

Laura Alford, Naval Architecture and Marine Engineering

Laura Burdick, Computer Science and Engineering

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

 

NOTE FOR FALL 21:

There will be one kick-off meeting that is live via Zoom (day and time TBD, but probably sometime on Monday, Aug. 30). There are no synchronous lectures. The instructor listed for the lecture time is not relevant, because this is taught as just one large course. Online prep work will be due on Mondays and Tuesdays. Labs are synchronous during the time listed in Wolverine Access, so please sign up for a time that works with your schedule. Please Note: There is not a required textbook for this course. 

Course website: engr101.org

No programming experience is required or expected for students entering Engineering 101. 

Engineering 101 focuses on solving engineering problems with computer programming. Every engineering discipline uses computing to solve relevant and interesting problems, and this class prepares students to effectively apply computing to their future classes and careers. 

We start with basic programming concepts, and work up to more advanced topics. By the end of the class, students will have a working knowledge of how to assess an engineering problem, plan out a solution using computer programming, and implement the solution. This class covers both MATLAB and C++, two complementary programming languages used in different settings. Engineering 101 teaches to the strengths of both of these languages. 

Learning MATLAB

In the first half of the course, we focus on tasks that MATLAB is particularly useful for: quick data analysis, image manipulation, and plotting. Here is an example of a figure from one of the MATLAB projects: a summary of the data analysis for the location of a potential offshore wind farm. 

Learning C++

In the second half of the course, we use C++’s finer-grained control over a program’s decision-making capabilities to write more complex programs that implement established algorithms to solve an engineering problem. An algorithm is just a detailed set of steps that will solve a problem. Here is an example of output from one of the C++ projects: the results of applying an algorithm to solve a traveling salesperson problem, in this case, the planets to visit in a galactic version of a ride-sharing service. 

Why Do We Teach Two Different Programming Languages?

Great question! As we mentioned, ENGR 101 focuses on solving engineering problems with computer programming. Computer programming is a tool that you can use, but it’s important to use the best tool for the job. A fork is not the best tool to use for washing your face; a washcloth is a much better choice. By teaching more than one language, students learn when to use each language, and will also be able to adapt more easily to additional programming languages they may need in the future.

Course Structure

Core course content is provided via an interactive learning platform; access to this platform is free to students. The core content and skills directly support the work that is done in the lab section of the course. 

There is a two hour lab each week in which students work in small groups to collaboratively apply the core content and skills to lab exercises. The lab exercises directly support the concepts and skills needed to complete the projects in the course. 

There are six projects that give students the opportunity to use their computer programming skills to solve engineering problems. The projects focus on specific engineering problems, and the skills learned in the projects can be carried over to real-world computing projects.

For more information, including past semesters’ syllabus and schedules and an extensive FAQ guide, please go to the course website at engr101.org

Requesting an Override to ENGR 101

Please do not email the professors to request an override. Engineering students should contact the Office of First Year Programs at engin-fyp@umich.edu and Non-Engineering students (cross-campus transfer) should complete the form found in the “For LSA Students” tab.

For LSA Students

LS&A students: If you are interested in obtaining an override for ENGR 101 as a prerequisite for transferring to the College of Engineering, complete the online application form. These requests are reviewed after first year engineering students are finished registering. This means that you will not find out if you are approved to register until late August/early September for fall, and late December/early January for winter. 

Apply to be a GSI/IA or Grader

If you are interested in working with ENGR 101 as a GSI, IA, or a Grader, please fill out this form, and your name will be added to our list of interested students. We will contact you with how to apply. Application windows are roughly mid-March and mid-November (we may or may not have staff openings for any given semester). If you have any questions about this process, please contact the Office of First Year Programs at engin-fyp@umich.edu.