It's that time of the year again where I reflect on what I have learned for this semester. This semester has been relatively kind to me with no subject too dull or difficult. Also, this was the semester where I had to practice for the GRE and complete my graduate school applications. In addition, I was also an undergraduate teaching assistant for two classes and these two jobs consumed more than 12 hours of my week.
But I am glad that I took the classes that I did.
- ART 140: Introduction to Art
After taking this class, at least now I can claim to know more 20th century artists and begin to appreciate art in a new light. Formerly my knowledge of art history was really limited, but right now, I am confident enough to go to an art museum and understand and appreciate the terms that are used to describe a masterpiece. Also, I think I am capable of identifying different painting styles. But now that I think of it, knowing the nomenclature does not really make the ugly art any better than it is. The selection of topics was thorough enough and the field trips that we had were interesting. The only bad thing was the disorganized nature of the course toward the end of the semester; the lecturer decided to just drop some of the materials from the schedule because she had not plan her schedule properly. In addition, the grading scheme for the exams was too subjective and involved too much writing. Moreover, there were 4 exams and 3 papers. Even though the grading was rather lenient, it was still a lot of work for a 3 credit hour course. Nonetheless, I am glad that I took it.
- CS475: Formal Models of Computation
Decided to take this class to fulfill my Math minor. It is reputed to be one of the harder undergraduate courses for Computer Science majors. Though there were parts of the course that still elude me, I am glad that I took this course, for the simple reason that I managed to survive it and did rather well for it in the end. Also, though most of the theories taught will never be used by me directly, those theories are enlightening in a sense. When someone talks about computational complexity at least I am able to comprehend what is involved.
- CS431: Embedded Systems
An interesting course and one that is really useful. The focus of the course was on programming on the ATMega16 chip connected to a board that provides serial communication, joy stick support, LCD module and connection to a digital to analog converter. The lab work was done in the C programming language and some of the assignments involved writing code for Linux. The 10 labs were interesting, with the last few labs requiring a program that can automatically balance a swing by draining and filling water on either sides of it. The class covered basic Fourier Transform, PID controllers, Rate-Monotonic scheduling and POSIX programming. I feel that I left the class knowing a lot more on how to actually program for an embedded device with its limited processor and memory. Somehow, dealing with low level stuff still strikes me as being more interesting than programming for Eclipse.
- CS 397: Motes project
An ongoing project that involves more embedded systems programming. It involves interfacing what I did in the embedded systems class with Mica2 motes to exploit their wireless capabilities. See my previous entries for more information.
- CS397: Photran project
Involves dwelling into the heart of the Eclipse IDE and writing a plugin for it. Unsurprisingly, the plug-in is called Photran and serves to make Fortran programmer's slightly happier. The first thing I have to admit, I do not really get the Eclipse framework. It seems that it has been overly abstracted that only a few people understand what is going on. And even with those abstractions, the core of it is still constantly evolving so much so that the difference between version 3.0 and 3.1 can actually break your code. And did I say that it is painfully slow to work with? In fact I cannot even develop this project on my powerbook because of the power hungry nature of Eclipse. What I do like is the fact that I managed to tackle this behemoth project rather well and was able to produce a decent text editor that people are actually using for Fortran development. In addition, I even subscribe to the mailing list and fix bugs. This is about as close as I have gotten to a real open source project where people from around the world give their support. So sometimes when I hear people giving feedback on the mailing list, it does raise my spirits a bit.
Nevertheless, as aforementioned, this semester has been a fun semester for me. There was nothing that I particularly loather, even though the Photran project did get on my nerves once in a while. Next semester would also be fun. I will be taking a graduate level course on object-oriented design taught by Prof. Ralph Johnson, co-author of the famous Design Patterns book. I have browsed through some of the syllabus from past semesters and am beginning to learn Smalltalk using VisualWorks. I tried using Squeak but all the multimedia stuff was too distracting.
While the IDE for Smalltalk definitely need some polishing, there is nothing wrong with the language itself. In fact its syntax is so simple, that it can easily fit within a postcard!
Also, I will be taking ECE411, something that I am not terribly interested in because I really do not like VHDL.
Anyway, next semester will be my last as an undergraduate so I will try to accomplish as much as possible and hopefully have some fun as well.Tweet
comments powered by Disqus