Wednesday, May 14, 2014

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.