Monday, June 16, 2008

Programming 2 and Linear Algebra: Month 3

So I'm about half way through month 3 now and things are going good, finally getting into some cool stuff. Programming 2 is insightful and challenging, linear algebra was slow to start but has finally started to become very interesting actually. Details follow...

[programming stuff]
Programming 2:
So programming 2 was challenging from day 1. The first thing you do after lecture is get kicked in the teeth with a sorting algorithm. There is no easing into anything here, and very little explanation too, although assistance is there if you need it, figuring it on your own is more satisfying. After thinking the program through its not too bad to write, just a big change from programming 1 where things are kept very simple. In general the labs are challenging in PG2 but optional however you should do them because the next class will have a programming test or a written test having to do with concepts the labs and lectures went over. The big thing in PG2 that people seem to have a problem with though is the abstract nature of C++ classes - which if your new to programming can be hard to wrap you mind around. This is one thing that the book Thinking In C++ excels at teaching. Also the new syntax that's involved, especially when to use const or non const functions (another thing Thinking in C++ covers very well). I guess overall there is a lot to remember with classes.
Even though we have learned a lot about classes its not very new to me, the fun stuff has to be Linked Lists and Queues. Although I have messed with them I was never really forced to learn them inside out. So really memorizing their structure and getting into the nuts of bolts has been great (its a programmer thing) cant wait for more.

Linear Algebra
Now this is getting cool, it started off really dull with lots of mechanics on multiplying adding subtracting vectors and matrices and using the cross product. We did learn a cool method to solve a matrix called the Cramer Method which is more complicated than Gaussian method (if your familiar) but Cramer method always has a finite number of computations and Gaussian could go on infinitely (or so they say) I do know that Gaussian method can encounter some major floating point problems probably more so in a video game were you need to balance speed and accuracy. Anyways, its really getting interesting now we are learning transformations and how to build a transform matrix which is literally what you use to move things around in the video game, rotate things and scale them. We are learning reflections off a surface and refractions, its way cool, really awesome application of those years of math and I'm totally digging it. Then we are combining that with writing our own c++ library of math functions so its really an awesome class I just wish it were longer. Actually it kinda is longer next month I start physics which is really just an extension of this class because we will use matrices to do the math of collision detection and what not. So the class so far is not to hard there is a lot to do but its not difficult, it is stuff that you can't afford to forget though it'll be very important when we go to get a job and build our final projects.

[future students]
This class is not to bad as it is but if you really want to get everything out of it that's possible I would do some vector calculus and calculus of 3d surfaces. I have a good resource for this - I learned with Multivariable Calculus concepts and contexts by James Stewart. Get the 2nd edition (its cheaper and it's what they use in the video lectures) and then use these Video Lectures - http://courses.ncsu.edu/ma242/common/media/OutlineOfLectures.html these lectures are phenomenal and will allow you to really dig into the Linear Algebra book and go further than whats covered in class. I would at least go through lectures 1- 21 then hit 34 - 36 on spherical and cylindrical coordinates (very important). This should give a good base to understand 3d math.

So whats going on outside of school?
Well lets see, things are expensive here. Gas is just shy of $4/gallon. Its staying very warm and muggy. We went to the beach again, its was clear blue seas but the water was warmer than before and there were critters out there. Something grabbed Tammy's hand and scratched it up - she thinks it was a crab - now she is paranoid, pssh, like there is anything in the ocean that could hurt you! Also the beaches are getting packed now that summer is on, can't wait till September it should slow down again. On that same beach trip we happened to see NASA launch a shuttle and I must say - it was amazing to see that huge rocket dwindle into space just something awesome about it. If you didn't know Cocoa beach is right next to the Kennedy Space Center, when you see all those videos of the astronauts on parade after a successful space mission that's Cocoa beach, I've been watching the new series on Discovery called "When We Left Earth" it has a lot of Cocoa Beach in it, pretty cool. Not too much else going on that I can think of right now, just been enjoying the time, working hard, hanging out, and seeing some movies (don't see The Happening btw, it was so awful it was funny). Well thats about it for now, post questions and I will answer them - later!