Contents
COMP603 Program Design & Construction Software Development Project
CJLU 2023 C11
Introduction ............................................................................................................................................................2 Important Dates......................................................................................................................................................2 General Requirements ...........................................................................................................................................2 Project Code Submission ......................................................................................................................................3 Important Notes .....................................................................................................................................................4 ChatGPT .................................................................................................................................................................4 Marking Guideline – PDC Project........................................................................................................................5
1
Introduction
This semester you will design and develop a software product. You can work individually or in a group of 4 students (max). We strongly recommend you work on the project in a group. A team of more than one student is expected to do correspondingly larger projects. For a team project, every team member will have a significant contribution in terms of coding. You may want to select a project from the list below or come up with your own.
-
Student Information Management System
-
Course Selection System – a program for AUT students to select papers
-
Virtual Academic Advisor – a chatbot for providing advice to AUT students for study planning
-
Knowledge Repository – a system for knowledge management
-
A Simple Q/A system – a system for lecturers to input Q/A, allowing AUT students to search
-
A Simple ERP system – Enterprise Resource Planning system
-
Service Desk System – a system for customer support
-
Software Project Registration system – a system for students to register their PDC/SC project
-
Workforce Planning System
-
Ticket Booking System (for train, games, shows, etc.)
-
Hotel Booking System
-
Online Shopping System
-
Inventory Management System
-
Conference Management System
-
Foreign Language (V ocabulary) Learning Software
-
Card Game
-
Virtual Pet Game
-
Puzzles (Sudoku, Crosswords, Mazes, ...)
-
RPG game
-
Chess Games
-
Board Games
-
Deal or No Deal
-
Who Wants to Be a Millionaire?
Important Dates
-
You need to register your project before the beginning of Week 2 by joining a group via Canvas
-
Project source code submission: one week after the last lecture
General Requirements
-
Design and develop a GUI-based Java program. NOT CUI, Web-based or other programing languages.
-
Object-Oriented (OO) programming concepts must be applied to the project. All the important concepts, i.e., encapsulation, abstraction, inheritance and polymorphism, should be reflected.
-
Try to follow SOLID design principles and create multiple classes with relationships.
-
Refer to the important dates for the due date of the project assignment.
-
You need to use Apache Derby DB (also called JavaDB: http://db.apache.org/derby/) as the database management system for your project.
-
You need to develop the project by using NetBeans 14, JDK 11
-
The program needs to be bug-free and has robust error handling.
-
2
-
You need to develop unit tests (using Junit Framework) to test some important functionalities of the program.
-
The program should be easy to build and run without any configuration. DB should be set up automatically without any manual configurations.
-
You need to have an open mind about the functionality of your software project 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 and other external libraries.
-
You are encouraged to learn more beyond the lectures and apply what you have learnt to the projects. However, the project requirements stated in this document should be satisfied.
-
IF you work in a group, the team also needs to include a one-page contribution for the project. If any team member gives very few/no contributions in terms of coding, the student will be given a penalty or even fail the project.
-
Please refer to the Marking Guideline for more details.
Project Code Submission
-
The project must be submitted via Canvas.
-
Only one team member needs to submit it.
-
You need to submit a compressed ZIP file that contains:
o The project folder with all the source codes and related files, e.g., image files, text files, unit tests, etc.
o A very short (less than one page) report, including:
-
the project setup (e.g., user name and password)
-
GitHub URL (if there is one), and
-
the contribution of each team member if this is group work (this item is not required if you work individually). If any team member gives less than 40% contribution/no contribution in terms of coding, the student will be given a penalty or even fail the course.
o A short video (less than 5 minutes), including
-
Video recording using MS Teams. Start a meeting, share the screen and record
it.
-
Project demonstration, showing all the features by running your project
-
Code explanation, explaining class structures, methods and processes.
o You need to include the database folder, which contains all the database files in the compressed ZIP file. You can set the DB directory inside your project folder.
o You need to include .git (hidden folder), having all the historical commits and branches.
• Submission Guideline
o Find your group ID from Canvas.
o When you submit your project, please compress the whole project as a .zip (not .rar, .7z or any other type), and rename the zipped file with your group ID and
3
the student ID of members.
o For example, if the group ID is 9, and the student ID is 1234567, then the name of the submitted file should be “P09_1234567.zip”. If you have a partner in your group whose student ID is 7654321, then the name should be “P09_1234567_7654321.zip”.
o Please submit a complete NetBeans project (Ant or Maven). Any improper submission (e.g., non-NetBeans project, several Java files or compiled classes, lack of essential files, improper name of the submitted file) will affect the assessment of your project.
Important Notes
-
To pass the course, the student needs to obtain at least 50% overall.
-
Plagiarism and self-plagiarism will result in zero marks in the assignment and be reported to the faculty. We detect Plagiarism by using commercial software https://codequiry.com/. Plagiarism means:
o Download open-source projects from online source, e.g., GitHub, and modify the codes
o Re-use past students’ assignments with modifications
o Re-use the assignment of other papers, e.g., ADA, DSA, etc.
o Purchase assignments from any sources
However, you can:
o Re-use the sample codes and lab solutions given to you.
o Download a utility class/algorithm for your project.
o Download any existing models (e.g., machine learning model, language model)
-
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).
-
You have the responsibility to keep and back up different versions of your programs. You may also consider using cloud tools, e.g., one drive, drop box, Google drive, for backup. Losing of data (code) will not be considered as a valid reason for special consideration.
ChatGPT
ChatGPT (Chat Generative Pre-trained Transformer) is a type of language model that is designed to process and generate natural language text. It is based on a deep learning algorithm called a transformer, which uses a neural network to process sequences of text. In this assignment:
-
You can use ChatGPT to assist you with programming
-
You can use ChatGPT to learn to program
-
You can use ChatGPT to debug your program
-
You can use ChatGPT to generate PART of the program
-
When utilising ChatGPT to generate a method or class, please include a reference or comment in the code that indicates that the code was generated using ChatGPT. It is important to note that any classes or methods that are generated by ChatGPT should not be considered as part of the classes that you have developed.
-
However, using ChatGPT to generate an entire program even with minor modifications is considered plagiarism. If we suspect that a project is fully generated, we will request the team to present the project and ask questions about the code.
4
Marking Guideline – PDC Project
Requirement
Max mark
User Interface (GUI)
|
10 |
Database
|
20 |
Software Functionality and Usability
|
30 |
Software Design & Implementation
|
30 |
Unit Testing
|
10 |
Contribution
|
N/A No Marks |
Others
|
-0% to -100% |