Data Analysis of a Document Tracker
1 Overview
The aim of this coursework is to develop a simple, data-intensive application in Python.
The learning objective of this coursework is for students to develop proficiency in advanced program- ming concepts, stemming from both object-oriented and functional programming paradigms, and to apply these programming skills to a concrete application of moderate size. Design choices regarding languages, tools, and libraries chosen for the implementation need to be justified in the accompanying report.
This coursework will develop personal abilities in using modern scripting languages as a "glueware" to build, configure and maintain a moderately complex application and deepen the understanding of integrating components on a Linux system.
The report needs to critically reflect on the software used for implementing this application, and discuss advantages and disadvantages of this choice. The report should also contain a discussion, contrasting soft- ware development on Windows and Linux systems and comparing software development in scripting vs. systems languages (based on the experience from the two pieces of coursework).
The report should have between 10-20 pages and use the following format:
1. Introduction: State the purpose of the report, your remit and any assumptions you have made during the development process.
2. Requirements' checklist: Here you should clearly show which requirements you have delivered and which you haven't.
3. Design Considerations: Here you should clearly state what you have done to your application to make it more usable and accessible.
4. User Guide: Use screen shots of the running application along with text descriptions to help you describe how to operate the application.
5. Developer Guide: Describe your application design and main areas of code in order to help another developer understand your work and how they might develop it. You may find it useful to supplement the text with code fragments.
6. Testing: Show the results for testing all cases and prove that the outputs are what are expected. If certain conditions cause erroneous results or the application to crash then report these honestly.
7. Reflections on programming language and implementation: Based on your experience in imple- menting this application, reflect which language features and technologies have been most helpful, identify limitations of your application and suggest ways how to overcome this limitations. Also re- flect on the usability of the (kind of) language (either system or scripting language) for this application domain, and on its wider applicability.
8. Conclusions: Reflect on what you are most proud of in the application and what you'd have liked to have done differently.
9. An final section should contain the main references used in this report and in the implementation.