CAL3033 Program Design and Development Assignment 2
Programme Bachelor of Computer Sciences (Hons) Course Code and Title CAL3033 Program Design & Development University of Lincoln Assignment title Assignment 2: Implementation and Justification
This assessment assesses the following course learning outcomes
# as in Course Guide |
KDU PG UC Learning Outcome |
LO3 |
Understand and employ object oriented programming and make use of Collection classes and be able to implement data structures such as lists, queues and trees together with algorithms to process these structures (e.g. searching and sorting). |
LO4 |
Understand algorithm complexity and the big-O notation, and use this knowledge to select suitable data structures for a particular scenario. |
# as in Course Guide |
UL Learning Outcome |
LO1 (Algorithms and Complexity) |
understand the time and space efficiency of algorithms and how to calculate/estimate/evaluate and improve them |
LO3 (Algorithms and Complexity) |
demonstrate the ability to select from a range of possible options, to provide justification for that selection, and to implement algorithms in a particular context. |
LO2 (Object-Oriented Programming) |
use advanced object oriented principles and programming techniques in software development |
LO3 (Object-Oriented Programming) |
apply advanced logical and mathematical techniques in the development of software solutions |
Scenario
A restaurant would like to provide food delivery service to their customers. The restaurant would like to have a system to manage the order placing and delivery of the food orders. There are two types of customer, delivery customers or self-collect customers. The customers will place their orders via phone or leave message from social media and the receptionist will key in the orders into the system. The delivery of orders could be immediately or scheduled to a specific date and time. Payment could be made by cash on delivery or pay via credit card. The system will also be used to arrange the orders to different riders according to the area of delivery. The food which is not delivered will be returned to the restaurant. Assume that the restaurant is operating daily, from 9 am to 10 pm. The last order for delivery will be accepted latest by 9.30 pm.
Generally, the company requires a system that is capable of performing the following tasks:
- Adding records for food menu, riders, delivery customers, and walk-in customers, validating the information according to the descriptions given;
- Adding food ordering records when customers placing the orders.
- Assigning riders to deliver the orders. A list of delivery record should be generated based on the area of delivery. For example, assign one rider to handle the orders according to the postcode of delivery. Refer https://worldpostalcode.com/malaysia/pulau-pinang for more information. Your program should focus on assigning orders in Penang Island area only. The orders with any other postcode will not be accepted.
- Removing records when orders delivered or updating records when orders returned.
NOTE: you are not required to implement all of this functionality; the following section details exactly what you are required to do.
Tasks
You are required to perform, individually, the following tasks.
Task A—System Implementation (70 marks)
An analyst has produced a system that has the following functionality:
- Read the food menu and riders’ information from text files;
- Has a main menu screen that provides access to these functions, and to the functions related to the features listed below.
You are required to add additional functionalities to this system, as follows:
- Make sure the file reading routines validate the information they read. You are required to do the following:
- Create collections in which to store customers, food menu, riders and orders. You should consider carefully what type of collections to use, and be prepared to justify it. You may choose to store delivery customers or self-collect customers in either one collection or two separate collections, and be prepared to justify your choice.
- You are required to modify the routine to add validation of the input data. If the data read from the text file does not satisfy validation, the record should not be created nor added to the relevant collection.
- You are required to add functionalities as follows.
- To place an order: Allow user to enter all necessary information. If the order is placed by a registered member, the user should just key in the customer phone number as an ID. Once the ID has been entered, the details of the customer should be displayed. There will be delivery charges for orders based on the number of meals as shown in Table 1.
Table 1 Delivery charges based on number of meals ordered
Number of meals |
Delivery Charges (RM) |
1 - 4 |
10 |
5 - 9 |
5 |
10 and above |
Free of charge |
However, the restaurant also provides free delivery to the following postcodes: 11700, 11800, 11900 and 11950. There will be a 10% special discount given to self-collect customers. Your program should focus on accepting orders in Penang Island area only. The orders with any other postcode will not be accepted.
- To assign delivery of orders: The user may process the orders by arranging riders to deliver the food. A list of delivery record should be generated based on the area of delivery. For example, assign one rider to handle the orders according to the postcodes of delivery. Refer https://worldpostalcode.com/malaysia/pulau-pinang for more information.
- To update status after delivery: Once the riders come back after delivery, they should inform the user of the system to update the status of delivery. The orders which are fail to be delivered should be recorded.
- A function to list the riders, customers, food menu, orders, delivery list and returning list on the console.
- Save data: this should save the order records, delivery records and returning records to text files using a PrintWriter class.
- Load data: this should read the saved records, using a Scanner, and reinstate them when the data is loaded.
You are not required to add any other functionality such as addition and removal of food menu and riders.
Marks will be awarded for two aspects of the implementation:
- The functionality provided by the system (60 marks)
- The quality of the coding (10 marks)
For the functionality, full credit will be given for each aspect that has been correctly implemented; partial credit will be given for a reasonable but not wholly correct implementation; no credit will be given for features which have not been implemented or which do not compile.
For the code quality, marks will be awarded with good use of commenting throughout, including Javadoc comments for the vast majority of classes, methods and variables. Code is well structured and clear; classes, methods and variables are almost all well named.
Task B—Report (30 marks)
You are required to write a report, detailing the reasons for the choice of data structures used in your program for storing the records. The report should be a maximum of 5 pages A4, 12pt text. If the report is over this length, there will be no penalty but only the first 5 pages will be read.
You should give comprehensive discussion of the complexity, efficiency and overall suitability of the data structures you employed and consider all reasonable alternatives within the Java collections API that might have been used instead. Make sure you cover the Big-O notation for the discussion on the complexity of algorithms. The discussion should be supported by appropriate quality references.
Important Note—Academic Misconduct
This assignment must be solely your own work, although you may of course refer to the jointlyproduced material from part 1 of the assignment as necessary.
Any sources you make use of must be referenced correctly.
Any plagiarism or collusion will be dealt with according to KDU Penang University College regulations.
Handing in your work
Each student should submit a report containing the following:
- A cover page as provided in Canvas.
- Report of Task B.
- Originality report from the Turnitin web site.
The report should be should be submitted together with the Java source code. You may zip the report and all your Java source code files. If packages have been used the files should be stored in an appropriate directory structure. The .zip file should also include, in addition to the code, a plain text (.txt) file giving instructions necessary for compiling and running your application. It must not be necessary for any IDE other than Eclipse to be used, or for any libraries which do not form part of the standard JDK installation to be required. If you have used either Eclipse, you can simply submit a .zip file of your project folder.
If you need to make any assumptions in order to implement the system, these should be detailed in your report, together with the reasons for making them.
CAL3033 Program Design & Development MARKING RUBRIC ASSIGNMENT 2 Implementation & Justification (30%) | |||||||||||||
System Implementation (70%) | |||||||||||||
LEARNING OUTCOME |
MARKING CRITERIA |
SCALE | |||||||||||
Fail (0-49) |
3rd Class (50-59) |
2nd Lower Class (60-69) |
2nd Upper Class (70-79) |
1st Class (80-100) |
YOUR MARKS/COMMENTS | ||||||||
100% |
Weightage |
Actual Marks | |||||||||||
CLO 3 |
1. Code Quality (10%) |
Very poor coding which is hard to understand. Little use of comments. Poor naming of almost all classes, methods and variables. |
A fair attempt; the code is of reasonable quality. However, there may be several problems with structure, or very little use has been made of comments, or the naming of classes, methods and variables is unsatisfactory. |
Adequate in the naming of naming of classes, methods and variables. Attempt to made of use comments. |
Generally, a good attempt, making use of comments, and where the majority of classes, variables and methods have been appropriately named. However there may be several omissions of Javadoc comments, and the code. |
The correct scope is modelled covering all the requirements. Overall an outstanding class diagram. |
0.10 | ||||||
2. Function: Validation (10 marks) |
Does not demonstrate proper validation and logical use of the data structure and algorithm. |
Demonstrates some validation and limited use of data structure and algorithm. |
Demonstrates validation and reasonable use of data structure but with a few shortcomings. |
Demonstrates validation and reasonable use of data structure. |
Demonstrates complete validation and proper use of data structure and algorithm. |
0.10 | |||||||
3. Function: Save files and reload from files (10 marks) |
Does not demonstrate any use of appropriate saving/loading files. |
Demonstrate some limited use of appropriate saving/loading files. |
Demonstrates adequate use of appropriate saving/loading files. |
Demonstrates proficiency in the use of appropriate saving/loading files. |
Demonstrates mastery in the use of appropriate saving/loading files. |
0.10 | |||||||
4. Function: Create order (10 marks) |
Little or no functionality works as required. |
Several areas of functionality missing or incorrectly implemented. |
A correct implementation of most of the required functionality; some aspects may not work correctly. |
A correct implementation of required functionality with limitations. |
A complete and accurate implementation of the required functionality. |
0.10 | |||||||
5. Function: Assign rider (10 marks) |
Little or no functionality works as required. |
Several areas of functionality missing or incorrectly implemented. |
A correct implementation of most of the required functionality; some aspects may not work correctly. |
A correct implementation of required functionality with limitations. |
A complete and accurate implementation of the required functionality. |
0.10 | |||||||
6. Function: Update delivery status (10 marks) |
Little or no functionality works as required. |
Several areas of functionality missing or incorrectly implemented. |
A correct implementation of most of the required functionality; some aspects may not work correctly. |
A correct implementation of required functionality with limitations. |
A complete and accurate implementation of the required functionality. |
0.10 | |||||||
7. Function: List records (10 marks) |
Program does not able to perform the task. |
Program executed with errors. |
Program executed error free with limitations. |
Program executed error free with correct output. |
Program executed with outstanding output. |
0.10 | |||||||
Total (70%) | |||||||||||||
Report (30%) | |||||||||||||
LEARNING OUTCOME |
MARKING CRITERIA |
SCALE | |||||||||||
Fail (0-49) |
3rd Class (50-59) |
2nd Lower Class (60-69) |
2nd Upper Class (70-79) |
1st Class (80-100) |
YOUR MARKS/COMMENTS | ||||||||
100% |
Weightage |
Actual Marks | |||||||||||
CLO 4 |
1.Quality of information (20%) |
Information provided has little or nothing to do with the question. |
Information clearly relates to the main topic. Points are insufficiently developed. Analysis is weak |
Information clearly relates to the main topic. Points are made, but analysis is minimal |
Information clearly relates to the main topic. Points and analysis are made and related to the topic. |
Information clearly relates to the main topic. Points are clearly made. Analysis is sophisticated |
0.20 | ||||||
2. Style of Writing (5%) |
The report writing does not meet the criteria for the assignment (too short or incomplete, too long, and/or completely off-topic). Reference section is missing. |
Many ideas require clarification and/or are offtopic or have marginal relevance to the assignment. Many grammatical and/or spellings errors throughout the paper. The paper is very challenging to read due to poor writing flow. Improper reference section. |
Ideas are stated clearly and are related to the topic, with only adequate grammatical and/or spelling errors. Reference section with minor flaws. |
Most ideas are stated clearly and are related to the topic, with only minor grammatical and/or spelling errors. Reference section is in minimal. |
Writing is clear and relevant, with no grammatical and/or spelling errors – polished and professional. Reference section properly formatted. |
0.05 | |||||||
3. Sources (5%) |
Some sources are not accurately documented. Diagrams and illustrations are not accurate or do not add to the reader’s understanding of the topic. |
All sources (information and graphics) are accurately documented, but many are not in the desired format. Some diagrams and illustrations are not accurate or do not add to the reader’s understanding of the topic. |
All sources (information and graphics) are documented, but an adequate amount is not in desired format. Diagrams and illustrations are neat and accurate and sometimes add to the reader's understanding of the topic. |
All sources (information and graphics) are accurately documented, but a few are not in the desired format. Diagrams and illustrations are accurate and add to the reader's understanding of the topic. |
All sources (information and graphics) are accurately documented in the desired format. Diagrams and illustrations are neat, accurate and add to the reader’s understanding of the topic. |
0.05 |