News for hackers. Stuff that matters.
Re:Coding the Matrix: Linear Algebra Through Computer Scienc... by cr0sh on Monday May 01, 2017 @06:58PM (#14242523)
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

Re:Coding the Matrix: Linear Algebra Through Computer Scienc... by DarkTree on Monday May 01, 2017 @07:42PM (#14242790)
> 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?

Re:Coding the Matrix: Linear Algebra Through Computer Scienc... by bobharris on Monday May 01, 2017 @10:28PM (#14243536)
Also interested in 3D engine pointer.
Re:Coding the Matrix: Linear Algebra Through Computer Scienc... by krat0sprakhar on Monday May 01, 2017 @02:55PM (#14240387)
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...
Re:Coding the Matrix: Linear Algebra Through Computer Scienc... by pixelperfect on Monday May 01, 2017 @04:10PM (#14241060)
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...

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

Re:Coding the Matrix: Linear Algebra Through Computer Scienc... by noobhacker on Tuesday May 02, 2017 @02:50AM (#14244455)
I'm just finished watching the 3blue 1brown series and am working through the Klein book now.

Klein's books is very heavy on symbolic manipulation and not much (geometric) intuition. I still think it's worthwhile because of its CS applications. But someone wanting to learn LA can easily get discouraged.

I would suggest one do both the book and the 3blue 1brown series. The former is the bread, the latter is the jam.

Re:Coding the Matrix: Linear Algebra Through Computer Scienc... by randcraw on Monday May 01, 2017 @02:51PM (#14240344)
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.

Re:Coding the Matrix: Linear Algebra Through Computer Scienc... by onuralp on Monday May 01, 2017 @06:46PM (#14242444)
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/

Re:Coding the Matrix: Linear Algebra Through Computer Scienc... by DarkTree on Monday May 01, 2017 @02:34PM (#14240190)
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!

Re:Coding the Matrix: Linear Algebra Through Computer Scienc... by plmno on Monday May 01, 2017 @03:28PM (#14240674)
Suggestions

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

http://www.maa.org/press/ebooks/introduction-to-the-mathemat...

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...

Re:Coding the Matrix: Linear Algebra Through Computer Scienc... by DarkTree on Monday May 01, 2017 @03:56PM (#14240925)
I'll check them out, thanks!
Re:Coding the Matrix: Linear Algebra Through Computer Scienc... by rectang on Monday May 01, 2017 @04:29PM (#14241229)
The approaches of Strang and Klein are complementary.

* Klein uses complex numbers to introduce many concepts of vectors, and uses simple graphics programming with Python to motivate the student. The exercises in that chapter of the Klein are brilliant.

* Klein introduces three different "fields" right away: the reals, the complex numbers, and the bool-valued "GF(2)" (a two-valued Galois Field). Strang sticks with the reals.

* The more traditional approach of Strang to Gauss-Jordan elimination is much smoother than Klein's. For this topic, the Klein suffers for lack of straight-up problem drills.

Re:Coding the Matrix: Linear Algebra Through Computer Scienc... by DarkTree on Monday May 01, 2017 @05:34PM (#14241896)
Thanks for the comparison. Though they are complementary, would you recommend reading one before the other?
Re:Coding the Matrix: Linear Algebra Through Computer Scienc... by rectang on Monday May 01, 2017 @06:11PM (#14242178)
I would suggest starting with the Klein and getting through the section on complex numbers, "Playing with C", which is at the end of chapter 1. (Note, Klein has a lengthy chapter 0 which is a review of prerequisites such as functions.)

After that, I suggest moving through them roughly in parallel. You may find that you prefer one or the other; I wouldn't feel bad about running with either one. (In my view, the Klein is more uneven: it has more weak sections, but is occasionally very compelling.)

Re:Coding the Matrix: Linear Algebra Through Computer Scienc... by carlosgg on Monday May 01, 2017 @05:27PM (#14241825)
Videos for his course at Brown (they start at the bottom): https://cs.brown.edu/video/channels/coding-matrix-fall-2014/...
Re:Coding the Matrix: Linear Algebra Through Computer Scienc... by nafizh on Monday May 01, 2017 @06:31PM (#14242338)
The author's coursera course is no longer available sadly.
Re:Coding the Matrix: Linear Algebra Through Computer Scienc... by rectang on Monday May 01, 2017 @06:43PM (#14242413)
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/

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