Due Dates

  • Project Work Week: Week 11. And by 11:59pm, Sunday Nov. 21 push source and README_PWW to Project repo.

  • Midway Report due: by 11:59pm, Tuesday Nov. 23.

  • Midway Presentation due: in class Thursday Dec. 2. And add a link to your talk slides to the google doc (Midway Presentations) before 12:45pm.

This part counts towards 5% of your total grade.

I will not accept any late reports; a late submission results in a zero for this part of the project.


Project Work Week

Project Work Week (Week 11) is a full week devoted to working on your course project. Our regular class and lab meeting times are extra times to add to your regular weekly work on your project, as is the extra time due to there being no other assigned work this week.

The goal of Project Work Week is to make substantial progress on your project. In particular, this should be a week devoted to making large strides in the implementation and intial testing of your project. You also may find and record more work related to your project, related work that you will included in your final report.

Requirements

  • Each group will meet with me sometime during project work week to discuss your progress. The meeting sign-up sheet will be posted here: Meeting sign-up

  • Everyone should attend our Thursday class meeting. I’ll use this to check in with groups, and it is another time in your schedule to work together on your project.

  • At the end of Project Work Week (due by 11:59pm, Sunday Nov. 21):

    • push to your repo your project source code (to the source/ subdirectory), and push any updates to documentation (to the FinalProject subdirectory). See Using your Project repo for more details.

    • add and push a file named README_PWW to the top-level of your Project repo, telling me whether your code (or some of your code) is build-able and runnable, and if so how to do both (list some command line examples).

After Project Work Week, your group will submit a short Midway Report (due by 11:59pm, Tuesday Nov. 23), and deliver a Midway Presentation to the class on your project (due in class Thursday Dec. 2).

Using your Project repo

As you begin working on your project, implementing parts, doing some testing, and finding other related work, you should be using your Project repo for your project code, and for its documentation, results, scripts, notes, etc.

cd ~/cs87/Project-me-partners
ls
FinalReport/  MidwayReport/  ProjectProposal/  README.adoc  source/

source/

In the source/ subdirectory you should keep and maintain your project’s source code. I suggest adding a subdirectory structure inside source/ to help keep your project’s code and related content (code source(s), scripts, input files, results, …​) organized, and easy to find.

Again, if your project uses large input files, or produces large output or result files, these should be stored in /local on a specific machine or in /scratch on NFS. Come see me to talk about the best place for you to use for your project’s large files.

FinalProject/

As you work on your project, you will want to start updating information that will make up part of your final report. You should start using your FinalProject subdirectory of your Project for written documentation about your project and results, and about its related work as you work on your project.

As you find more related work, you will want to update your bib file with annoted entries as you find them. Make sure to update your final report .bib file with this new related work (FinalProject/finalreport.bib).

You likely will want to start your finalreport.bib from a copy of your propsal.bib that has some related work entries you already added from your proposal. One way to do this is to copy your proposal.bib file to your finalreport.bib file:

cd ~/cs87/Project-me-partners
cd FinalProject
cp ../Proposal/proposal.bib finalreport.bib

other

Finally, this is your Project repo. Feel free to add additional subdirectories as it helps. You may, for example, want to add a notes subdirectory to keep your notes of ideas, bugs, features, testing, etc. as you go.

Adding more content is fine and encouraged. However, you must use the structure I’ve given you for the specific purposes I have (e.g., your midway report must be in MidwayReport subdirectory in the report.tex file).

Midway Report

Due: by 11:59pm, Tuesday Nov. 23

Prepare a short, about 2 page, written progress report containing the following:

  1. An updated project schedule with milestones and dates annotated with information indicating which parts you have completed, which parts you are currently working, and which parts you have yet to start. Include any changes to your plan. Be specific about what you are going to do (or have done), what you have left to do, and in what order you plan to do these things. You may have an altered project plan from the one you submitted with your proposal, which is fine. List a plan that best fits your project now.

    Also, annotate your plan with which group member(s) were responsible for completing different parts, and your plan for who is responsible for future parts. If some were worked on by more than one of you, include both/all of you in the annotation for that task.

    Basically, this should have more details filled out than your plan with your project proposal, and it should clearly included details that reflect what you have done, any plan changes you have made, and your next steps.

  2. One paragraph describing any difficulties you have encountered so far and how you plan to resolve them (or how you did resolve them). If you don’t know how to resolve them or have some ideas but have not completely figured it out yet, then explicitly tell me this so that I can try to suggest some solutions. This should be written using the report.tex latex starting point in your Project/MidwayReport/ subdirectory of your Project repo.

    • Project-you-partners/MidwayReport/report.tex: the latex starting point file for your midway report.

    • MidwayReport/Makefile: make to compile report.pdf.

To Submit

Push report.tex to your repo by the due date (don’t add the .pdf to your repo, but you should make sure you can successfully make a .pdf version from you .tex before you push):

make                 # compile report.pdf
evince report.pdf    # check that it looks okay
make clean           # remove .pdf file

git add report.tex
git commit -m "midway report"
git push

Midway Presentation

Due: in class Thursday Dec. 2, add a link to your talk slide by 12:45pm (see To Submit for details).

Each group with give a 8 minute presentation to the class, briefly discussing their project, and the progress they have made on it.

You should have a few slides (about 5), that:

  • Introduces your project (about 5 mins). You may assume an audience with CS87 knowledge, but do not assume knowledge of your specific project details (e.g., if you are parallelizing a specific algorithm, describe the algorithm with a simple example(s)).

  • List the milestones you have met, and those you have left to complete.

  • Briefly discuss any difficulties you have encountered along the way.

This as an opportunity to introduce your classmates to your project and to get some feedback from your classmates on some of the work you have done and have left to do.

As an audience member, you are responsible for giving feedback to the other groups. I will provide feedback forms that you will fill out for each group.

Here is a link to my tips for preparing oral presentations. See Resources/Links for more resources.

To Submit

Before 12:45 on the presentation date, at least one group members needs to update this document (Midway Presentations). Follow exactly these steps for the way in which you should update this:

  1. Copy a .pdf version of your talk slide to your public_html subdirectory on our system, and set permissions so that they are readable. Follow the directions from the Paper1 assignment for how to set this up if you have not yet done so. And remember you can use scp to copy a file from your home machine to a CS machine:

    yourmachine$  scp  midwaypres.pdf  you@cs.swarthmore.edu:./public_html/.

    Then on the CS machine, set permissions so that it is world readable:

    cd ~/public_html
    chmod 644 midwaypres.pdf

    You can test it out by loading this url in a browser (where you is your CS user name): https://www.cs.swarthmore.edu/~you/midwaypres.pdf

  2. Add a link to your talk slides (and update your project title) to the google presentation schedule here: Midway Presentations.

    The link should look something like this: https://www.cs.swarthmore.edu/~you/midwaypres.pdf. You may additionally add a link to a googledoc version of your slides.

Resources/Links