Computational Linear Algebra is a first-semester, first-year undergraduate course that shows 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 is 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.
Lab: Tuesday 4:30-6:30pm
Lecture: Monday/Wednesday 1:30-2:50pm in 1060 FMCRB
Live Zoom / Lecture & lab recordings posted to Canvas same day
Lecture attendance during class-time is 100% optional. Choose your learning modality. We expect that Remote/Hybrid students will still have great course outcomes.
Professor Maani Ghaffari
Professor Jessy Grizzle
Request override to be considered for admittance
All lectures and lab sessions are recorded and posted on the Canvas Site. The posted recordings lectures may contain audio and video of you and not just the instructors. This applies to both in-person and remote students. Recorded lectures are made available to other students in this course. Consequently, as part of your participation in this course, you may be recorded and posted on this Canvas site.
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 factorizations.
- Linear transformations with applications to spatial coordinates, with application to LiDAR point clouds and blobs.
- Regression as a means of building models and making predictions.
- A camera pin-hole model and camera calibration via regression.
- Inner products and orthogonal vectors. Symmetric matrices and orthogonal matrices.
- Traditional topics such as vectors spaces, linear independence and bases, matrix rank and nullity, eigenvalues and eigenvectors
- Nontraditional topics such as finding solutions to nonlinear equations via gradient descent and optimization as a tool for solving robot perception problems.
- What is an ODE. Dynamical models through the lens of interactive systems of equations.
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.
What’s new since the pilot offering in Fall 2020?
Based on the Course Evaluations, we are adding a one-hour weekly lecture on the Julia programming language. Formally, it is listed as a lab. However, you can attend the lab in person or live streamed, or even watch a recording of the programming lecture. The lab is listed as two hours. The additional hour will be a “Recitation Period”….meaning an hour where a GSI works out example problems and takes questions live, with it being also live streamed on Zoom and recorded. The recitation is optional. In fact, we do not take roll in lecture, lab, or recitation. You get to choose the best modality for your style of learning.
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 quizzes, HW sets, and projects 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. The quizzes are “open book” and un-timed; they encourage you to review material.
Remote vs In-person: The course was being designed for hybrid delivery (in-person + remote) even before the pandemic struck in March 2020. Based on our experience during Fall-20, we expect our remote students and in-person students to have similar outcomes with the course material. You are free to attend sometimes in person and other times to be remote. We do not take roll! Please choose the section that reflects your current best guess of how you want to experience the lectures and the laboratory.
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, ROB 101 does not officially replace any required course.
The following is what we expect but cannot guarantee: CSE currently requires MATH 214 or MATH 217 for several of their courses in Computer Vision and Machine Learning (EECS 442, 445). The Computer Science faculty are in the process of placing ROB 101 along side MATH 214 and 217 as an approved prerequisite for these courses. We expect the process to be completed by mid October 2021. You are unlikely to have a definitive answer before you begin the course
How many students are you planning to admit?
We expect to admit 100 students. Preference will be given to Y1 students (freshmen). You need to complete the REQUEST OVERRIDE to be considered for the class.
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 at lecture or lab times since both are recorded?
It is fine to follow the course asynchronously, which means you watch the recorded lectures/labs 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)?
We suggest you select the in-person section if you are planning to be in Ann Arbor. If you are not planning to be in Ann Arbor, then we suggest the distance learning section. You will have the same access to office hours, help sessions, HW sets, projects, etc. The grading will be the same. There is no bonus for attending lectures or labs.
If you signup for the in-person section, then you can always chose to watch the live Zoom simulcast and the recording of the live lecture. If you signup for the remote section, and you want to occasionally drop into the classroom for the live lecture, that is fine too, as long as there is an open seat. We want you to learn in the way that works best for you.
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 how grades were assigned last year. Yeah, they were very high! We piloted the course during a pandemic and the students were very helpful in refining the material for the course. Will it be the same this year with a median of an A? Unlikely. Maybe an A-?
Likely grading policy
- 15% Nine (9) 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. There is no bonus for attending lectures or labs in person. We’re not into takling roll and asking for notes from your guardians.
Are the grades 91-100% = A, 81-90 = B, etc? No. We are not robots and you are not a number. We try to take a holistic view and treat you with respect. Now, that requires trust on your part. Do we deserve your trust? We will work to earn it.