Thursday, January 01, 2009

Open Courseware and Happy New Year!

As Jon Smirl was kind enough to point out (thanks Jon) MIT's Open Courseware is a great way to advance your knowledge. So far I've taken the Introduction to Computer Science and Programming (6.00) course (Python) and I'm taking the Structure and Interpretation of Computer Programs (6.001) course (Scheme). Both of these courses are prerequisites for other courses. I can say that I haven't taken a liking to Python as it's layout reminds me of the old days of assembly language. Of course this could be my Perl bias. ;-) The scheme language is a prerequisite for Artificial Intelligence (6.034). The other co-requisite, for the AI course, is Multivariable Calculus (18.02), I'll be using this to brush up on my Calculus skills. I'm still trying to get into the proper study routine to be able to take the MIT courses. It's laid out a little different than my pace online courses. Also, the Python and Scheme course are using an online books. The AI course is a book I happened to have. I will be purchasing the appropriate course books as needed. I still haven't figured out how to handle the homework, projects or tests/quizes. Since I'm not paying for the courses I can't take the tests (but I will be donating a little later). As much as many of us students hate tests and homework it's the best way to gauge your progress. While this won't earn me any credits towards a degree it should advance my knowledge towards something useful (which really is the point of all this) and help out in future degrees.


At 1/03/2009 12:55 AM, Anonymous Anonymous said...

Coming from a C++ background I was also initially put off by the forced indentation of Python, but I quickly changed my mind when I saw how many of the "advanced" features of C++ were fully implemented in Python, in a much better way.

Perl doesn't have much of an object oriented tradition, but if you're used to reading through forests of C++ class heirarchies in open source libraries to see how they work, you will be pleasantly blown away by how transparent Python makes these forests.

At 1/03/2009 8:42 PM, Blogger Neil Cherry said...

I didn't like C++ either! :-/

Just kidding! ;-}

I come from a C/Assembly background. While I'm not a real big fan of C++ (it makes some things too complicated) I do like OOP. I love inheritance, just take a look at my Serial ELM M1 code. I felt like I cheat writing that Perl code. :-) Yes I know Perl isn't really OOP but I took advantage of it's inheritance rules to write my code. I doubt I'll learn Perl 6.0 (why bother).

I spent my school days programming in Java (which I'm also taking a refresher course (Introduction to Software Engineering in Java (6.092)) at MIT Open Courseware). I like Java for the most part.

I'll never take to Python because of the layout and a few other minor annoyances (reminds me too much of Pascal). That doesn't mean I won't use it just means I won't start any new projects with it. Little annoyances like that keep me from properly thinking about my programming. That's enough to keep me from using it. It's like my use of the emacs editor, I learned it in 1978 and I have the keystrokes memorized. I don't need to think about the keystrokes while I'm programming I can just program. While an editor like vi just annoys the hell out of me.

Right now my programing choices are assembly, C, Perl and Java (I know several others too). For web stuff I like Java and Javascript (yes I know they're not the same). I am looking for a language that makes concurrency easier but I won't get to that until after I get through my AI courses. So much to learn so little time.


Post a Comment

<< Home