Archive for the ‘Uncategorized’ Category

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.

Stephen digs out from under a tombstone

Sunday, April 28th, 2019

Sorry, everybody, for being incommunicado for a while. I was taken violently ill Thursday evening and am just now emerging from the dead. My inbox has only 287 unread messages, so I have hope that I can mostly dig out today. If you’ve emailed me since Thursday, be patient, and apologies for the delay!

The final exam is…

Thursday, April 25th, 2019
  • Open-book.
  • Open-notes.
  • Closed-computer.
  • Closed-Internet (but you are free to print out any materials from any website and bring them to the exam).
  • Comprehensive (will cover everything from “hello world” up through and including concurrency).
  • Will require you to write some code in addition to analyzing code.
  • Challenging! An opportunity to show me what you’ve learned!

Last quiz posted!

Tuesday, April 23rd, 2019

Quiz #6 has been posted, and is due Saturday at midnight. It covers all the parallelism/concurrency stuff from the last two weeks of class. Good luck!

Final homework assignment posted!

Monday, April 22nd, 2019

The last opportunity to earn homework-related XP has been posted, and is due at midnight on May 1st. Looking forward to having some finals week fun playing these great dungeons! Wow me!

Office hours canceled today

Thursday, April 18th, 2019

Sorry, sudden family emergency arose today, and I won’t be at my afternoon office hours (Thurs, 4/18). Send email instead: I should be on for much of the rest of the day.

Also, I’ll be available tomorrow Friday 4/19 noon-2pm for office hours in case you want to drop by then.

Fifth (and last) team programming assignment (Zork++ phase 3b) posted!

Wednesday, April 17th, 2019

And finally, the crowning achievement of your team’s Zork programming experience has been posted: Zork++ phase 3b! This is due in one week, after which you’ll have the opportunity to each write a cool and clever dungeon that your game engine will run.

Cheerleader code posted

Wednesday, April 17th, 2019

The Cheerleader.java code from our first multithreaded example has been posted to the class github repo. As a reminder, if you’ve never cloned this, you can type:

$ git clone https://github.com/WheezePuppet/cpsc240s19.git the_class_repo

to create a fresh copy of the class repo in a directory on your GC instance called the_class_repo. From then on, every time I post code and you want to update your local copy of the repo with the latest stuff, you type:

$ git pull