This unit is intended to provide practical experience in designing, developing and testing a non-trivial computer science project. Projects are generally software-based, although sometimes they may involve hardware development or investigation of theory. Projects cover the whole process of software (or hardware) development, from analysis through design to implementation and testing. Comprehensive written documentation on the project is required. Students are assigned in groups to a project supervisor. There are no lectures in this unit, although students will be expected to attend regular meetings with their project supervisor.
At the completion of this unit students will have -
A knowledge and understanding of:
- strategies for developing a non-trivial programming, hardware, or theory-based project.
- how to locate and utilise prior research and methods on a particular topic;
- how to cite bibliographic references the student has used to understand various components of the project, support claims on knowledge, events, hypotheses and theories;
- how to document software development from a user and application programming perspective;
- software development methods: analysis, design, implementation and testing applied to the design and development of a non-trivial project.
Developed attitudes that enable them to:
- acknowledge the importance of attending and contributing to meetings as a method of gaining important information and ideas about the project;
- understand the basic requirements of software development from both user and developer perspectives;
- appreciate the importance of correctly acknowledging the work of others in researching solutions to problems;
- value the role of work books in documenting a projects progress and keeping track of its development.
Developed the skills to:
- search, access, and analyse research literature as part of the process of developing solutions to problems;
- understand the importance of analysis, design, documentation, and testing in developing a non-trivial software project;
- write a moderately detailed report explaining methodology, outlining their contributions and the contributions of others, documenting the developed project from developer and user perspectives.
Demonstrated the communication skills necessary to:
- understand the role of the client (or user) in the software development process;
- appreciate the importance of written communication in documenting project development;
- understand the importance of assessing time and resource requirements in the successful completion of non-trivial projects;
- appreciate the importance of time and resource management in order to deliver non-trivial projects to deadlines.
Projects are assessed by individual project supervisors.