CS 4342/6342: Linear Algebra: A Computational Introduction

Course overview, policies



About
Announcements
Modules
Coursework
FAQ


Java API

  • Instructor: Prof. Rahul Simha

  • Time/place: Mondays 3.30 - 6.00 pm, Rome-352

  • Office Hours: 3-4pm Tuesdays, online (zoom/webex will be posted in Blackboard), from 9/7 onwards.
    Note: If nobody shows up in the first 10 minutes, the online session will be terminated.

  • Prerequisites: CS-1112 (or equivalent) - see undergraduate curriculum. Working knowledge of Java.

  • Official catalog description: Linear algebra applied to computational problems in computer science and engineering. Topics include points, vectors, matrices, and their programming abstractions; 3D transformations, pose and viewpoint estimation; linear equations; algorithms for matrix decompositions, dimension reduction, computation with large matrices, under- and over-determined systems; applications to big data, computer vision, text processing.

  • Informal course description: Linear Algebra is one of the most powerful and widely applied tools in mathematics. Unfortunately, even though it's considered relatively "easy" among math courses, intuition in linear algebra is often hard to come by. In this course, we will use a computational approach to both convey intuition and to show how to apply linear algebra algorithmically in a variety of modern applications, especially in data science. We will start from scratch, with only high-school math as the needed background, and end with the "superstar" of linear algebra, the Singular Value Decomposition (SVD).

  • Learning outcomes: By the end of this course, students will:
    • Be able to explain some important applications of linear algebra.
    • Demonstrate understanding of core linear algebra concepts through implementation in code.
    • Be able to apply linear algebra to applications.
    • Strengthen their proof skills.

  • Textbook: The course will not need a textbook because the lecture material will be available to you on this site. However, it often helps to read a textbook alongside. Here are some linear algebra textbooks. They differ in style and coverage, but are all excellent in their own way.
    • Linear Algebra and Its Applications by Gilbert Strang. This is the classic linear algebra "bestseller", written by someone recognized for his teaching (see his videos at MIT) and passionate advocacy of linear algebra. The book is informally written, and many key concepts are introduced through examples in a lively, conversational style, almost as if he's in the room talking to you. It is not a standard theorem-proof math textbook, however, and some theoretical explanations are a bit too light. Also, it dives into linear equations too early and too quickly.
    • Linear Algebra and Its Applications by David Lay. This book is representative of a huge class of "standard" linear algebra textbooks, prescribed by math departments all over the world for their entry-level linear algebra courses. It's a model of prosiac clarity and economy, has excellent formatting and layout, and is great for understanding the core concepts. The proofs are readable and as elementary as possible, which makes it approachable for undergraduates. One downside is that it covers fewer topics than, say, Olver's book below.
    • Linear Algebra by Jim Hefferon. A nicely written, easy-to-read, free textbook, with some unusual and compelling examples not found in other books. At the same time, it is aimed at a more standard math undergrad course and is less "applied". A more advanced, graduate-level free textbook is Linear Algebra: Theory and Applications by Kenneth Kuttler.
    • Applied Linear Algebra by Peter Olver and Chehzad Shakiban. This is easily the most comprehensive textbook on linear algebra, and possibly the best shelf reference. It is, however, harder to read than all the other books in this list, and probably more suited to a graduate introduction to linear algebra. If you can manage to handle this book, you don't need any other book: it is the most in-depth, has the most coverage, and is very thorough. Just to give you an example, the presentation on discrete fourier transforms, a tiny aside in the book, is done very nicely. It has the best introductory presentation of the QR algorithm I've seen, and worth the price just for that. The one major downside is that you have to know what to skip, or else you'll be overwhelmed.
    • Practical Linear Algebra: A Geometry Toolbox, by Gerald Farin and Dianne Hansford. This book is a unique take on linear algebra, using geometry as the driving application. It's nicely written, with lots of simple illustrative examples, and assumes very little background. The downside is that the coverage is a bit limited.
    • The Manga Guide to Linear Algebra by Shin Takahashi and Iroho Inoue. How could I not include the only comic book on linear algebra?

  • Programming load: The course will have some programming, because it's the way you will learn many core concepts. But it is not a programming-intensive course in the way that CS-1112 or CS-2113 are.

  • Java: We will not need any of the advanced features of Java. Most of the programming will be simple C-like programming (in Java) with arrays and loops. Although your code will implement a Java interface, and you will use one or two objects, you don't really need to understand how interfaces or objects really work. especially in the assignments.

  • Theory skills: Let's be clear that linear algebra is theory. Yes, we will use some programming and some computing applications to help us understand core concepts, but at the end of the day it is theory. So, you need to like the idea of learning math, notation, proofs and the like. Fortunately, this is very do-able with linear algebra since very little calculus is needed.

  • See the Learning activities and coursework page for a description of student learning activities and submitted work.

  • Weightage and grading: See grade breakdown

  • Assignment submission and late work policy:
    • All submissions will occur via Blackboard by uploading zip files using these submission instructions.
    • Every student will get to use three extensions in the semester:
      • A single one-time-use 1-day extension.
      • A single one-time-use 2-day extension.
      • A single one-time-use 3-day extension.
      • A single one-time-use 6-day extension.
      Each extension can be used only once, and the entire extension will be applied. (That is, you can't submit something three days late, and claim that you've used only part of the 6-day extension.) You do NOT need to tell us you are using an extension, we will merely apply the best fit in the order we get the submissions. You also cannot pick and choose which extension to apply.
    • When an extension is applied it is applied to a due date, to everything that's due on that date. So, if modules 3 and 4 are due on the same day, an extension would apply to both.
    • None of the extensions can be applied to the very last submission date since we need to have enough time for final grades.
    • Thus, a submission is considered on time if it's submitted by the deadline or if one of the three extensions above are applied. Otherwise, it's late.
    • Thus, a submission is considered on time if it's submitted by the deadline or if the extension above is applied. Otherwise, it's late.
    • Late points are: 50% off if within 48 hours, 100% after that. But ... see "get-back points" below.
    • Advice: It's best to save the 6-day extension for illness.

  • Get-back points. There are all kinds of reasons points can be lost: unreasonably demanding assignments in other courses (such as Algorithms), sheer bad luck on quizzes, those sudden emergencies that always show up at the worst times, and so on. What we will do is let you earn back lost points if two conditions are true:
    • You do a stellar job with narrative note-taking. This documents a sincere effort to learn.
    • You perform well on the final exam. This will demonstrate a willingness to elevate performance and pull it together at the end.
    If both are true, we will come back to lost points and see what we can do to raise your grade by applying some of them.

  • Laptop/phone/device policy: You are generally expected to turn off or silence your phones and other such devices.

  • Email policy: You can send email to my GW email address. I will answer most class email during specific times set aside during the week for this purpose - so do not expect an instantaneous response. Since this is an advanced class, you may not perform "debugging by email". That is, do not send me code snippets and ask me to identify the problem. If you want me to look at your code, you have to stop by in person or online office hours and show me code. Email is typically used for clarification regarding coursework. If there is a TA assigned to the course, you ought to try to email the TA assignment-related questions before emailing me.

  • Academic Integrity policy: See this page

  • Directory structure on your laptop:
    • Create a directory (folder) called linAlg off of your home directory. All your course materials, programming assignments and in-class exercises will be inside this folder.
    • Under lin-alg, create one folder for each module, such as module1, module2 ... etc. Inside module1 is where you will have your answers to the in-class exercises for Module 1.
    • You will similarly create folders for other deliverables in the same way as we proceed in the course.

  • If you have a disability that may effect your participation in this course and wish to discuss academic acommodations, please contact me as soon as possible.

  • GW's emergency preparedness guide.

  • Minimum course load: In a 15-week semester, including exam week, students are expected to spend a minimum of 100 minutes of out-of-class work for every 50 minutes of direct instruction, for a minimum total of 2.5 hours a week. A 3-credit course includes 2.5 hours of direct instruction and a minimum of 5 hours of independent learning, or a minimum of 7.5 hours per week. More information about GW’s credit hour policy can be found at: provost.gwu.edu/policies-forms

  • Statement on inclusive teaching. It is my intent that students from all backgrounds and perspectives be well-served by this course, and that the diversity that the students bring to this class be viewed as a resource, strength and benefit. Your suggestions are encouraged and appreciated. Please let me know ways to improve the effectiveness of the course for you personally, or for other students or student groups.

  • Finally, note that course policies may be adjusted or modified during the course of the semester.