The morning started off with a bit of review on ruby classes. We had a short assignment where we created a cars class and various subclasses. Next we started a fairly large project in which we had to create a library , book, and borrower class and create a functional library application complete with various methods you might expect. We had to write tests for each of them as well. What we didn’t finish was assigned for homework and we went to lunch.
When we returned we began an algorithms unit. We learned about the internal implementation of the ruby array class and why certain methods have longer run-times than others. This was used as an example to introduce us to Big O notation – a way to describe the speed of an algorithm. We did two sets of algorithmic problems and had to give the Big O notation of each solution.
I’ve always liked doing algorithms. Once I figure out a complex problem I definitely get a rush of euphoria. It’s like I’m winning a game! If back-end is where the algorithms come into play I’m pretty sure that’s where I’ll end up.
In the morning we went over solutions to all of day 3’s projects. It is interesting to see how a bunch of different people attack a problem. Some were similar or nearly identical to my own whereas others took a radically different approach. I guess this is where the art is in programming.
In the afternoon we did a exercise on test specification writing. We were given ten methods which were relatively simple to write and had to come up with the necessary tests. For testing we have been using rspec. Some of the methods had curve-balls which required a bit of research on rspec to figure out. By the end I had a decent grasp on rspec and had learned some of the finer points of its functionality.