Algorithms and OOD (CSC 207 2014F) : EBoards

# CSC207.01 2014F, Class 52: Debrief on Projects and Makeup Exam

Overview

• Preliminaries.
• Upcoming Work.
• Extra Credit.
• Questions not on the Exam.
• Questions on the Exam.
• Debriefing on the project.
• Planning for the final.
• Debriefing on the makeup exam.

## Preliminaries

• Yesterday's extra had lots of notes on the exam.
• Distributed: Sample makeup exam for exam 1.
• Friday PSA!

### Upcoming Work

• Problem to consider for Monday. The post office sells 1 cent, 3 cent, 5 cent, and 13 cent stamps. Given a value N, how do you figure out the fewest number of stamps required to make that value?

### Extra Credit

• Inside Grinnell Thursday the 11th at noon in JRC 101: Grinnell's Endowment: What Can and Can't it Do?
• CS Table today!

#### Peer Support

• Ajuna's Radio show Mondays at 8pm. Listen to African music.
• Charlie's Friday Night "War in Animated Film" ExCo. (yes)
• December 5: Dance show (Once Upon a Time, Splintered), with vocals by Noteworthy and awesome dancing lights by our own ZW. TONIGHT
• One Acts on December 6 and 7 with our own EE.

### Questions

Will you post the notes from yesterday?

Done.

Do we have to implement the keysIterator?

No.

How many words does the ideal answer have?

One.

Do you care whether the exponentiation method is iterative or recursive?

No. I find it easier to think about recursively.

Since we're repeatedly picking random values in problem 1, is it okay if we pick the same value twice (or more)?

Yes, it's okay.

How long should the test suite for problem 1 take?

A few seconds.

Do we only have to do the four kinds of traversal that are tested?

Only those four. (It would be nice if you did all of the ones that are given in TraversalOrder.java, but it's not rquired.)

## Debriefing on the project

Four-to-Five minutes talking to your partner(s):

• What went well?
• What went poorly?
• When I give a project the next time I teach a class, what should be similar/different? (Or should I not give a project?)

• Learned some new algorithms (e.g., round robin)
• Experience of thinking about a problem without a known/standard algorithm.
• Start from scratch on a large program design that lets us use objects.
In this class, I give you a lot of frameworks.
• Ill-defined problems are the norm outside of academia. It's nice to have that experience in a "safe" model (e.g., Sam won't be horribly cruel)
• Incorporates a lot of things: Algorithms, data design, input, output, files, sales to an audience, documentation, ...

• No intermediate feedback!
• Sam didn't do the project first, so he did not have a solution (or know about potential pitfalls)
• Needed earlier "discuss project" session
• More time would allow you to make mistakes; Alternately, provide a working version of the first half (including algorithm spec.). Alternately, provide a smaller project.
• Appropriate amount of time for once in the semester.
• Alternately: More time on the project with simultaneous small homework.
• Feels more real world.
• General: Smaller version first so that students observe potential pitfalls.

Presentations

• Thinking about audiences - How is it going to look?
• Would have been nice to do a demo rather than a slide deck.
• Profit/competition incentive was problematic - startup sales pitch.
• Students would not necessarily say that their algorithm would not work. (Maybe separate presentations would be good.)
• Also a benefit for a different side.
• Sam should post his background slides earlier.

Should I do something similar?

• Allow more freedom in the API people can use.
• Debate about the level of complexity; some people like that it's really complex, some think it should have been more reasonable. Huge frustration level, but it's okay as long as I clarify that it's okay that you don't succeed. Process not product! Frustration is good, too.
• Having a real-world problem is nice.
• Having a goal is nice.
• Individual projects? (Sam worries about ...)

## Planning for the final

• There is no benefit to making you do another take-home exam with coding.
• 45 minute interview/oral exam with Sam
• Here's some input, run this algorithm that you should know
• Maybe: Design a simple related algorithm
• Probably: Analyze the running time of this algorithm
• Probably: Design a loop invariant to help us solve this problem
• Probably: Explore a characteristic of an algorithm

## Good things

• Showed different strengths in conversations