A Brief Summary of Fall 2007 Term
Courses Taken
CSC301 - Greg Wilson, CSC369 - Karen Reid, CSC373 - Derek Corneil, CSC418 - Karan Singh, and an English Course for humanity distribution.
CSC301
The course wasn’t as scary as I thought, probably because the course was being taught for the first time and many things had to be justified. Some concrete things I’ve found useful from the course are the tools we’ve introduced to and asked to use: SVN, Ant, Java Thread system, and Java Profiling Tools. There weren’t too much writing in this course (probably in CSC302). I also find the design patterns to be quite interesting, in fact, I have identified quite a few design patterns in programs I wrote in my former job after I read through the design patterns.That somewhat shows I am kind of smart enough to come up with similar things as experienced software engineers, but what’s more significant is probably that my experience serves as a proof of the generality of the text, and the patterns are really things produced in productions.
Also, it’d be really great to work in a good team and you can often find in some morning before the due date, a big chunk of code is, magically, checked into the repo. and it’s working. The magic, apparently, is from teammates.
“… a big chunk of code is, magically, checked into the repo …”
CSC369
I wasn’t very confident about my C programming skills, but I couldn’t believe how my knowledge of C organized themselves in my head and I suddenly got pointers right and wade through the course with no feeling of insufficiencies in C. The course has been very interesting to me and I couldn’t help correlating the function of OS to computers with that of JavaScript frameworks to the web today. OSs need to be compatible with many types of machines, and JavaScript frameworks need to work with major browsers. General OSs usually provide built-in libraries, and JavaScript frameworks usually provide library as classes as well. General OSs also handles complex inputs like mouse movements, and JavaScript frameworks also often provide a better layer on interaction and also animation, on top of browser, to support better mouse and keyboard inputs. Last, with XHR object, we now may have synchronization problems in web programming too.
After the first two assignments, however, we’ve worked on things mostly irrelevant to web domain. We implemented Virtual Memory and File System. We had an extremely stupid and sad story to share when testing the Virtual Memory assignment. In OS/161, there are two files that the simulator uses to use as swap disks, usually one of them, called IMAGE1.img or something alike. To test the functions, we ran the simulator and executed a series of provided test programs. The virtual memory system will then move pages in and out the file and the memory of the virtual machine. The tests ran very slowly, due to both the CPU speed and virtual memory size, we set the virtual memory size to be small to generate more page faults. So to speed things up, we ran two instances of simulators (the executable files of which are in the same folder) together. We get wrong results, and sometimes crashes. We spent hours and hours to re-read the code and fixing likely “bugs”, when there were probably very few or none. Until the noon after another allnighter, had I realized, after 2 hours of sleep, that the two simulators are using the same image file and we are moving pages between two totally different world! So WATCH OUT! It’s the very first time I get to know what’s “demanding faster, never arrives”.
Here is also what I’ve got after scratching my head 1000 times. A DIAGRAM of the virtual memory system we are implementing. vm161.pdf. It contains some errors, I assure, but I’ll not bother to fix them, in case I gave too much information to web users.
“… couldn’t help correlating the function of OS with that of JavaScript frameworks today …”
CSC418
The course was so much easier than my original thought, a perception I’ve got after seeing people doing fancy, complex, and dazzling effects on computers in the lab. In fact, the course does have a lot of workload, yet I didn’t feel any tiredness, as it’s so fun to work on. Time slipped by as I refine my programs bit by bit, and it could continue. We do get fair bonuses if we were able to add neat refinements than specified in the handouts, resulting in high averages of assignments.
It was supposed to be math intense, but I could only remember some very basic vector concepts being used and the most complex ones were probably the change of base matrix which I had a hard time to understand and memorize vectors from which coordinate are mapped to vectors from which coordinate. The homogeneous transformation was a bit confusing for me too, but it doesn’t affect me too much for solving the problems.
For the course project, aka A3, a compelling scene is much more plausible than a well written piece of ray-tracer or animation alone. I was lucky to have a little bit sense of arts and have rights to use some of my photographs, which helped winning us an alien model. I have had one of the best partners I’ve ever got and we collaborated very smoothly, almost perfectly complementary which means both quality and efficiency.
CSC373
It was the misery of last term. I can’t say it was the one I spent most time on, since I was able to write up assignments between 15 - 20 hours, compared to programming courses that easily bite 30 hours off. I still lack of practice to be prepared for the tests, although I thought I had enough by doing three past tests. The hardest part was the proof of greedy algorithms. For dynamic programming and divide-and-conquer, the solutions in many cases are easy to reverse engineering when you are given clue that you will use a specific type of algorithms. To conquer the course, one has to be able to somehow acquire the instinct to solve problems in exams quick enough, which only comes with intense practices I assume. The course does cover a lot of topics and algorithms, I feel, and one should have a solid foundation of computer algorithms. I like the course but hated my marks. No more comments.
» Posted in category: academic //
This is the bottom of post A Brief Summary of Fall 2007 Term

