FP | Assignment | Repo | Due on | Other happenings |
---|---|---|---|---|
1 | Exploration 1 | oplS17projects/FP1 | Sun Mar 12 2017 | PS6b |
2 | Team Declaration | oplS17projects/FP2 | Sun Mar 19 2017 | spring break |
3 | Exploration 2 | oplS17projects/FP3 | Sun Mar 26 2017 | PS7a |
4 | Project Proposal | oplS17projects/FP4 | Sun Apr 2 2017 | PS7b; Exam 2 |
L1 | Proposal Presentations | live in class | M/W/F Apr 3/5/7 2017 | |
5 | First Milestone | partner 1 does it | Sun Apr 9 | PS8 |
6 | Second Milestone | partner 2 does it | Mon Apr 17 | |
7 | Demo Report | oplS17projects/FP7 | M/W/F Apr 24/26/28 | last week |
L2 | Demonstrations | live in 3rd floor Olsen lobby | M/W/F Apr 24/26/28 schedule | of classes |
8 | Final Report | oplS17projects/FP8 | Sun Apr 30 |
Things that will make for a good final project:
- A topic in which you are personally interested.
- A project that makes connections to the world outside, using libraries. (You will get experience doing this in FP1 and FP3).
- Explicit use of course material your implementation; for example:
- procedural abstraction (constructors and selectors)
- recursion (iterative or recursive processes)
- higher-order functional approaches
- map / filter / fold
- dynamic construction of procedural objects (use of
lambda
as code is running); creating, returning, storing, and using procedures
- object-oriented abstraction (encapsulating data into closures, with message-passing to perform operations on data enclosed in those objects)
- minimal or non-existent use of imperative approaches (e.g.,
set!
should only be used in the context of OO closures, or in keeping track of a quite minimal number of global objects)
- Solid teamwork -- both partners contributing meaningfully to the project, and in a way that is documented.
- Good use of Github to show steady progress from outset to conclusion.
- A live demonstration of your work.
- A writeup that documents your accomplishments.
- For a project assignment to receive a grade, all previous assignments must be submitted and received a grade.
- All assignments must be done in order.
- Each Assignment has a point value, shown below.
- Proposal Presentations and Demonstrations are live presentations
- There is no opportunity to re-submit or make up live presentations
- Live presentations (L1 and L2) are not required to advance to subsequent assignments. In other words, you should continue with project work if you miss these, even though you will have then lost the points for them.
FP | Assignment | Points |
---|---|---|
1 | Exploration 1 | 2 |
2 | Team Declaration | 2 |
3 | Exploration 2 | 2 |
4 | Project Proposal | 3 |
L1 | Proposal Presentations | 3 |
5 | First Milestone | 2 |
6 | Second Milestone | 2 |
7 | Demo Report | 3 |
L2 | Demonstrations | 3 |
8 | Final Code Turn-In and Discussion | 8 |
Total | 30 |
30 points total, so each point is worth 1/30th of the Project grade, which is 30% of the final grade
- Working individually will only be considered with an accommodation request from Disability Services
- Teams of more than two people require written (emailed) permission from the instructor