Showing posts with label compilers. Show all posts
Showing posts with label compilers. Show all posts

Wednesday, May 14, 2014

Countdown

There are four days left until graduation. It’s been quite the semester for Max and me.

To start everything off, Max was told that all of his band credits did not actually contribute to his hour count for his degree. Every music ensemble is listed as a one hour credit course. This includes fall marching band, spring concert band as well as orchestra and jazz band both semesters. The rule for the ENS College is that only three of these one-hour music classes may count toward your degree. Admittedly, this is stated in very fine print in the course listing book printed every two years, and has been since before we enrolled for the first time. Yet no one had brought this rule to Max’s attention until he filed for a grad check. This meant he was 8 credit hours short of a diploma. He scrambled and got two three-hour independent studies together with the music department during the spring semester. But there are still two hours he has to finish from off-campus this summer with the head of the CS department.

Then there was our Compiler Construction project. I’ve already spent way too much time covering that, and you can read more about it here.

We still had finals and papers and group projects. Computer Science kids do not work well on group work together. There is a key distinction between everyone collaborating on solutions to individual assignments and everyone trying to work simultaneously on one single project. The difference is no one touches your code on individual assignments. They can straighten out an issue in their code and then show you how they did it, then you can modify yours based off of that. On group projects, you are dealing with different coding styles, personalities, and work ethics. I had a team whose prime coding hours were 2 to 6 am. Those are my prime sleeping hours. So I’d wake up every morning to see that they’d redone some of my work or completely changed a methodology. Not the easiest thing to do.

Now we’re packing like mad. We have graduation on Saturday, May 10th, at 9 am. We have to be checked out of our apartment by 3 pm on Sunday the 11th, so that doesn’t allow much packing/relaxation time this weekend. Plus we have oodles of family coming into town. Most of my mom’s family, all of my dad’s, and all of Max’s. It’s going to be chaotic.

I’m really excited right now. We have our apartment ready to go, our passports in order, our U-Haul truck booked, and all our hotel reservations for the four day trip up there. Here’s the plan on that front:

Sunday, May 11th: Pack up the U-Haul and head north to St. Joseph, MO. It’ll only be about a 5 hour drive for the first day. Easy roads and good weather.

Monday, May 12th: Drive northwest from St. Joseph to get to Rapid City, SD. This might be a tougher day. It’ll be about 9 hours behind the wheel, but the plains can get pretty windy. At least there’s no mountains yet.

Tuesday, May 13th: Continue northwest all the way up to Missoula, MT. It’ll be the longest, toughest day. 10 ½ hours of drive time, plus stops for food and gas. We’ll also be knee deep in the Rocky Mountains. No easy feat for a U-Haul.

Wednesday, May 14th: Last real day of driving! Go due west and then north from Missoula to Bellingham, WA. It’s the closest city to the border that’s still really a city. Plus it’s only an 8 ½ hour drive. Still some mountains, both the Rockies and the Cascades, but not nearly as bad as Tuesday.

Thursday, May 15th: Crossing the border! We’ll hit the border first thing in the morning. I’m not anticipating any troubles at the border, but we want a decent time buffer just in case. We won’t have to unpack the U-Haul, which will make things easier. Then on into the city and the apartment!!!! We have movers coming at 1 pm to take everything up to the 30th floor!!


God does laugh at the best laid plans, so we’ll see how everything goes. Since all of that is as well prepared as it can possibly be, the goal now is to finish the packing! I wanted to start three weeks ago, but thankfully Maxwell talked me out of it!

Compiler Construction

The Compiler Construction course is only offered in the fall semester so that students might have the following spring to complete the massive assigned project. This is the class everyone is terrified of. Stories are told as if we were all around a campfire, the professor lurking in the dark trees waiting to leap out and stamp an ‘F’ on any one of us at a moment’s notice. No one looks forward to this class. You dread it for three years with every fiber of your being, hoping that perhaps the university will make it an optional course for the degree and you’ll be the lucky few who get to slide through without it.

Then your fall semester senior year rolls around and the professor tells you that the class already scheduled to meet at 8 am on Tuesdays and Thursdays will actually meet at 7:45 am on Tuesdays, Thursdays, and Fridays for the entire semester. You crap your heart out of your ass and promise on all the deities you believe in that this will finally be the class you study for, the class you always attend, the class where you’ll actually keep up with the projects. Then it’s the second week and 7:45 am sounds like the zombie apocalypse itself and you sleep through the first lecture.

Then it becomes midterm season and you haven’t been to class in a week and you scramble to find someone who know what material will be tested and you stay up for 3 days straight trying, pretending, and finally studying for what you know will be your certain death. You realized during your maddened study sessions that the material wasn’t as death-defying as everyone has made it out to be and you question your entire mental psyche and ability to be swayed by the fears of those around you. Then in the final moments before the test you launch into a downward spiral, asking yourself if you even want this degree in the first place and analyzing how low a score you can get to still pass the class and being certain that there were four more chapters you forgot to study.

The test starts at 7 in the God-forsaken morning and it takes everything in you just to be there on time. The first page nearly makes you cry, but then you flip over and start at the back of the test, working your way forward just to try to mix things up and slow your rapid heartbeat. You can answer that question, so you pound out the things you fervently memorized the night before and proceed to the next question, only to realize that you were actually prepared for this test because the material really wasn’t murderous and you studied the right chapters. The test continues and you eventually answer all but a few questions, for which you make wild guesses with all of the keywords you can remember, hoping and praying that the professor gives partial credit. As you walk up to hand in your test, you once again call on all the powers of your ancestors and holy beings to give you the strength and the fortitude to start attending class and working on that project you knew you’d have finished by now.

That weekend you actually read the project description and open up a blank project in your editing space. You give it an appropriate title and add in a few variables. Next thing you know your friends are having a party or you found a marathon on TV to watch and three weeks fly by.

This theme will only repeat itself near finals. Only this time, you don’t even make noise about the project. You have too many other things to worry about, and now crazy relatives are asking what your post-grad plans are when you don’t even know what you’re going to have for dinner tonight. This project will wait.

The “it’ll wait” mentality lasts way too long. Through most of spring semester. Classmates mention here or there that they worked on it last weekend, and it’ll occur to you to add it at the bottom of your to-do list. You remember that it’s important, but, hell, this is your last semester of college and there are so many better things to be doing! Parties, relaxing, spending time with friends. Even planning your future sounds better than dredging up that old project. You’ve forgotten where you put the assignment sheets and you might have even deleted that project file you started, or maybe you’re just not sure where you saved it… You really need a better method for this.

Your parents ask if you’re going to work on it over spring break, which is the best joke you've heard all semester. But then the week comes and goes and you’re mailing graduation announcements, picking up your cap and gown, and freaking out about finals. All of this does not bode well for the incomplete you still carry from last semester. You’ll get it done though, you still have time.

Which brings us to dead days and finals weeks. The idea that this will happen is starting to be overwhelming. You manage to find the project you started, but of course none of it makes sense. Were you drunk when you started this? What is happening? Two hours later you just start a blank project. You’re pretty sure you remember what you’re supposed to do, and you found a couple of pages of notes from last semester, so it’ll be fine. You message a friend for the actual assignment and then break into a full-blown panic attack when you read over the project description. This is horrifying. How will two weeks ever be enough? You are doomed to fail. This is the end. At least you tried at a college degree. 

Two days later you’ve had some more chocolate and you feel up to trying the project again. Once you actually make your way into the code and development, the whole thing is starting to make sense again. You remember everything about parse trees and the lexical analyzer is making some sense now. Four days later you realized you don’t know what your shower or sunlight look like. You haven’t had any real food and you think the smell might be you and not your cats. But that project is finished. It feels good.

YOU KNOW WHAT WOULD HAVE FELT BETTER?

Working on it for a couple of hours every weekend in the fall so you could have continued to shower on a regular basis. Completing the project when the professor was still answering questions about it. Not having it floating over your head all semester, frequently brought up by your parents.



Well, at least you get to graduate.