- Home
- >
- Academics
- >
- Current Course Offerings
- >
**ROB 101: Computational Linear Algebra**

# ROB 101: Computational Linear Algebra

## Fall 2020

Computational Linear Algebra is a pilot first-semester, first-year undergraduate course that will show how mathematics and computation are unified for reasoning about data and making discoveries about the world.

Linear algebra and coding are rapidly becoming an essential foundation for the modern engineer in a computational world. Students in this course will gain insights into the mathematical theory of linear algebra and its realization in practical computational tools.

Math is the language of engineering, but coding is believing and realizing it. The mathematical content of ROB 101 will be built around systems of linear equations, their representation as matrices, and numerical methods for their analysis. These methods will be given life through the lens of robotics and contemporary intelligent systems and their compelling applications.

The first pilot of ROB 101, including lectures and course material, is now available online.

Read more about the course development in ASEE Prism: Solving for Equity.

**Credits**

3 credits

**Schedule**

MWF 10 to 11 (also asynchronous)

**Course material**

Pilot semester (Fall 2020) on Github

**Teaching**

Professor Maani Ghaffari

Professor Jessy Grizzle

Tribhi Kathuria

Kira Biener

**Content**

Madhav Achar

Kira Biener

Fangtong Liu

Shaoxiong Yao

**Development**

Professor Chad Jenkins

**Override required**

Request override to be considered for admittance

**Contact for other info**

robotics101@umich.edu

## What are the topics covered in this course?

- Julia as an open-source “dynamic” programming language. Quoting from Wikipedia: “Julia is a high-level, high-performance, dynamic programming language. While it is a general-purpose language and can be used to write any application, many of its features are well-suited for high-performance numerical analysis and computational science.” All of the mathematical topics treated in the course will be made operational through computational exercises in Julia.
- Small sets of linear equations, their solvability, and how to find solutions: underdetermined, overdetermined, and just right. Scaling up to large sets of equations (thousands of variables) through vectors, matrices, determinants, and matrix inverses.
- Regression as a means of building models and making predictions.
- A camera pin-hole model and camera calibration via regression.
- Concept of factoring a matrix. Inner products and orthogonal vectors. Symmetric matrices and orthogonal matrices.
- Finding solutions to nonlinear equations via gradient descent.
- Optimization as a tool for solving robot perception problems.
- Linear transformations with applications to spatial coordinates.
- LiDAR point clouds and blobs.
- Accelerometers, single-axis gyroscopes, encoders, and what is an ODE.

## Why should I take ROB 101. What is so special about it?

Engineering math education is stuck in the Sputnik era: we force you to do four semesters of calculus before you can do anything interesting in engineering. ROB 101 seeks to break through with new ideas. You will see how engineers are using mathematics and computing to solve large and important problems. You will still do drill problems to firm up concepts with teeny tiny problems with two or three variables, but you will also solve problems in the Julia programming language with hundreds of variables.

Instead of seeing the “rules of calculus” as your introduction to college mathematics, you will experience the “raison d’etre of mathematics in engineering”, in other words, why we employ it so heavily in engineering in the first place. And instead of starting mathematics by learning the innumerable ways to get a closed-form expression by a change of variable in an integral, you will learn how to formulate and perform relevant computations with algorithms. In short, you will have a palpable understanding that computation and mathematics are your friends instead of hoops to be jumped through on the way to a degree.

## What do I need to know to be successful in this course?

We assume no prior knowledge of Linear Algebra or programming. We assume that you have completed a high school Algebra course where you learned how to solve quadratic equations. That is it.

## What personal characteristics are needed for this course?

You have been admitted to U-M Engineering — that tells us that you are up for a challenge! You’re smart, and you want to become a good engineer. We also need you to be a person who respects others and demonstrates humility. The field of Robotics is so broad that no one person can master even ⅓ of the subject.

The first thing we teach our graduate students is to say the words: “Can you help me with this?” In Robotics, asking for help is not a sign of weakness. It is a sign that you respect and appreciate a fellow human being. If you cannot bring yourself to ask for help, then you’re probably not the right person for ROB 101.

## What technology do I need to succeed in this course?

You need to be able to access the web. The course will use the Julia programming language delivered to you in the form of Jupyter notebooks that can be run in a web browser. If you can access the U-M course learning site, Canvas, then you can access all of the course materials and turn in all of the homework assignments and projects.

## Will I need to be on campus to take exams or to attend lectures?

No. The class is being offered in hybrid mode: your instructors will lecture in a classroom to anyone who wishes to attend. The lecture will be simultaneously broadcast on Zoom and recorded. The recorded lectures will be posted on the ROB 101 Canvas site. A student instructor will help the faculty member to monitor the chatbox on Zoom. You will be encouraged to participate. We’ll have anonymous means to ask your opinions about stuff.

All exams and quizzes will be conducted in electronic form. There will be a window of time during which they can be completed. ROB 101 will be much different than a typical college course: we are not planning on two midterms and a final exam. We are planning on course projects to be where you demonstrate your ability to synthesize information.

## What requirement will ROB 101 meet?

ROB 101 is intended to fulfill the linear algebra prerequisite of many courses in Engineering, with specific attention to more streamlined preparation for Robotics and AI courses.

Right now, it does not replace any required course, which is normal in the pilot semester of a new course. We are working with individual departments to see if they might accept it in place of linear algebra requisites (Math 214 and Math 217, for example) for other Engineering courses (computer vision, for example). You may not have a definite answer before you begin the course.

## How many students are you planning to admit?

In this pilot phase, only 30 students maximum will be admitted.

## What is Linear Algebra?

Roughly speaking, it’s a branch of mathematics that deals with linear equations in several variables. It also includes a number of tools, such as vectors, matrices, spaces of vectors, and linear transformations.

## Why is Linear Algebra so important?

It has become the language of computer vision, machine learning, robotics, and autonomy. It provides very compact and insightful ways to manipulate information. Linear Algebra and programming go together like hand and glove.

## What about Matlab? Why are you using the Julia Programming Language?

Robotics and many other fields are supporting open-source tools of all kinds. When researchers submit papers nowadays, they are expected to share software that supports the mathematical and experimental concepts in the paper. In the past, many researchers indeed used MATLAB. While it’s a great programming environment, it’s also very expensive. Also, you must have a local copy on your computer in order to use it. Julia, on the other hand, is open-source software and we can deliver it to you via a browser. This provides near-universal accessibility.

## If I need MATLAB in another course, will I be at a disadvantage?

The programming structures in Julia and MATLAB are very similar. It will probably take you two weeks to get up to speed in MATLAB once you learn Julia. In addition, learning Julia will help your acquisition of C++.

## What are the downsides to Julia?

It’s a new language. The help pages are not as beautifully organized as the help pages for MATLAB. You’ll learn to google a lot as you acquire skills in Julia.

## Is Linear Algebra hard to learn?

Your instructors believe that linear algebra is easier to learn than calculus and they 100% know that it is much easier to begin doing meaningful things in engineering with Linear Algebra than it is with Calculus. We’ll do three projects in the course. In the first one, we’ll have you building a map that a robot could use to navigate on the North Campus Grove.

## Why is it a new thing to be teaching Linear Algebra to first-semester, first-year undergraduate students?

That is a very good question! A number of us have been advocating for it for a long time. The Robotics faculty at Michigan, led by Professor Chad Jenkins, finally decided to do something about it. Normally, mathematics courses are developed through the Department of Mathematics. We want you to see how engineers use math and think about math. Other schools are starting to do this as well. Professor Steven Boyd has introduced a Linear Algebra course at Stanford that is required for first-year engineering students. Will ROB 101 be a required course at Michigan someday? Hard to say! We have to survive the pilot offering first.

## Do I actually need to be available MWF, 10-11am, since lectures are recorded?

It is fine to follow the course asynchronously, which means you watch the recorded lectures at a time of your choosing. You are not required to attend in person.

## What section should I choose, and what is the difference between hybrid (001) or distance (881)?

No one is obliged or even encouraged to attend in person. Attendance in person is a personal choice. We suggest you select the hybrid section if you are planning to be in Ann Arbor for Fall 2020. If you are not planning to be in Ann Arbor for the fall term, due to concerns of COVID-19, for example, then we suggest the distance learning section.

## Where will the in-person class be held?

We plan for the course to meet in person in the new Robotics Building on North Campus. But again, attendance in person is a personal choice. No one is obliged to attend in person.

## How will grades be assigned?

Fairly! Here is what we are currently thinking. We are open to suggestions.

- 15% Ten (10) roughly weekly homework sets. This is where mistakes have almost no cost.
- 60% Projects (Three projects at 20% each)
- 15% Quizzes (Four to six very short quizzes offered online, so obviously, you can consult the web when doing them)
- 5% Final presentation (Two minute video on some aspect of “Computational Mathematics for Engineering”; you will have a lot of freedom in the topic. )
- 5% Class engagement with online tools such as piazza (online chat for math), constructive comments on posted course notes, HW sets, recorded lectures, other videos, etc.