ENGR 101 is the computing requirement for all cross campus transfer students. Some departments will accept EECS 183 in place of ENGR 101. They are both C++ programming. There are 3 spots reserved in all ENGR 101 classes for LS&A students. Sharon Sansoterra(sharonsa@umich.edu) is the contact person for being able to register for this class. An LS&A student would have to contact her in order to receive an override. Students should plan on meeting with an engineering admission counselor prior to being able to receive an override for this course. ENGR 101 is currently only being taught during the Fall and Winter terms. Students will not be allowed into ENGR 101 more than two semesters away from their planned enrollment in engineering.
What’s in it for you
Algorithmic thinking
Start to understand what an algorithm is, and how to devise them to solve problems, especially in science, mathematics and engineering
- Thinking algorithmically is a logical thought process
- Creating algorithms will improve your cognitive processes
- Algorithms provide the means to solve most of the hard mathematical models that are required in engineering analysis
How to express algorithms
Understand how algorithms can be expressed in formal “languages” called computer languages
- Large groups of these formal languages have common structure and principles
- We want you to see and recognize these common structures and principles
- This will provide a foundation for you to learn many other programming languages if you need to
Practical skills for engineering students
- Explore the difficulties of solving a problem whose solution you do not know
- Engage in the engineering design process
- Learn and practice techniques to manage complexity
- Abstraction
- Decomposition into subparts
- Prototyping
- Time-management
- Practice the art of testing and troubleshooting, and develop a sense of aesthetics for a product
High level topics
Specifically, you will learn about the following topics as the term progresses:
- Algorithms
- Programming language as an algorithm expression system
- Naming things, variables, types, expression, assignment
- Routines, procedures, functions, interfaces
- Sequence
- Selection
- Iteration
- Numerical algorithms
- Testing and troubleshooting (debugging)
- Managing complexity through decomposition
- Array semantics
- Multidimensional arrays
- Encoding of data