CMSC 131: Object Oriented Programming I

Summer 2013

Home

Contact

Syllabus

Schedule

Projects

Resources

Announcements

8/3/2013

Final grades have been posted. The "Total" column on the grades server represents a percentage of 104.5 points, which includes the bonus points for P7. To calculate your final numeric score out of 100, multiply this number by 1.045. For example, if your "Total" score is 75, your final numeric score is 75*1.045 = 78.375. The final numeric scores had an average of 82%, with a standard deviation of 16%.

If you would like your final exam back, send me an email this Fall semester.

Thank you everyone for a great summer and I wish you all the best.

7/31/2013

An important addition has been made to the spec for Model.evolve() in Year Googol: Particle.collision(...) should only be called once per pair of particles. In other words, instead of

rock1.apply(Particle.collision(rock2,rock1));
rock2.apply(Particle.collision(rock1,rock2));


You should use

Vec2D collisionForce = Particle.collision(rock2,rock1);
rock1.apply(collisionForce);
rock2.apply(collisionForce.times(-1));


This is a problem with round-off error. Particle.collision(rock1,rock2) produces a vector that is slightly different from collisionForce.times(-1), by a few small decimal places. After several rounds, this error accumulates, and the final positions in each version differ by more than YearGoogol.PRECISION.

It seems like this problem only applies to collisions, since the forces involved are much larger. However to be safe you may want to make the same changes for gravitational forces. This is also more efficient so it will make gameplay run more smoothly.

7/31/2013

The final exam is this Friday August 2 at 11am, 80 minutes, in CSIC 1122 (our usual classroom). More study questions and answers are posted on the resources page.

7/29/2013

Project updates:

  • You may submit implementations for both project 7 options, for up to 4.5 additional percentage points. We will only grade style on your highest scoring submission (or the most recent, if there is a tie).
  • There are some updates to the Year Googol spec: the descriptions for subMatrix(...) and times(Matrix other) have been clarified. The Javadoc and formula doc on the project webpage have been updated with the changes.

7/25/2013

For project #7, you have two options:

  • Option 1: FishPond. Summer13Proj7 in CVS.
  • Option 2: YearGoogol. Summer13YearGoogol in CVS.
Pick one and implement it for your final project. FishPond has been posted on the projects page; YearGoogol will be posted later today. Whichever option you choose, it is due Friday August 2 at 11:00pm. Note that there is no late period for this project - we will not accept any submissions past the deadline.
UPDATE: YearGoogol is now posted.

7/22/2013

Quiz #5 on Thursday 7/25. Study questions have been posted on the resources page.

7/16/2013

Project #6 has been posted on the projects page. Due Wednesday July 24.

7/15/2013

Quiz #4 on Thursday 7/18. Study questions have been posted on the resources page.

7/10/2013

Garrett will hold additional office hours Friday July 12 from 9am-10:45am.

7/9/2013

Midterm #2 this Friday July 12. More study questions have been posted on the resources page.

7/8/2013

Project #5 has been posted on the projects page. Due Tuesday July 16.

7/2/2013

No Discussion or quiz on Thursday July 4; review session on Friday July 5. Study questions have been posted on the resources page.

6/29/2013

Project #4 has been posted on the projects page. Due Monday July 8.

6/27/2013

Rahmatri's make-up office hours will be tomorrow morning 9am-11am.

6/25/2013

Quiz #3 on Thursday 6/27. Study questions have been posted on the resources page.

6/24/2013

Reminder: Garrett's Wednesday office hours are now 9am-11am.

6/19/2013

Project #3 has been posted on the projects page. Due next Friday June 28.

6/18/2013

Several corrections have been made to Lab04. The current test-setup on the submit server should reflect these changes. Let me know if you still see any discrepancies. Please make the following corrections in your own copy of the lab:
In IntList.java:

  • The rollDie methods should be replaced with the following:
    public static int rollFairDie(int numSides) {
            return (int) (numSides*Math.random());
    }

    public static int rollBiasedDie(int numSides) {
            int rand = (int) -(Math.log(1.0 - Math.random()) / Math.log(2));
            if(rand < numSides) return rand;
            else return numSides-1;
    }
    These will return "rolls" in the range [0, numSides-1].
In PublicTests.java:
  • Insert the command
            ls3 = new IntList();
    between lines 39 and 40.
  • Change line 69 (new numbering) to
            assertEquals(ls2.findIndex(4), 10);
  • Change line 84 (new numbering) to
            assertEquals("[4, 3, 10, 4, 5, 6, 4]", ls1.toString());
Thanks to Andrew and Mihai for finding errors.

6/17/2013

Quiz #2 on Thursday 6/20. Study questions have been posted on the resources page.

6/16/2013

Office hours tomorrow morning from 9am-11am are cancelled. Sorry for the inconvenience. Make-up OH will be posted.

6/11/2013

Project #2 has been posted on the projects page. Due next Wednesday June 19.

6/10/2013

Midterm #1 on Friday 6/14. More study questions have been posted on the resources page.

6/9/2013

Office hours tomorrow morning from 9am-11am are cancelled. Sorry for the inconvenience. Make-up OH will be posted.

6/7/2013

Project #1 has been posted on the projects page. Automated testing on the submit server should be up and running. Use the submit option through Eclipse, then log onto the submit server web page. You will have the option to view your pass/fail results on the automated tests. However, each viewing costs one "release token". You only have three and each takes 24 hours to regenerate, so best to start early. Good luck!

6/4/2013

Project #0 has been posted on the projects page.

6/3/2013

Quiz #1 on Thursday 6/6. Study questions have been posted on the resources page.

5/16/2013

Welcome to the course!

See you on the first day of class: Tuesday May 28 2013, 11:00AM in CSIC 1122.

Just this once, for our first class, Tuesday will be a lecture. Going forward (starting Wednesday the 29th), lecture will be Monday/Wednesday/Friday, and Tuesday/Thursday will be discussion/lab.