Computer Networks, Interactive Teaching, Web-centric applications
Suggestions for possible Honours Projects
Supervisor IM Venter
Introduction
Project Area: Computer Science Education, E-learning and Human-Computer Interaction
Description: The student will undertake a project that investigates an aspect within any of the above fields. The type of project could be a research project and/or a programming project.
Objective (programming project): The objective of this type of project would be to exercise the student in the full software development life cycle / process from the initial requirements analysis to the final implementation of a software product. The relevant project documentation for the various stages of the development process will have to be completed as well. Assessment is done in terms of the written document and oral presentations.
Objective (research project): The objective of this type of project would be to demonstrate research proficiency within an aspect of the above mentioned research fields. The work product would be a reasonably sized written document, which applies or extends what the student has learned in earlier courses or about a subject matter that the student wishes to pursue in further studies. Assessment is done in terms of the written document and oral presentations.
Software Tools: Typical software tools/programming languages or technologies that could be used in the construction of a system may be one or more of the following: Java, C++, VB, Perl, CGI, XML, Web Servers (PWS, IIS, Apache, etc), MS SQL Server, Database (Access, SQL, ADO, ODBC, RDS, etc), ASP, HTML, DHTML, ActiveX, PHP and scripting languages such as VBScript, JavaScript, etc.
Deliverables: The deliverables for each term are as indicated on the CS Website.
How to decide on a project topic
This following should be thought of mainly as a guide to the kinds of projects that may be undertaken and as a useful starting point in the search for an appropriate project topic. Students are strongly encouraged to search for projects that will suit their interest.
Some of the Honours students of 2004 – 2007 designed their projects using open source software development tools. This was done in order to align their work with the Free Software Innovation Unit (FSIU)’s Chisimba framework and/or an open source web based learning environment developed at UWC called Next Generation (KEWL). The students were able to discuss their ideas with FSIU developers during the design phase of their projects (a similar collaboration is envisaged for 2009).
Collaboration with other universities is possible:
- The Stellenbosch Department of Genetics (they proposed some projects) and
- The University of Oslo. If you choose to collaborate with Oslo University you can apply to visit Norway in the second semester of you studies.
The following web-sites lists some general ideas for Honours projects :
- A ‘Project Guidance’ website.
- http://www.projectguidance.com/
- According to the site: ‘Project Guidance’ is a user driven educational content website dedicated to finding and realizing final year projects for students, developer’s and others in Electronics and Computer projects category . Here you can post, search, find your projects and get guidance from experts round the globe. (see http://www.projectguidance.com/general/aboutus )
- An Australian university website that lists previous projects
- Our own website:
- http://www.cs.uwc.ac.za/index.php/Honours-Students/Previous.html
- Here you can see what projects students’ attempted in previous years.
Project Modules
Purpose of the module
This module establishes the requirements and scope for an Honours Project. The students must provide a proposal, User Requirements Document, Requirements Analysis Document, and an initial project plan. The documents are meant as guidelines for the requirements and analysis phase of the project. The project plan teaches the student how to carve up a project into manageable pieces, and how to manage time and effort. The module also requires an oral presentation to improve presentation and communication skills.
Statement of specific learning outcomes for the module
The student can determine and describe a project’s requirements. The student can formulate and analyse the requirements from both user and software design points of view. The student learns how to set up and follow a project plan. The student learns the tools and skills to present progress to an audience.
List of content topics
Proposal, User Requirements Document, Project Plan, Requirements Analysis Document, presentation
Purpose of the module
This module moves the project into the design phase. Again, these documents are suggested guidelines. The student prepares aUser Interface Specification (UIS) document. The orientation of the UIS is dependent on the type of programming effort, e.g. GUI, API, etc. The student develops a prototype that is intended as a “throw away”, usually developed from the UIS. Learning from the quick implementation of the prototype, this student progresses to the design stages of the project – first with an Object-Oriented Analysis(OOA) or High Level Design(HLD), and then with an Object-Oriented Design (OOD) or Low Level Design (LLD).
Statement of specific learning outcomes for the module
The student describes how the intended software system is going to appear to the user. The student can implement a prototype from the User Interface Specification. The student can transform the Requirements Analysis into a OOA/HLD, and then from there refine and provide the lower details of a OOD/LLD. The student also presents progress to an audience.
List of content topics
User Interface Specification., Prototype, OOA/HLDdocument, OOD/LLDdocument, presentation
Purpose of the module
The student implements the design in the language(s) of choice.
Statement of specific learning outcomes for the module
The student learns how to implement a project from design documentation, and also how to refine design documentation. The code works, and is well-documented. The student also presents progress to an audience via a live demo and a tour of the codebase.
List of content topics
Fully documented implementation and refinement.
Purpose of the module
The student designs test suites and executes the tests against the finished product. The student must revise the code, or even the project design, if bugs and/or limitations are found. The student should also increase efficiency with a profiling tool. When all is finished, the student presents the test-suite to an audience to prove that it works correctly.
Statement of specific learning outcomes for the module
The student learns how to devise evaluation criteria and test cases for the project. The student details the test-suite, and then proves to the audience that the product passes the tests. The student should also provide a User’s Guide.
List of content topics
Testing and Evaluation Criteria Document, User’s Guide, Test Suite Demo, and Final Writeup