Archive for the 'Project Bootstrap' Category
Still Kickin’
I don’t really have anything to blog about right now, but I did want to just say that I am still around and as busy as ever. School has started once again; I have class on Tuesdays and Thursdays from 7-8:15pm and Sunshine has class on Mondays from 7-10pm. I’m also officially on “mandatory overtime,” which to you lucky stiffs in the non-government sector means nothing. To me, it means “we want the whole department to work overtime to pull in contract sales faster, so we want you to do 10% extra a month.”
On top of all of that, we are in the process of buying a house. I’ll do another write-up this weekend about my experiences doing so, since there may be some other first-timers out there who’d like a scientists’ point of view.
Anyways, I’ve got a few posts scheduled for the weekend. I also have regular maintenance on erebus scheduled (cleaning, updates, security, etc). Lastly, I am going to update zero-blog and finish setting up the photography section already. I’ve been screwing around with that for a year and it’s time I just hurried up with it (I spent the few hours organizing and labeling my photots, so I don’t have any good excuses not to finish).
Don’t touch that dial; it’s a three day weekend coming up!
CS6360 08S - Pass

Image courtesy of duchesssa
So late last week, I logged into WebCT to do my semi-weekly check to see if my qualification exam grade had been posted. It had been 6 weeks at this point, and I was starting to get tired of checking so often. I had basically spent the first month of the semester working overtime, then gradually picked up my studying time until I was basically putting in several hours a night. I sacrificed time with family and loved ones. I skipped running to stay in and study (or found I was too tired from working 10 hours, then going to class for 2 hours, and finally studying for 2 more hours). I neglected everything. I had one goal in mind, and that was to put every ounce of effort I could into getting an A in the class and passing the qualification exam. If I was going to continue flirting with the idea of pursuing a PhD, then I had to do this.
The end result was a Pass!
That’s right. Four months later, countless sleepless nights, and I finally had aquired myself 1/3rd of the requirement to advance candidacy. It may not sound like much to many of the graduate students out there, but let me explain. I am notoriously bad at taking exams; I get nervous, make silly mistakes, rush myself, spend too long on too few points, and ultimately panic when time starts running out. I am much better at putting forth the effort it takes to go from being an ABD than it I am at passing a few tests.
After being disappointed by landing 2 marginals and then being utterly crushed when the department changed policies and forced me to start all over, this was a godsend. In fact, Sunshine and I went out for a celebration and I felt no remorse eating a burger and beer at BJ’s Restuarant.
So this begs the question: what’s next? This summer, I was forced to take off due to a less than convenient schedule. I have only 1 more required course left, Analysis of Algorithms. I covered this material before as an undergraduate, but not as fast or with as high of expectations (>40 on the final probably will not qualify as an A). I’m looking at taking some electives while they are offered since they tend to be very sporadically scheduled. I’m looking at taking this course:
CS 6365 - 501 DATA/TEXT MINING COMPUT BIOLOGY
Hatzivassiloglo
Call Number: 13095TR 7:00 p.m. - 8:15 p.m., ECSS2.412
CS 6365 Data and Text Mining for Computational Biology (3 semester hours) The course introduces data and text mining as practiced currently in the bioinformatics field. Major topics include: sequence alignment for determining similarity between proteins and genes; properties of similarities and distances; genomic, proteomic, and text databases in the real world; finding patterns (motifs) in genes and proteins; differentiating between valid patterns and noise; classification; clustering and its application to phylogenetic trees; and selected topics from text mining. Prerequisite: CS 6325. (3-0)
I lack the prereq, but that hasn’t stopped me before. I’m also looking at finding a thesis advisor, so I may start that up in the fall as well. As for the QE that I intend to take next, I think I will try the Artificial Intelligence course again in the Spring (2009), depending on what they will change with the program by that time (I’ve heard some rumors of more changes).
The main thing to remember, this test is good for 4 semesters for me, since I am a part-time Masters student (the clock stops when I’m not taking an exam). I will contact the department head soon and start planning my next step. Until then, I can rest easy knowing that a PhD at UT Dallas is still a possibility.
Storm Weathered
So activity lately has tapered off. I spent about 70 hours of my PTO (paid time off) at work on campus studying for exams. The class I just finished was Machine Learning by Dr. Vincent Ng. We had a second midterm, the final, and the qualification exam all a week apart in the last 3 weeks.
So I did alright on the midterm and the final. Unfortunately, I didn’t do as well as I think I could have though. There were several questions that were easy and I either made a simple mistake or misunderstood what was being asked. In the end I finished right in the middle of the class, giving me a B. I think I could have had an A if I had performed slightly better on the final though. The class was difficult to say the least. I spent an average of 10 or so hours a week for this single class. We had biweekly homework assignments, all of which had a programming segment (usually entailed implementing the covered algorithms). The professor I took the course with was not
Because I ended up in the middle, most of the people that beat me were the PhD students. Those same students were more likely to be signed up for the qualification exam. After studying for 3 days, I spoke with the professor and he told me I was ranked near the bottom compared with the other students, which meant I was more likely to get a FAIL on the qualifier.
That’s the other thing; in between the second midterm and the final exam, the department head sent out an email informing everyone that they were officially changing the QE policy. Now, a student only needs 3 PASS grades on the QE instead of 5 and the student may take any exam from any track/focus. Before, I had to take all 5 from the Intelligent Systems track. Also, the tests changed to a PASS/FAIL grading scheme, which meant my two previous MARGINALs were wiped from my record, as if I had never taken them.
After speaking with my professor, I decided that taking the second most difficult exam offered by the Computer Science department was not the best strategy. If I failed it, then I would have 1 more shot to get a pass and I couldn’t switch to a different exam. I really would rather take an exam that is somewhat easier. I’m not a fan of the whole end-of-course exam policy to determine who can do research anyways, so it’s really best to just go with the strategy that will most likely result in an overall PASS.
Christmas vacation is coming up, but I am on call for work so I’ll likely have to work several of those days. I will however spend some time trying to update my blog. The author of the NextGen gallery will be releasing a new version with EXIF/IPTC support with automatic tagging, which I will definately install immediately. I also need to update WordPress and switch to the new tag-based system. I’ll post my year-end goals later this weekend.
Time’s Wasting
It seems like all I ever do anymore is work. I leave work and go to school which is like an extension of work. The more I work, the more I complain that I need some time off.
I have been procrastinating several posts lately. As of this week, I have started a long long study session. I have 3 exams in 3 weeks; each of which increases in difficulty and importance. Next Monday is the second midterm, followed by the final exam, and lastly the qualification exam.
Since this is basically my last hope at passing the qualification exams, I am really trying to do everything I can do to earn a pass. I have been beaten up by two marginals, so I really could use this. At the same time, it’s to the point where if I didn’t pass, I don’t think it would be as big of a deal as I imagine it.
Christmas vacation is rapidly approaching. I am hoping to avoid any on-call work over the break so that I can take car of things around the house that sorely need attention. I have a giant TODO list that keeps growing. Hopefully, I’ll get around to posting that list before the break starts so I can see how much of it I accomplished.
Bleh, I was going to say more, but I lost my train of thought.
Third Worst
I apologize for the lack of updates; I have been off for about 2 weeks busting my damn hump preparing for the midterm and chugging away at the homework.
Wow, I just received my Machine Learning test back and I ranked near the absolute bottom of the grades. I did worse on that test than I’ve ever done on any test for any class, ever. I left large sections of it blank and don’t feel I deserved the credit I was even given. I was about at half the median score, which is just pathetic. Normally, I rank new the front of the bell curve but I was the very back end of it this time.
Hopefully this is the rock-bottom I finally needed to reach so I’d relax when it comes to taking tests. I have a bad habit of getting way too nervous and ultimately not performing nearly up to par. I have been struggling with the Qualification Exams and maybe this is the way out of my poor test taking slump.
I’ve never had trouble with school. Even as an undergraduate, school was still pretty easy. I’m only taking a single class and I have to work at it for several hours every night. I had even been struggling with the homework, but it seems I am out of that slump. I finished the third assignment (programming part) with more than a minute to spare; actually, i submitted it with several hours to spare.
Hopefully the midterm is only worth 15% and I can do much better on the midterm.
Rough Summer
So I am currently enrolled in Computer Vision this summer. It’s an 8 week course, which is about 2 hours and 45 minutes twice a week. Some people think this sort of schedule is great, but I personally have been run ragged. I have been struggling to stay afloat and finish the work on time. So in the last few weeks I’ve only had time to work, eat, study and sleep. I still have managed to work some time in to run and have only missed one run all summer (sick). I’ll be looking forward to finishing this semester in 2 weeks.
The downside is I landed another Marginal on my AI qualification exam. That’s the most I am permitted to have and I still have 3 exams remaining, so I don’t have any room for failure. I am having the exam re-evaluated in hopes that I really did get a Pass and the graders were just overly harsh, but I’m not hopeful.
I will be updating the website tonight, so there may be a few outages. I spent a few minutes last week updating my desktop and installing quite a bit of eye candy, so I’ll try to post a screenshot soon. I have a couple of posts I have been wanting to make lately and I finally have some time this weekend to catch up on a few things.
I have to end this post soon, I have an early run tomorrow (if it’s not raining too hard).
By The Grace Of Perl
I haven’t been posting anything in a while, and with good reason. I’ve been working furiously on my school work, trying to keep up as best as I can. After about a month of procrastination, my professor finally handed back our graded midterms. I was pleased to see that I had a 92, but found that he had claimed that my heuristic for one of the solutions was not admissible, even though it was exactly the same as his. We’ve been bombarded with homework as of late it seems, so I’m doing my best to complete them on time.
So the project I had to do was play a game of 9 Man’s Morris. I’ve mentioned it here before, so I’ll skip the introduction. It took me approximately 5 hours to write the initial version. That initial version was about 80% correct and very readable. It’s too bad that I have since learned that professors and TAs never read your source code, but I’ll talk about that near the end. It then took me a mere 20-ish hours to debug the program and iron out the problems that accumulated over the course of development. Since this was a largely recursive algorithm that analyzed tons of stack data, it was very difficult to distinguish good and bad behavior.
Over the course of development, I discovered (and rediscovered in some cases) why Perl is one of the most complete and challenging languages available. So I figured I’d share my refreshed love and respect for Perl.
First, the map function is the best example of simplicity. Here is an example of some code that just makes map the absolute best method for reducing simple loops down to single statements.
Crappy Original:
for(my $i = 0; i < $#array; $i++) {
$array[$i] =~ s/search/replace/g;
print "$array[$i]\n";
}
Better Original:
for(@array) {
s/search/replace/g;
print "$_\n";
}
Map Improvement:
map { s/search/replace/g; print; } @array;
It’s fairly obvious that using map is the best way to clean up that few-liner list loops (remember that @array is not restricted to a typical array, as many things can placed into list context).
Next on my list of things that I love is the prepackaged module Carp. If you love to use the die statement to help identify problematic situations, then you’ll love Carp. Carp is the bastard child of gdb backtraces and the die function. If you use the cluck function, you can cause a warning that will be accompanied with a stacktrace. When I discovered this, I was having trouble with my recursive function at only certain depths. So I tossed the following at the top of my function to check all of my parameters and optional parameters:
my ($self, $var1, $var2) = @_;
cluck "Var2 not specified" if !defined $var2;
That example was similar to how I found my problem. The example simply tosses a warning, complete with a stacktrace, when one of the variables on @_ is undefined. This is how I found out that I was never technically passing in an optional parameter to a function. Since use of optional arguments will basically leave them as undef, using them in the function with being set to undef is a valid use, just incorrect behavior. I would certainly hope there is a much better way to using optional arguments (I’m sure there is a clever module to do it).
I wanted to talk about references and tie, but I don’t think I can keep my eyes open long enough to express myself well enough. I’ll post some more this weekend as I get time.