218L Materials

Class Information

Math 218L is a set of supplementary coding labs for Math 218 - Linear Algebra and Vector Spaces. Math 218L will provide hands-on experience in applications of linear algebra in a variety of fields. By giving students an opportunity to practice and apply concepts learned in Math 218 using elementary Python coding methods in the NumPy library, students will gain a deeper understanding of linear algebra and its theoretical and real-world applications. In between understanding matrix algebra and vector spaces, students will:

  • See how Britain could have foiled the American revolution with linear algebra;

  • Understand Google’s PageRank algorithm used for web searches;

  • Code their own elementary handwriting recognition;

  • Implement matrix reduction and decomposition algorithms;

  • Fit data to linear and polynomial models;

  • Learn Python and NumPy methods to work with matrix and array objects;

  • Gain hands-on experience with algorithm timing;

  • Understand basic machine learning;

  • Deepen understanding of fundamental spaces, bases, and other concepts from Math 218;

  • Learn how faces can be decomposed and recognized by computers;

No prior coding experience is required, though CompSci 101 is recommended to be taken at the same time for students without coding experience. Students with little or no coding experience will be paired with students with prior experience.

Class Structure

For the Fall 2020 semester, 218L will be an asynchronous class. That means that students will watch short videos introducing each lab, which will be posted weekly, per the schedule found below. Videos will be linked to in the table below once they are uploaded. Students will then work to complete the lab in their pairs on their own time, with the homework being due the next week. During the first week, there will be a required Zoom session introducing the class and setting up pairs of students for the semester.

Instructor

Your instructor for the semester will be Rann Bar-On, whose webpage you are currently browsing. Best contact for Rann is email.

Grading

218L is graded entirely on the lab homework submissions. Homeworks will be graded for completeness, well-commented and clear code, and thoughtful answers to non-code based questions. Your instructor will provide reasonably extensive comments on your work so that subsequent work can be improved upon. Homework will be submitted on Gradescope. Homeworks will get letter grades, which will be averaged for an overall semester grade.

Support

Your instructor will hold 2.5 hours of office hours weekly:

It is strongly recommend that students attend these sessions. If the office hours end up being at a time you cannot attend, other times can be found for a meeting. Please reach out!

Where and How to Find Labs

As stated above, all labs will be run using Python and NumPy. In order to avoid varying installations and difficulties, all work will be done on Jupyter virtual machines, set up by Duke. Jupyter workbooks are set up as webpages in which you will find complete instructions for the labs, as well as code boxes in which you can write, test, and submit code. To set up and access your personal Math 218L VM, click here.

Office Hours

  • Zoom, Tuesdays 11:15-12:30pm, Thursdays 11:45pm-1pm.

Asynchronous Lab Schedule

Note: Some homework due dates may change, but most will not, and in any case, will not be moved forward.
Date Video Posted Lab Homework Due Date (by Midnight) Video
August 18 Lab 1 – NumPy Basics August 25
August 25 Lab 2 – Linear Algebra in NumPy, Metadata and the Revolutionary War September 1
September 1 Lab 3 – Floating Point Error, Row Reduction, and Back Substitution September 8
September 8 Lab 4 – LU Decomposition September 15
September 15 Lab 5 – Nullspaces, Networks, Popularity, and the Internet September 22
September 22 Lab 6 – Least Squares, Data Fitting, and Machine Learning September 29
September 29 Lab 7 – Handwriting Recognition October 6
October 6 Lab 8 – Determinants and Algorithm Analysis October 13
October 13 Lab 9 – Eigenvalues, Eigenvectors, PageRank, and Markov Chains October 20
October 20 Lab 11 – Applications of the Singular Value Decomposition October 27
October 27 Lab 12 – Facial Recognitions (Part I) November 3
November 3 Lab 13 – Facial Recognition (Part II) No Homework