CSC410 Syllabus

This course guides students through the planning of a computing project. It is expected that every project plan will include some of the following:

  • problem analysis
    Understand and precisely document the problem to be solved, and obtain agreement from the client. Determine inputs, outputs, and assumptions. Establish the expected nature of the solution in terms of software and hardware.
  • software and hardware design
    Use formal practices to design and document a solution in terms of software and hardware. Note what solution components can be purchased "off the shelf", and what components will require development. Produce structural design documentation.
  • algorithm and data structure selection
    Decide on specific algorithms and data structures to be used in the implementation of the software design. Produce detailed software design documentation.
  • user interface design
    Use HCI principles and prototyping to design an appropriate user interface. Take into consideration deployment flexibility and needs. Produce user interface design documentation.
  • verification and validation
    Use software engineering practices to design a detailed software verification and validation plan. Define normal, boundary, illegal test cases. Ensure complete code coverage. Produce a verification and validation documentation.
  • prototyping
    Optionally, implement a protoptype of the software, to present to the user, and verify functionality requirements and the user interface.

Organization

The project must have faculty member who has agreed to be the project supervisor. This faculty member may be different from the course instructor. The student and project supervisor must meet at the start of the course to agree upon:

  • The nature of the project. This should be reasonably detailed, to ensure that both the project supervisor and the student understand their working relationship.
  • The number of hours the student will work, and a schedule for those hours. Normally one credit will correspond to 50 hours of work.
  • The deliverable documentation from the planning.

The student must write a "project proposal" of approximately 400 words to document these points. The project supervisor must approve the proposal, to ensure that the project has appropriate Computer Science content, and that the implementation will produce a useful result. The project must be substantially different from any previous project completed. The project supervisor and the course instructor will review the proposal, and return it with feedback for improvement. The final proposal (for grade) must be submitted after that, taking the feedback into account.

The design document may be written in any appropriate form, including prose, structure charts, algorithms, UML diagrams, use cases, etc. The total design is expected to be approximately 1200 words per credit. Draft designs must be submitted during the semester. The project supervisor and the course instructor will review the designs, and return them with feedback for improvement. The improved draft designs and the final design (for grade) must be submitted after that, taking the feedback into account.

At the end of the project the student must give a 20 minute presentation on the design.

All documents and presentation slides must be emailed to the project supervisor and the course instructor in PDF form. At the end of the project, a copy of all deliverables must be emailed to the project supervisor and the course instructor. All documents and deliverables will be added to the department's project archive. The project supervisor will evaluate the student's performance. No grade will be approved without the documentation, slides, and deliverables. A writing credit will be given for satisfactory completion of 3 credits of CSC410.