CS 4342/6342: Linear Algebra: A Computational Introduction



Java API

  • What is CS-4342 all about?
    Linear algebra is one of the most useful areas of mathematics, with many applications across computer science, engineering, statistics, and data science. It is also a building block for other mathematical areas such as machine learning: the language of linear algebra is assumed as background in any advanced math. Basic linear algebra is often considered "easy" by students, not needing anything more than high-school algebra but at the same time, it's hard to get a feel for it. Students often say "I got an A in the course but I can't tell you what it's about". The goal of this course is to provide both intuition and to show how linear algebra is used in modern applications.

  • Who should take this course?
    All engineering, physics and math students should take linear algebra. For CS students, linear algebra is an important elective - see my thoughts on this topic.

  • I've taken the Math Dept linear algebra course. Should I take this?
    If you came out that course with strong intuition and know how to apply linear algebra, there will be considerable repetition in terms of the theory; you will certainly learn a lot from implementation. If not, seeing linear algebra from a different perspective can strengthen a core skill.

  • I haven't taken CS-1112. Can I take this course?
    You need to be comfortable programming in Java. Very little of the programming involves objects or anything advanced in Java, but it does need comfort with basic programming: loops, conditionals, arrays.

  • I've taken CS-1112, but in another language. Can I take this course?
    If you're not comfortable with Java, this course might be exceptionally challenging. We are not going to teach Java in the course.

  • Is this a programming-intensive course?
    Yes and no. It's not as programming-intensive as, let's say, CS-2113 but there will be a fair bit of programming. Most of the programming consists of modifying small programs. It's really an excellent way to learn the material.

  • I'm not a CS student and am not strong in programming. What are my options in this course?
    Non-CS students may have the option of working in teams to ease the programming challenge, with prior arrangement with the instructor.

  • What is the math background I need for the course?
    The mathematics needed only assumes high-school algebra. That said, this is a proof-oriented course and one that will move rapidly through the material. If you haven't done calculus, you'll likely not have the mathematical experience needed.

  • Is this a math-intensive course?
    Yes. We'll certainly do proofs.