You are on page 1of 1

CSE 30331 Data Structures Final Project Introduction (Milestones #1 and #2)

Fall Session 2013

The final project for this course will center on the improvement and adaptation of an existing actively developed open source application of the students choosing. Specifically, teams of 2 or 3 students will: implement alternative data structures to improve performance, add new functionality as requested by the developer/user community, or resolve known bugs as identified by the community. Students will describe the data structures involved (in detail) and justify the rationale for their chosen data structures. The project will address the following learning objectives (and more) via hands on development in an application code base of particular interest to the student: Analyze code written by others to understand the functionality, software framework, and performance given various use cases. Identify existing data structures that have a significant performance impact. Replace/Revise/Reuse data structures ensuring conformance to pre/post conditions. Communicate and collaborate with remotely distributed software developers (often from different cultures distributed across various time zones). Work through compilation and graphical library compatibility challenges when compiling on various software and hardware platforms. Provide written project status reports and a project presentation to a large group.

Because of the inherent complexity involved with modifying a real, functional, existing code base selected by the student; the grading assessment will be based on incremental milestones versus raw performance improvement. For example, demonstrating a functional new data structure and properly explaining the expected and observed performance will receive the majority of credit versus credit based simply on a % faster or % function code improvement. Working with community code is notoriously challenging; inevitably some developers try to rewrite it from scratch. While this may be an option, it is increasingly rare when working with larger companies and legacy software. To aid your progress and reduce frustration it is important to start early. Below are your first two milestones. With each homework and programming assignment you will have additional milestones and brief progress reports. Milestones: M1 Select a team of 2 or 3 members. If you have three members the final report will need to be 50% longer and include 50% more data structure modifications/evaluations. Begin to evaluate open source software applications of interest to you. Popular repositories are sourceforge.net, tigris.org, Google code, and many more This class is based on C/C++ which is the preferred language for your selection. Java, Python, C, Objective C, etc will be permitted upon instructor approval.

M2

You might also like