That’s it! CS51’s end is on the horizon, and I am again one step closer to completing my Harvard Challenge.
Problem Set 7 served to culminate most of the concepts introduced in the class, while also serving to expand events and objects. The last problem set involves programming a pseudo-simulation of cows in their natural habitat, or so I’ve described. A video of it in action, plus the specification, is available in the official page here.
The problem set is divided into 6 parts (along with a table of contents even!) so you know its going to be loads of work. There wasn’t really any pset that used objects before this one, so most of the concepts like Inheritance were introduced here. Coding a movable class to which bees and other moving objects inherited from meant a lot of code re use.
Perhaps the only thing I was uncomfortable with in the whole program was the fact that World Steps were events, and object adds an event listener for it, instead of having a world object that calls the ‘update’ method of it’s children. Of course, it may be just because of the fact that the pset aims to introduce the students to events, so it’s fair enough.
I took my finals today, and it went smoother than I expected. I was able to ‘steal’ a flash card reviewer for the final exams’ course, which I can only assume was the work of a previous harvard student or a TF. All in all it took me about an hour to complete the exam, including formatting the questions to make it look at least look easy enough for the eyes.
I nabbed a 95/100 for the exam, which you can view here. Of course, it was self assessed,, but most of the questions had concrete objective answers (definitions, true or false, code). There were a handful subjective answers, but I decided to grade them brutally (perhaps too brutally even!) I am even surprised myself that I was able to get such a high mark, though I can only imagine that the problem sets, which were the real meat of the course and involved lots of thinking and code, were the real barometer for the grade (or maybe Harvard is just that effective in teaching!)
The last question on the finals “What is the super secret bonus answer?” which was worth 1 point. I guessed “Cows” but I was unfortunately wrong. (The answer was 43)
Alright! I’ve finished CS51, completing the systems requirement of Harvard’s Computer Science Curriculum. I learned a lot in this course, being it functional programming and the beauty of abstractions (and laziness!) The syllabus states that the goal of the course is:
CS51 is a course that will teach you more rigorous methods of developing and
analyzing software. You will learn to write code that is reliable, efficient, readable,
testable, provable, maintainable… beautiful!
Which I think I was able to accomplish.