Notice that the number of classes in the list has suddenly gone way up! And next week it will go up again...
Progress:
- Programming Abstractions: finished 5 out of 8 problems on the third problem set.
- Despite a week dedicated to recursion in the lectures, there's only a bit of recursion included on this problem set (of the 5 problems I've done), so either the last three problems here are recursion-heavy, or the next problem set is, which would mean that I'm a bit behind in problem sets compared to where I am in the lectures. Which isn't that big of a deal. Anywho, I'm getting more comfortable in C++ but at the same time there are so many myriad things that Python seems to make so much easier. Not only are the data types much more opaque in C++, but, it's worth mentioning, more limited too - for example the "map" type provided by the CS106B library can only accept strings as keys, while the equivalent "dictionary" type in python can take anything. Also, while accessing substrings from either direction is a snap in python, it's a hassle and a half in C++. The iterator is also a big PITA in C++. It's amazing how much I'd been taking for granted in python. I suppose the tradeoff of that is a reduction in computation speed, but so far that's not an issue for me. Anyway, I certainly don't regret getting some practice with C++, and compared to other languages I'm sure C++ is as easy as python anyway.
- Algorithms, Linear Algebra: no progress since the last update :(
- Udacity CS212: Design of Computer Programs: watched through part 14 of unit 1.
- I'm excited by this course, but I'm a bit miffed by the somewhat ill-defined nature a bit of the programs have taken. The lecturer has a bit of a loosey-goosey way of doing things when he's explaining, and I wish he'd be a bit more precise. That said, I think there's a lot to get out of this class. I expect to see lots of the same kind of stuff that I encountered on my own when programming my FreeCell implementation, but handled in a more thorough and structured way - plus all of the peripheral knowledge that will come with it.
- Udacity CS253: Web Application Engineering: watched all of unit 1.
- I expect this course to teach me a lot about what up until now I've mostly taken for granted about how the internet, specifically the client-server interaction, works. I expect it to complement the skills learned in CS262 very well. Thus far, there hasn't been too much new information since I already know the (very) basics of HTML. But there's some good info regarding the kind of information that servers use, etc.
- Udacity CS262: Programming Languages
- While the backbone of this course deals with building a web browser (which is incredibly interesting and exciting), it also so far has been spending a lot of time talking about more theoretical topics like regular expressions and finite-state machines. I find this theoretical stuff to be just as fascinating and I'm glad the course has a bit more of an academic feel to it than the other two, which seem to be more like practical (engineering) courses. But of course, time will tell.
- Udacity CS387: Programming a Robotic Car
- Along with Computer Vision and Machine Learning that are starting next week, this will be one of the three AI-courses I'll be taking this "term." How exciting!! The course thus far has been decently challenging, but I must say I'm not without complaints. Sometimes I feel he doesn't spend enough time on the math or the theory and the knowledge doesn't seem as deep because of it. I wonder if he's not trying to "sweeten" the course by removing rigorous mathematical discussion, which would be a shame in my opinion. On the other hand, sometimes the class is difficult but for the wrong reason - to wit, he tends to give a quiz right after he explains something. Instead of doing several examples to explain the concept, he hits the student with a quiz right after he's explained the theory, so in effect you're being asked to do the example yourself. This is fine in some cases, but really, in my opinion quizzes should be made after a thorough explanation and some examples have been given. This will help the student understand the material and see the thought processes to make, and it will avoid discouraging the student by giving them a problem they don't understand well and thus can't solve, and making them feel stupid for not being able to do so. As far as the actual course content goes, there's lots of interesting stuff. It seems that probability is absolutely central to the idea of AI, which isn't surprising. With that as a framework, localization and motion can be wrought up as probabilistic functions, with measurements and attempts at motion updating probability. It's neat. I hope and expect that if I have a good understanding of this class, the Computer Vision class and the Machine Learning class, and fill in whatever significant cracks are left (for example, by looking at the Introduction to Robotics lectures on the SEE site), then I'll have some really solid knowledge of AI. I'm very excited.
Right as I add a host of courses to my plate, I also find myself about to start my job full-time (next week, to be precise). As exciting as all of this is, I'm not a little worried as to how I'm going to fit everything in. I suppose we'll see.
No comments:
Post a Comment