首页 > > 详细

辅导 CPT204 AY2425 Coursework 3 Task Sheet辅导 Java程序

Coursework 3 Task Sheet

CPT204 AY2425

CW3 Introduction

Coursework 3 is the final coursework component of the course this semester, which accounts for 40% of your final mark. You will form. a team of two with your classmates and apply object-oriented principles and advanced data structures, as you have learned throughout the semester, to solve the tasks specified in this document. You will be tasked with writing a report and creating a video presentation to demonstrate your knowledge of 1. object-oriented concepts, 2. problem-solving techniques, 3.  AI-assisted  team cooperation, 4. equality, diversity, and inclusion principles, and 5. planning and self-learning in object-oriented programming.

You are required to submit the following files:

Java code in a ZIP file;

A Word report;

An MP4 video;

A PowerPoint (PPT) presentation used in the video.

Phase

Date

Task Sheet Release

Week 9, Monday, 14th of April, 9:00 am (UTC+8).

Submission

Week 12, Sunday, 11th of May, 11:59 pm (UTC+8).

Late Submission

Week 13, Monday-Friday, 12th-16th of May.

5% lateness penalty per day, max 5 days

(Monday-Friday), no submissions are accepted after

11:59 pm (UTC+8), 16th of May.

Tasks Overview and Requirements

Overview

For Tasks A and B, you are required to design and implement an application for planning road trips in the USA. Assume the user will input a starting city/origin (e.g., New York) and an ending city/destination (e.g., Chicago). In addition, the user will input zero, one, or more places of interest (e.g., NASA Space Center, Hollywood Sign, and so on. Once implemented, your solution must find a route from the starting city to the ending city in a way that visits each of the places of interest while keeping the number of miles driven (the total distance) to a minimum.

With this objective, you are supplied two files in CSV format, as described here:

1. attractions.csv ---  A  file  with  names  of places of interest. The  user may choose to stop at zero, one or more of the places listed in this file. The file is in CSV format with two columns, in order:

a.  Names of the places of interest (e.g., Statue of Liberty)

b.   Location (city and state; e.g., New York is the name of the city, NY is the abbreviation of the state)

Fig.1 Preview of the file attraction.csv

2. roads.csv --- A file with names of cities and the distances between them. The user must choose one starting city and one ending city available in this file. The file is in CSV format with three columns, in order:

a.  CityA (city, state; point/node A)

b.  CityB (city, state; point/node B)

c.  Distance (between A and B; in miles)

Fig.2 Preview of the file roads.csv - for instance, row 1 indicates that from New York NY to Los Angeles CA is 2800 miles

Since the road network forms a graph, your program must leverage graph-based shortest path algorithms. In other words, once the user has input a starting city, an ending city, and a set of places of interest, your solution should return the shortest route in the shortest possible algorithmic running time.

In Task C, you will be given four extra datasets of different sizes and orders, which may serve as the final database for this project in the future. Your task is to evaluate and analyze the performance of the three algorithms we have learned (i.e., Insertion, Quick, and Merge) on these datasets and report your findings.

Task D requires you to provide a general summary of the entire project, focusing on how you utilized AI-assisted tools for project management, how you implemented the principles of equality, diversity, and inclusion during development, and what you have gained from this project as a developer.

Task E requires you to create a  PPT and use it to deliver an oral report of your project in the form of a video. Both  PPT and the video (.mp4) are required to be submitted.

Task A - Program Design

Recall the scenario. Since the users will input the starting city, ending city, and the places of interest, the solution must have one function to determine the route with a signature similar to the following:

Listroute(String startingCity, String endingCity, List attractions)

This function could take the user-input starting city, ending city and list of attractions. (The list of attractions does not have a particular order.) This function returns a list representing the route the user should take.

In the report, you must think and include a description of the type or class contained by the returned list (hence the "?" character in the code above). You should also describe  and justify  your  design  by  considering  the  questions from the following aspects:

Data Structure

○   What  data  structure(s)  will  you  use to  represent the data  in the file “attractions.csv”?

○   What  data  structure(s)  will  you  use to  represent the data  in the file “roads.csv”?

Classes and Functions (Feel free to use UML/code screenshot)

What classes did you use?

What public or private functions would the classes have?

○    How  are  these  functions/classes  implemented,  and  how  do  they collaborate/interact in your solution?

OOP Principles (Feel free to use UML/code screenshot)

○   What   object-oriented   principles   (e.g.,    encapsulation,   inheritance, polymorphism,  abstraction)  have  been  applied  in  your  overall  Java program solution?

○    How are these  principles applied specifically?  For example,  how did you encapsulate user input data to avoid directly manipulating raw data structures?

Why are these OOP principles important to your program?

Task B - Algorithm Evaluation: Graph

The implementation of your program must accept one or more queries from the user. The implementation must respond with a path (the optimal route) based on a graph algorithm. An example of the output is as follows (user’s inputs in green):

Fig 3. Example Output

In the report, you need to provide the output of the following cases with the total route distance calculated and displayed in the console (see Fig 3):

Houston TX to Philadelphia PA via no place of interest

Philadelphia PA to San Antonio TX via Hollywood Sign

San Jose CA to Phoenix AZ via Liberty Bell and Millennium Park

After that, you should also evaluate the implementation of your graph algorithm by considering the following questions:

What graph algorithm do you use and why?

How is the algorithm implemented in the program?

●   What is the time and space complexity of your chosen algorithm (in Big-O notation)?

●   What   is  the   optimality/sub-optimality   of  your  algorithm  in  terms  of  its efficiency?

●    (In  the   case  where  the  algorithm  is  sub-optimal)  What  can  be  a  better alternative and why?

Task C - Algorithm Evaluation: Sorting

In  this  task,  you  need  to  critically  evaluate  the  performance  of  different  sorting algorithms for potential usability requirements. You are therefore given the following test datasets to evaluate the performance of three sorting algorithms taught in class, namely Insertion, Quick, and Merge.

●    1000places_sorted.csv - contains 1000 alphabetical names of places that are already sorted (A-Z), one per line

●    1000places_random.csv  -  contains   1000   random  alphabetical  names  of places, one per line

●    10000places_sorted.csv - contains  10000 alphabetical names of places that are already sorted (A-Z), one per line

●    10000places_random.csv  -  contains  10000  random  alphabetical  names  of places, one per line

In the report, you need to provide the following table summarizing the test results.

You can use System.nanoTime() or System.currentTimeMillis() to calculate the time.

Datasets

Insertion

(ns/ms)

Quick (ns/ms)

Merge

(ns/ms)

1000places_sorted

1000places_random.csv

...

Table 1. Template table for sorting algorithm performance

In addition, you need to finish this task by considering the following questions:

●    Based on your test data, which of these sorting algorithms does the order of input (i.e., sorted versus random) have an impact on? Why?

●    Based on your test data, which of these sorting algorithms does the size of input (i.e., 1000 versus 10000) have an impact on? Why?

●    If  you  were  to  sort  a  dataset  containing  duplicate  values,  which  sorting algorithm would you choose among Insertion, Quick, and Merge sort? Why?

●    If  you  were  to  implement  sorting  in  a  system  with  limited  memory  (e.g., embedded system), which of these algorithms would you choose? Why?

Task D - Project Reflection

Now that you have coded the project, you are required to provide a critical project reflection section in the report, considering the following aspects:

AI-assisted planning and collaboration

○    How do you use AI tools (such as JIRA and Trello as we mentioned in the  class)  to   help  with  the   planning  and  collaboration  (e.g.,  task allocation) in the project?

○   What do you think are the advantages and disadvantages of using the AI-empowered software management tools?

●    ● Recognition of equality, diversity, and inclusion

○    Illustrate your understanding of the definition and benefits of applying equality, diversity, and inclusion principles in the current project.

○    Based on these  principles,  in what areas can the current project be optimized in the future? (e.g., based on the equality principle, one may think  of  providing  features  like  text-to-speech  for  visually  impaired users and so on).

○   What challenges might arise when applying the improvement above, and how can these challenges be addressed?

Conclusion

○    How did completing this project improve your skills and knowledge as a programmer and software developer?

Task E - Project Presentation

Finally, you are required to create a video explanation with PPT slides to illustrate your project in a succinct manner with the following requirements.

●   Briefly introduce the project (e.g., project purpose, key objectives).

●   Explain   how   OOP   principles  are  applied   in  the   project  (Encapsulation, Inheritance, etc.).

●   Explain  how  the  graph algorithm works to calculate the shortest path using another test case that is different from the ones required in the report.

●   Considering  the  size and order differences, explain which types of datasets that Insertion Sort, Quick Sort, and Merge Sort are  best  suited  for respectively?

●   Conclude   your  presentation  with   a  proper  reflection  regarding  planning, collaboration,  application of equality, diversity, and  inclusion principles, and future plans.

Report Requirements

Structure

The purpose of your report is to show how you solved Tasks A, B, C, and D in a well-detailed manner. You need to organize your report in the following format.

Coursework submission cover page

○    (This page is compulsory. You can download the template from the CPT204 LMO homepage.)

Chapter 1 – Program Design (Task A)

(You may add sub-chapters)

Chapter 2 – Graph Algorithm (Task B)

(You may add sub-chapters)

Chapter 3 – Sorting Algorithm (Task C)

(You may add sub-chapters)

Chapter 4 – Project Reflection (Task D)

(You may add sub-chapters)

Chapter 5 – Program Code

○    Include all your code in Chapter 5 as text, copy and paste each source file content into the report. The use of screenshots in Chapter 5 will result in an automatic total mark of 0 for the entire coursework task.

Chapter 6 - Contribution Form

Use the following table to indicate your contribution:

Student ID

Contribution (%)

Note: The total percentage is  100%. That is, if you and your teammate contribute  equally  to  this  project,  both of you  should fill 50% in  the table.

Chapter 7 – Appendix

○  You  may  use  this  section  to  include  any  supplementary  sources  (e.g., output of the sorting tests).

Formatting

Write your report using Word with the following settings:

Font Calibri, Font Size 12, Line Spacing 1.5, Normal Margins.

●   The  page  limit  is  a  maximum  of 20 pages,  excluding the  cover page and Chapters 5-7.

●   Consider using images and diagrams to improve the readability of your report.

Coding

●   You  must  only  use  libraries that are covered in CPT204 (including in Liang textbook). Violating this by using third-party libraries that are not covered in CPT204 (e.g., JGraphT) will result in an automatic total mark of 0.

Plagiarism,  copying,  collusion,  using  or  consulting  unauthorized  materials (e.g., copying code from sharing forums and/or generative AI tools, including, but not limited to, ChatGPT/DeepSeek) will not be tolerated and will be dealt with in accordance with the University Code of Practice on Academic Integrity

Project Presentation Requirements

Create a PPT presentation and video explanation (Task E) satisfying the following requirements:

●   Clearly demonstrate your understanding of the project in terms of program design, algorithm implementation, analysis, and project reflection in a succinct manner.

●   You can use any template for your PPT, not limited to the XJLTU standard theme.

●   The video must not exceed 8 minutes in length. You must use your own voice for  narration  and  appear  on  camera  (i.e.,  show  your  face  in  the  video).

Exceeding the time limit, using English audio translation software for narration, or failing to show your face will result in a score of 0 for Task

E.

Submit to the LearningMall:

○   A video file in MP4 format,

○   The PPT file presented in the video.

Submission Requirement

Submit the following files in accordance with the requirements above. Four separate submission portals (links) will be set up for each file on LMO:

A ZIP file containing ALL your code files;

A Word file for the report;

An MP4 file for the video recording;

A PPT file that is used in the video recording.




联系我们
  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp
热点标签

联系我们 - QQ: 99515681 微信:codinghelp
程序辅导网!