Archive for May, 2019

Final grades posted!

Wednesday, May 8th, 2019

The Zork++ dungeons have been graded (fantastic, by the way) and the class scoreboard is now final!

Congratulations to everyone for a terrific job this semester! I truly believe you learned tons. And a special shoutout out to our five Dungeon Masters who blew the top off the scoreboard and then some!




Nightmare on 32nd Street
AAA
Kanghuaroo
ReyKenobi
Han Solo

Have a great summer, and whatever you do, don’t stop coding! If you’re not doing something programming-related this summer anyway, I strongly suggest the website exercism.io as a set of challenges to keep your programming neurons sharp.

Remember: even though you can now bench-press 100 pounds, you’ll be back to 70 or even 60 in no time if you don’t keep up your work in the gym! :-O

Take care, and see you on the other side…

Stephen

Final exam notes

Friday, May 3rd, 2019

Oof, the final was clearly too long — about half the students left at least one problem completely blank. (And that includes students who actually needed the points, not just Sorcerers.) To compensate for this, I just gave everybody who took it a bonus +25XP.

In case you’re interested, here’s my solution to the Dog problem. The most common errors on this problem were:

  1. Not throwing an Exception from .move(). I tried to telegraph this by saying:

    The move method should not return any return value; however, in the case of the dog hitting the electric fence, clients who call it should be made aware that the move was not completely successful.

    If those words are to be followed, literally the only way to accomplish this in Java is to have .move() throw an Exception in the case where it cannot actually move the Dog the specified amount. (This is very much like the .drive() method in the Car example; see Blueprints pp.71-72.)

  2. Not getting the constructor calls right. Remember, a subclass calls super(...) to invoke its superclass’s constructor. (See Blueprints pp.179-180.) In this case, the right implementations for the constructors would be something like:
        Dog(Breed b, Yard y) {
            this.breed = b;
            this.myYard = y;
            y.addDog(this);
        }
            
        ...
        
        Greyhound(Yard y) {
            super("greyhound",y);
        }
    

(Btw, +1 humor XP to the student who named the class “Dawg“.)

Props to Kanghuaroo, who got the top score of +199XP (before the curve)!

Self/peer evaluation scores posted

Thursday, May 2nd, 2019

I’ve posted scores for the self/peer evaluations on the scoreboard. If you turned in a piece of paper, you got at least 3XP; if it was appropriately reflective and thoughtful (to the degree I was expecting) you got 5XP, and in a couple of instances, I awarded 6XP for exceptional ones.