Saturday, January 22, 2011

New Year

This year seems to have started well, it was a bit bumpy at first, but overall it looks promising. I am supposed to graduate in the Spring and that makes me happy.

My New Schedule

This Master's degree has been a challenge for me, I get home from work so tired, and with so many things on my mind, that all I want to do is relax for a while, but no, the kids are hyper, the wife is also tired, and I would get stressed out trying to deal with the house and with the school work, it was easier three years ago when Gaby was just a baby and Anthony was still a Toddler, back then Anthony would fall sleep early and Martha dealt with Gaby, so the evenings were free for me to do school work. Last fall semester I found a way to take my evenings back. I still get home tired, but I do not worry about school, I concentrate all my efforts on just being home, the trick? I wake up two hours earlier, at 4:00 AM the house is nice and quiet, I get out of bed fully rested, and I can devote more quality time to the family, and to the books. It takes some getting used to at first, but I don't mind. This reminds me of a quote I read somewhere.

I feel sorry for morning people because their day just keeps getting worse

COP 5555

OK, I've been meaning to talk about this experience for a long time, I think I did a while back, but this is a course that I am never going to forget, just like I'll never forget those 12 weeks of Marine Corp Boot Camp at Parris Island, I'll never forget COP5555, it's one of those classes where can be summarized as "drinking water from the fire hose" I want to get a few things off my chest about it.

So, it's relevant to point out that at the University of Florida, a Computer Engineer has a choice to make when it comes to Graduate School, I was admitted to both the Computer Science Department (CISE)and the Electrical Engineering Department (ECE) they both have Computer Engineering degrees, but both have different emphasis. Initially I went for CISE because deep down I think I lack programming skills, so I want to get better at it. I also didn't think an Electrical Degree would help me so much at work, since my title is Software Engineering. However, I noticed that they had a Communications track, which had courses related to Radio Communications, since I am in the business of making Radios, I thought that would be good. I was undecided but I went for CISE my first semester. My first course in UF was "Distributed Operating Systems" and it was clear from the beginning that this was no easy A. There were crazy assignments every two weeks, tons of material, and difficult tests, I was used to getting A's in my undergrad, when I received my final grade of B+, I said, f*ck that and went to ECE.

ECE turned out to be tougher than CISE, that's the funny part, at ECE I took all this courses that required me to know Linear Algebra, Calculus and Probability in order to just grasp what they were talking about. After two years I became comfortable enough with the field to say that I had Mastered it, but it wasn't easy. Last summer all I had was elective courses to choose from. I was reading Steve Yegger's blog a lot, thanks to him I was interested in the subject of computer languages, specifically functional languages like Lisp and Clojure. I remembered back that a co-worker once asking me if I was going to take COP5555, I told her I was in ECE, and she said, "good, because this class was impossible", so, influenced by the internet, I found myself a challenge.

At first glance, COP5555 with Dr. Bermudez didn't seem that much different from other classes in grad school, there was a midterm, a final, a class project, and weekly homework. All the slides are available from the start.

The first lecture Dr. Bermudez was philosophical, he kept emphasizing that the goal of the class was for us to do a paradigm shift in the way we think about programming languages. I was glad I enrolled, I love it when teachers talk about the big, big picture. So I congratulated myself for having enrolled in this fruitful course.

The class was about Languages, computer programming languages, how computers understand it, how to design one, how to describe a new language in a non-ambiguous way. He starts the class with Parsing, Abstract Syntax Trees, Context Free Grammars, BNF notation, and a nifty little language called RPAL, so far, well, I thought I was good, but there were things that I wasn't completely clear. The slides were full of information, but upon going back to them after class, it was clear that the meat of the class was in what was said during the lecture. So in order to know what's going on, I had to pay close attention during the class.

Then came the project, holy cow, a parser! I had to write a parser, a program that read a file, one word a time, and was to decide whether it fit the syntax of the language. The output was an AST, (abstract Syntax Tree) which went to an interpreter that converts the AST to standardized the tree and computed the instructions. This is where the class lost me. I spent hours and hours trying to get this to work. I spent the whole 4th of July weekend in front of a computer getting this program to work. In the meantime, the midterm was coming up. I failed the midterm, but got a 95 on the project. I thought that if I did well on the final I still had a chance to pass.

The material that came after the midterm made parsing look like learning the ABCs. We were introduced to lambda calculus, we learned about how machines evaluate expressions, and then we studied Attribute Grammars and Denotational Grammars. Needless to say, I didn't make it.

Last summer for the first time in my life, I gave all my heart to something, and failed.

Failing for not trying is one thing, failing after giving it your best effort, while it sounds honorable, it feels crappy.

The day of the final my proctor didn't come to work, it was a Friday so I had an extra weekend to prepare, but because I turned in my test after the deadline, I was told my grade was going to be an "I" until after the break, which I was ok with it. I went to Key West for a little vacation with the family, then I found out about my C-.

A C- means that the class doesn't count towards graduation, that I had to either take it again, or take another class. I called Dr. Bermudez, we talked for a long time. We went over a bunch of options, and at the end, I re-took the class, well, since my grade was an I, he told me he can always change it. So I watched the lectures again, took the midterm and the final again. I passed, but I got a 75 and a 70 in the tests, and this is after a lot of studying and asking questions. In other words, I got my ass kicked. Plain and simple. My grade got changed to a B, I will graduate this semester, but damn, that was hard.

The takeaway?

-Personally, I am not as smart as I thought I was, and I didn't think I was that smart to start with.

-In General, don't give up. Perseverance wins. If you really want to achieve a goal, it pays to keep going. I can think of a lot cases where this doesn't apply, but for life, it's better to stick to your goals.

Wow, I wanted to write about my current class, but this post is getting way too long.
If I start proof reading I am probably going to delete most of it, so I am just going to hit the "Publish Post" button and submit this sucker.

That's all I have for now folks. Be good to each other please.


1 comment:

Soniya said...

Man..that is hard! Well, if I ever have to go back to school and have a family at the same time, I will have to follow your advice and wake up at @#@# 4AM!!