So last night I finished module 3 in my AI for Robotics course that I am taking as a part of Georgia Tech's Online MS in Computer Science. Things have somewhat settled down into a routine, with my various classmates working through the course at their own speed. Due to a complete lack of time in pretty much my entire life right now I'm simply trying to keep abreast of the weeks as they are due according to the schedule provided at the start of the term. Problem sets are due each Wednesday, and are submitted through Udacity's software. An instructor then goes through and ports these into something called T-Square, which I understand to be Georgia Tech's grading system. I could be wrong, though.
Assumed background knowledge
One of the things I'm noticing is that the course is starting to assume some background knowledge that not a lot of students may have. This is unavoidable in pretty much any course, as I have found out too often during my stints as a college professor. However, there are some ways this could be mitigated. For example, this is my first course at Georgia Tech, and my understanding is that it is targeted towards the end of the program. I took it because I found the subject interesting, but I could see where this might be causing me some trouble.
One example is that the course makes some decent use of techniques from Linear Algebra. I have a healthy grounding in this thanks to my time at DePaul and a few years spent in the pixel mines, but more often than not this type of math is an elective - at best - for computer science undergraduates. The problem is that there wasn't much in the course description that indicated that this type of math would be used. Statistical analysis is also featured heavily in the course, and while there are ample resources available for coming up to speed most students have no idea that they will need to do so before the course starts. I had around a month before classes began where I could have been preparing myself, but as it was I kind of walked into the course blind.
Interesting Problem Sets
One of the things I do find interesting is that the problem sets at the end of each lecture are actually not a significant portion of the grade. In fact, they're worth 3 points each (compared to a total upwards of 70 points for the two projects), and are graded on a pass-fail basis. To quote the professor, they essentially serve as a kind of "attendance check." That's all well and good, but if I am putting forth effort towards these assignments I'd like to see just a little bit more credit given for my efforts. Not much I can do about that, though, and I can definitely see the instructor's point.
One thing I do like about these problem sets is the use of automated grading. At first it's used in a fragile manner, along the lines of "Does the program output include this string," but the most recent assignment used statistical analysis in its grading to determine if the provided code was correct. It's pretty rewarding to see code that you wrote indicated as correct against an arbitrary data set with around 95% of accuracy.
One thing I'm kind of leery of is wondering when the lack of prerequisite knowledge is going to bite me. I'm worried about the week 4 subject material, as it depends a lot upon dynamic programming and some aspects of machine learning - to the point where I'm reading chapters from a ML textbook in order to increase my knowledge base. It leads to one of the things I've been most concerned about, which is adequately scheduling time to devote to my courses.
So far the coursework takes me between 2-4 hours a week - a surprisingly low amount. However, I know that this is not the case for other courses, such as Machine Learning which can demand upwards of 40 hours of additional time each week, and in many cases I'm waiting for the other shoe to drop. I suppose at this point all I can do is wait and see, and hope it doesn't get too bad.
I'll try to provide these posts more frequently but, as I mentioned above, life happens :-/