代写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.




热门主题

课程名

mktg2509 csci 2600 38170 lng302 csse3010 phas3226 77938 arch1162 engn4536/engn6536 acx5903 comp151101 phl245 cse12 comp9312 stat3016/6016 phas0038 comp2140 6qqmb312 xjco3011 rest0005 ematm0051 5qqmn219 lubs5062m eee8155 cege0100 eap033 artd1109 mat246 etc3430 ecmm462 mis102 inft6800 ddes9903 comp6521 comp9517 comp3331/9331 comp4337 comp6008 comp9414 bu.231.790.81 man00150m csb352h math1041 eengm4100 isys1002 08 6057cem mktg3504 mthm036 mtrx1701 mth3241 eeee3086 cmp-7038b cmp-7000a ints4010 econ2151 infs5710 fins5516 fin3309 fins5510 gsoe9340 math2007 math2036 soee5010 mark3088 infs3605 elec9714 comp2271 ma214 comp2211 infs3604 600426 sit254 acct3091 bbt405 msin0116 com107/com113 mark5826 sit120 comp9021 eco2101 eeen40700 cs253 ece3114 ecmm447 chns3000 math377 itd102 comp9444 comp(2041|9044) econ0060 econ7230 mgt001371 ecs-323 cs6250 mgdi60012 mdia2012 comm221001 comm5000 ma1008 engl642 econ241 com333 math367 mis201 nbs-7041x meek16104 econ2003 comm1190 mbas902 comp-1027 dpst1091 comp7315 eppd1033 m06 ee3025 msci231 bb113/bbs1063 fc709 comp3425 comp9417 econ42915 cb9101 math1102e chme0017 fc307 mkt60104 5522usst litr1-uc6201.200 ee1102 cosc2803 math39512 omp9727 int2067/int5051 bsb151 mgt253 fc021 babs2202 mis2002s phya21 18-213 cege0012 mdia1002 math38032 mech5125 07 cisc102 mgx3110 cs240 11175 fin3020s eco3420 ictten622 comp9727 cpt111 de114102d mgm320h5s bafi1019 math21112 efim20036 mn-3503 fins5568 110.807 bcpm000028 info6030 bma0092 bcpm0054 math20212 ce335 cs365 cenv6141 ftec5580 math2010 ec3450 comm1170 ecmt1010 csci-ua.0480-003 econ12-200 ib3960 ectb60h3f cs247—assignment tk3163 ics3u ib3j80 comp20008 comp9334 eppd1063 acct2343 cct109 isys1055/3412 math350-real math2014 eec180 stat141b econ2101 msinm014/msing014/msing014b fit2004 comp643 bu1002 cm2030
联系我们
EMail: 99515681@qq.com
QQ: 99515681
留学生作业帮-留学生的知心伴侣!
工作时间:08:00-21:00
python代写
微信客服:codinghelp
站长地图