Milestones are to be submitted in Bitbucket, at the location shown for each milestone.
1a. List the names of your team members (2–4 members including yourself).
1b. Write down your top three choices for open-source software projects to work on. Each can be one of the pre-built projects or something else; in the latter case, provide a short paragraph explaining your choice. Some requirements:
2a. By now, you should have committed to an application to work on.
2b. You should also be able to successfully compile and run your chosen application. See Getting Started for some advice.
3a. By now, each team member should have selected something specific to work on. It could be:
3b. You should also be in contact with the developer community (ask your TA for tips on how to do this successfully). Cut and paste an excerpt from one of your conversations.
In the middle of the semester, you will give a short presentation of your project to the class. It does not count towards your grade, and is a good chance to get feedback from other students.
4a. For each modification, you should have an idea that you plan to implement. Describe your idea, and its expected performance (asymptotic time/space complexity and/or practical time/space usage).
4b. How is your team managing the project source code? Are you working on multiple computers? Do you have a shared repository? Are you using branches to make experimental changes to the code?
5a. Discuss how you are measuring the performance of your modifications. For example:
5b. What results have you gotten so far? If you have run into any problems, please describe them.
Yellow squares indicate point values of requirements.
Each team will give a presentation of their project. The presentation (including questions) will be 2n minutes long where n is the size of your team, plus or minus 1 minute,2 and each member should have roughly equal time.2 The presentation should include a clear explanation of the data structures used and the results,4 and a demonstration of the running application.4
You may either use your own laptop or the classroom computer to present. If using your own laptop:
If using the classroom computer:
The demonstration can be live, or it can be a video or screenshots if appropriate.
Yellow squares indicate point values of requirements.
The final report will describe your work on the project over the entire semester. You can reuse any material from your milestones.
The report must be 2 + n pages where n is the size of your team, plus or minus 1 page, with 1 inch margins, in Times (New) Roman, 11 point, single-spaced.2 Tables or charts illustrating performance are encouraged, but code or images should be put in an appendix and do not count toward the page total.
The report should be well written. It should have a logical flow and be free from grammar and spelling errors.2
The following organization of content is recommended to best align with the grading rubric. You are allowed to deviate from this recommended organization if you feel it helps you better communicate the content required in the grading rubric.
Page 1: Introduce your application, what it does, and why you chose it.1 Provide internal details about your application: for example, how large is the code base, what programming language(s) is it written in, what hardware and operating system it runs on, what libraries it depends on.1 Discuss your team's efforts to get the application to build and run correctly.1
Page 2: Describe your experience working with the developer community.1 Then give a brief overview of your modifications. For each, indicate who worked on it and how you chose it.2
Pages 3 and beyond: Each page should discuss one modification. Discuss the modification in detail and answer the following questions.
Finally, write a short summary of your project.
Please submit your report by e-mail to your instructor (Dr. Chiang or Dr. Bui). The normal late policy does not apply; there is a grace period of three days, and after Friday 12/18 11:59, no reports will be accepted!