
Coding the Matrix: Linear Algebra Through Computer Science Applications - _6cj7
http://codingthematrix.com/
======
cr0sh
If you want to cover the basics of LA (vector and matrix manipulation,
mainly), and want to have some practical application of that knowledge - there
are two main areas which can be easily explored at home:

1\. 3D graphics programming

2\. Machine learning (particularly neural networks)

For the first, don't just start playing with OpenGL or Direct3D - while you
need to know the math on those, you won't get your feet as wet. What you want
to do is start from the bottom and build up (essentially building a software
3D engine). While you won't be generally dealing with large matrices or
vectors (4x4 mainly), it will be more than plenty to teach the bare ropes.

Machine learning - and neural networks - are where you start to deal with much
larger matrices, as they hold the mathematical representation of the nodes
which make up the graph that is the network. Now you have shift gears and
think about how to parallelize things, on a much (potentially) larger scale
(even here, though, you can start out small - a simple NN to learn the XOR
function is very small, but contains everything needed to move on to larger
networks once you understand the basics).

Again - these two practical applications one touch the surface of LA, but are
both fun applications of these basics to perhaps motivate you to learn more.
Even if you don't take it to the next level though, what you gain from these
experiments might prove invaluable in the future.

Personally, I think they should emphasize these two applications in lower
grades when they start to teach this stuff; I know when I was in high school
(too many years ago to contemplate), the only thing that kept me interested in
both my geometry and linear algebra sections was the fact that I was playing
around with 3D wireframe graphics on my 8-bit microcomputer at home, and
needed to understand the stuff!

/ok, maybe I outed my age somewhat...lol

~~~
DarkTree
> What you want to do is start from the bottom and build up (essentially
> building a software 3D engine)

How do you suggest starting this?

------
krat0sprakhar
It's more or less a rite of passage to share these Youtube videos whenever the
topic of Linear Algebra comes up:
[https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2x...](https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab)

~~~
pixelperfect
That series motivated me to learn Linear Algebra when I watched it 8 months
ago. After watching those, I started this course:
[https://www.youtube.com/channel/UCr22xikWUK2yUW4YxOKXclQ/pla...](https://www.youtube.com/channel/UCr22xikWUK2yUW4YxOKXclQ/playlists)

In my opinion, the latter is one of the best math courses available on
YouTube, and definitely deserves more views.

------
randcraw
I've watched about 1/3 of Strang's lecture videos and several of Klein's (as
well as bought both books).

Klein emphasizes practical computer science applications of LA (like principal
components and hands-on coding tasks), whereas Strang emphasizes LA in terms
of calculus and vector calculus.

I think both courses are outstanding. I suspect CS students will appreciate
Klein's content and examples more, though Strang lectures are so good you
won't find much to complain about. I have heard that some math purists object
to Strang's emphasis as being as lacking fundamental rigor and overemphasizing
intuition. But this criticism probably applies to both courses. I think both
approach LA in terms of its utility toward CS (Klein) or engineering (Strang)
problems.

~~~
onuralp
Disclaimer: I have an engineering background.

I think this is a fair characterization of the two approaches.

I am currently taking a class by Strang co-taught with Alan Edelman
(MIT/Julia) and Raj Rao (Michigan) that has a strong emphasis on applications
and hands-on coding tasks (using Julia).[0] I am also making my way through
CtM (thoroughly enjoying) and hope that they will release the video lectures
soon as I think the lectures and CtM complement each other quiet nicely.

[0] Matrix Methods In Data Analysis, Signal Processing, And Machine Learning -
[https://stellar.mit.edu/S/course/18/sp17/18.065/](https://stellar.mit.edu/S/course/18/sp17/18.065/)

------
DarkTree
I just bought Gilbert Strang's Linear Algebra so that I can read it along with
watching his MIT lectures. I'm wondering how that will compare to this
book/course.

Has anyone here already taken a similar path and what did you think?

My main interests are in graphics programming, so I'm hoping to apply what I
learn from the course to that.

If anyone else has any recommendations on other areas of math, courses, or
books in general for learning CG, that would be much appreciated!

~~~
plmno
Suggestions

1\. Introduction to the Mathematics of Computer Graphics by Nathan Carter:

[http://www.maa.org/press/ebooks/introduction-to-the-
mathemat...](http://www.maa.org/press/ebooks/introduction-to-the-mathematics-
of-computer-graphics)

2\. When Life is Linear: From Computer Graphics to Bracketology by Tim
Chartier:

[http://www.maa.org/press/books/when-life-is-linear-from-
comp...](http://www.maa.org/press/books/when-life-is-linear-from-computer-
graphics-to-bracketology)

~~~
DarkTree
I'll check them out, thanks!

------
carlosgg
Videos for his course at Brown (they start at the bottom):
[https://cs.brown.edu/video/channels/coding-matrix-
fall-2014/...](https://cs.brown.edu/video/channels/coding-matrix-
fall-2014/?page=1)

------
nafizh
The author's coursera course is no longer available sadly.

~~~
rectang
True, although the lectures from the Brown University version of the course
from 2014 are available here:

[https://cs.brown.edu/video/channels/coding-matrix-
fall-2014/](https://cs.brown.edu/video/channels/coding-matrix-fall-2014/)

They're listed in reverse order; start with "Course Introduction--Sept. 3,
2014".

