COMP603 Projects

COMP603: Program Design & Construction – Projects
2019 Semester 2
Introduction ………………………………………………………………………………………………………………………………………… 2 Requirements……………………………………………………………………………………………………………………………………….2 Important dates…………………………………………………………………………………………………………………………………….3 Final code submission ………………………………………………………………………………………………………………………….3 Note…………………………………………………………………………………………………………………………………………………….3 Marking Guideline……………………………………………………………………………………………………………………………….4

Introduction
This semester you will complete a project to produce a software product. You can work individually or in groups of 2 students. You want to select a product type from the list below or come up with your own.
• A virtual pet game.
• A card game
• A foreign language (vocabulary) learning software
• Chess games
• Board games
• Deal or no deal
• Who wants to be a millionaire
• A RPG game
• A soccer/rugby manager game
Requirements
• The project contains 2 stages:
o In Stage 1, you will need to develop a Command-line User Interface (CUI) version of the
product. You will need to use text files to store input and output data from the program.
o In Stage 2, you will upgrade the product to a Graphical User Interface (GUI) version. Meanwhile, you will include a Database component to the product, implement design patterns and include necessary unit tests.
• The source code of the CUI and GUI versions of your products will be submitted in Week 6 and Week 12, respectively. The source code for each stage weights 50% of your project grade (see the Marking Guideline in Page 3)
• You need to use Apache Derby DB (also called JavaDB: http://db.apache.org/derby/) as the database management system of your project.
• You need to develop the project by using NetBeans
• You need to have unit tests for testing some important functionalities of the program (for Stage 2
• The program needs to be bug free and have robust error handling.
• The program should be easy to build and run without any configuration (especially, for Stage 2, the DB should be setup automatically without any manual configurations).
• You need to have an open mind about the functionality of your game, and try your best to make your program robust, interesting, and easy to use.
• You will be expected to develop your own Java code for the projects. You may use the Java standard library. You may also use other external libraries with my permission.
Programming Help, Add QQ: 749389476
Important dates
• You need to register your project before Week3’s labs by emailing your TA your project name and group member name
• Stage 1 source code submission: 23/08/2019 (Friday, Week 6), 11:59pm
• Stage 2 source code: 18/10/2019 (Friday, Week 12), 11:59pm
Final code submission
• The project will be submitted via Blackboard;
• You need to submit a compressed file which contains:
o The project folder which contains all the source codes, unit tests, and related files, e.g., image files, text files;
o In Stage 2, you also need to include the database folder which contains all the database files in the compressed file. You can set the DB directory inside your project folder.
• Minimum pass requirement applied for the project. To pass the course, the student needs to obtain at least a minimum pass (35%) in coursework (includes midterm exam and project) and (40%) in the final exam. And obtain at least 50% overall. (check the Week 1 slides for details).
• Plagiarism and self-plagiarism will result zero mark in the assignment and be reported to the Faculty.
• Late submission penalty will be applied (5% penalty per day up to a maximum of 5 days. Late
assessments after 5 days will not be accepted without a Special Consideration being granted)
• You have the responsibility to keep and backup different versions of yourprograms. Losing of data (code) will not be considered as a valid reason for special consideration!
Computer Science Tutoring
Marking Guideline
Requirement
User interface (CUI)
• Clear and well-designed interface
• The program can handle users’ inputs from the CUI properly
• The interface is easy for users to interact with
• The program input and output data from/to text files successfully
• File IO must contribute to the functionalities of the project.
• Use classes/methods taught in this paper
Software functionality and usability
• The program is easy to compile and run without any manual configurations (e.g.,
setup input/output files, import .jar files, etc.)
• The program can be easily interact without any errors
• The complexity of the functionality
Software design & implementation
• The program can be compiled successfully
• Highly readable code
• Meaningful and appropriate comments
• Executes without runtime errors
• Robust error handling
• Clear class structure
• Complexity and robustness of the functionality
User interface (GUI)
• Clear and well-designed graphical user interface
• The interface is easy for users to interact with
• The program contains a database element
• Can achieve database interactions and operations (input and output) in the program
• JDBC must contribute to the functionalities of the project.
Software functionality and usability
• The program is easy to compile and run without any manual configurations (e.g.,
setup DB, import .jar, etc.)
• The program can be easily interact without any errors
• The complexity of the functionality
Software design & implementation
• The program can be compiled successfully
• Highly readable code
• Meaningful and appropriate comments
• Executes without runtime errors
• Robust error handling
• Clear class structure
• Implementation of design patterns
• Good coding style
• Good OO design
• No obvious code smells
Unit testing
• Correct tests
• Tests cover important functionality well
• Well-named tests
Programming Help