Overview

Contents of this page:

Course Objective

The essence of this course is advanced software design in action. Students learn to apply design principles and “best development practices” in a team project. Architectural design, design specifications and evaluation of alternative design solutions that lead to quality code are emphasized throughout the course. The problem students work on is carefully selected to demonstrate application of design principles. The size of the problem and iterative development style makes it difficult to succeed in the project without applying principled and systematic approach to design, documentation, development and testing.   Students work through the Software Development Life Cycle (SDLC) to complete a team project.

Other objectives are:

  1. prepare students for industrial projects,
  2. develop an ability to work as part of a group in a project of substantial size and complexity,
  3. enhance project planning skills,
  4. develop writing skills,
  5. apply and consolidate what students have learned in these three programming courses: CS1101, CS1102 and CS2103,
  6. follow the SDLC according to the "best software engineering practices",
  7. develop a well-tested, production quality software system.

Conduct of the Project Course

Project course involves lectures, weekly consultations (tutorials in small groups), assignments and final project presentation.

  • Lectures: guide students through the system - Static Program Analyzer (SPA) - students design and implement in the project., and discuss software design principles/methods to be used in the project.
  • Handbook: written especially for this course, describes the project in detail.
  • Consultations: Students do the project in teams of six. Consultations in CS3215 play similar role to tutorials in other courses. Consultations are every week, all students in a team must attend consultations.
  • Assignments: describe recommended project phases and deliverables.
  • Final project presentation: At the end of the course, teams submit documentaiton and code of the system they implemented, and conduct presentation of their work.

Grading Policy

All team members are expected to equally contribute to the project. At the end of the project, we shall ask each team member to evaluate contributions of other members of his/her team. The final grade for the course will be computed as follows:

  • 20% - assignments 1, 2, 3 and 4
  • 80% - final project report and demo of your program

The first 4 assignments will be given 5, 4 or 0 marks based on the following criteria:

  • 5 marks - if you submit a reasonable assignment solution on the due date; you will not be punished for errors or if your work does not fully cover the scope of the assignment, provided this is not due to negligence; if you get on track later, you still stand a chance to get the highest grade at the end.
  • 4 marks - if your work is at the very low end of being reasonable with respect to what was expected.
  • 0 marks - if you submit the assignment late without valid reason, or if your work is not reasonable with respect to what was expected, or if you got 4 marks in the last assignment and you did not put enough effort to improve.

Evaluating and grading the project:

  • We expect at least:
    • implementation of functionality as described in assignments
    • reliability: programs must pass our test benchmark
    • high quality of documentation and report
    • flexibility and reusability
  • Query examples in assignments 3-5 show how you should be implementing PQL incrementally, gradually increasing the complexity of your query evaluator. However, in order to qualify for a mark above B, your final SPA should be able to handle all kinds of queries within the scope of the grammar specified in the project handbook.
  • Students aiming for an A or A+ grade should:
    • demonstrate some degree of innovation in terms of PQL features, design solutions, query evaluation strategy
    • demonstrate maturity of skills in areas of team work, design, incremental development, approach to testing etc.
  • We take into account all the above factors, not only functionality implemented, in the evaluation of project achievements and in grading the project.

Students will be assessed based on the quality of the design solutions and maturity of the design evaluation, programs, documentation, the scope of the functionality implemented, and presentation.

Policy on Project Work

  • You are permitted to discuss the project with anyone.
  • Solutions you hand in should be your own work   --   coding and documentation should be the work of your team only!
  • You may not view any code and document written for CS3215 by anyone not in your team, including past students.
  • You may not reveal your code and document to any students not in your team.
  • Any case of academic misconduct will be prosecuted to the fullest extent provided for by University regulations.

Pre-requisites

Completed CS2103.

Planning for CS3215

Because of the heavy workload in this course, in the term you take CS3215, your are advised to take only THREE other courses. Particularly, you should avoid taking courses that involve a lot of practicals in the term you take CS3215.

*** Maintained by YinXing Xue ***