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:
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!
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