﻿ Python计算思维代写 CITS1401代写 – 天才代写

# Python计算思维代写 CITS1401代写

2022-06-30 11:12 星期四 所属： CS代写 浏览：361

## CITS1401 Computational Thinking with Python

Python计算思维代写 Project 2: Value: 20% of CITS1401. To be completed individually.You should construct a Python 3 program containing your solution to the

### Project 2:

Value: 20% of CITS1401.

To be completed individually.

You are expected to have read and understood the University’s guidelines on academic conduct.

Following this policy, you may discuss with other students the general principles required to understand this project, but the work you submit must be the result of your own effort. Plagiarism detection, and other systems for detecting potential malpractice, will therefore be used. Besides, if what you submit is not your own work then you will have learned little and will, therefore, likely, fail the final exam.

You must submit your project before the submission deadline listed above. Following UWA policy, a late penalty of 5% will be deducted for each day (24 hours), after the deadline, that the assignment is submitted. No submissions will be allowed after 7 days following the deadline except approved special consideration cases.

### Overview   Python计算思维代写

Congratulations!! The researchers at UWA were very impressed by your 3D facial analysis skills in Project-1. They have decided to seek your help in another exciting project. They analyse 3D distances between significant facial landmarks to perform face recognition. They also analyse the relationship of these distances with certain syndromes, like Autism. For example, last month they published a research paper which found that the parents of autistic children had larger 3D facial distances compared to normal adult population. You can find out more about their work here and here.

#### The researchers now want to analyse ten 3D Euclidean distances between 15 significant facial landmarks.   Python计算思维代写

These distances on one face can then be used to calculate similarity with other faces in the data set to see which faces are closer to (or look like) the reference face. Table 1 provides the details of each landmark while Figure 1 shows their location on the face. Table-2 gives you the details of the distances to be calculated. Remember these distances are between the landmarks mentioned in Table-1.

In this project, you are required to write a computer program that can read the data from a CSV (comma separated values) file provided to you. The file contains the 3D coordinates in X, Y and Z axes for the 15 facial landmarks mentioned in Table 1 for each adult. For simplicity, the landmark abbreviations are provided in the CSV file instead of their full names. Your task is to write a program which fulfills the following requirements.

The output variables returned are:

```>>> OP1 = [{'FW': 128.0695, 'OCW': 93.9636, 'LEFL': 33.092, 'REFL': 32.6327,
'ICW': 32.1305, 'NW': 31.7842, 'ABW': 18.3002, 'MW': 46.8504, 'NBL':
40.0941, 'NH': 62.7722}, {'FW': 123.9306, 'OCW': 100.081, 'LEFL': 34.4401,
'REFL': 32.3075, 'ICW': 37.3563, 'NW': 43.815, 'ABW': 28.1968, 'MW': 63.467,
'NBL': 38.416, 'NH': 60.9737}]

>>> OP2
0.9932

>>> OP3
[[('L8682', 0.9995), ('C9721', 0.9993), ('J0951', 0.9993), ('K5219',
0.9992), ('N0889', 0.9991)], [('A5474', 0.9991), ('D2742', 0.9987),
('H1286', 0.9982), ('G8293', 0.9976), ('U0216', 0.9975)]]

>>> OP4
[{'FW': 125.5241, 'OCW': 91.6592, 'LEFL': 31.7918, 'REFL': 31.2151, 'ICW':
31.2196, 'NW': 32.9661, 'ABW': 19.4147, 'MW': 48.1833, 'NBL': 39.1743,
'NH': 61.2486}, {'FW': 123.5339, 'OCW': 98.5101, 'LEFL': 31.9901, 'REFL':
32.1118, 'ICW': 36.7311, 'NW': 42.4031, 'ABW': 27.3566, 'MW': 57.6451,
'NBL': 42.074, 'NH': 63.3527}]```

There are few more requirements for your program.

• Your program needs to validate the inputs to the main() function and gracefully terminate if invalid inputs are provided.
• You program needs to terminate gracefully if the file cannot be found or opened. For graceful terminations, you need to print the message related to the problem and return None for each unavailable output.
• Your program needs to validate the input data from the file. The X,Y or Z coordinate (or all coordinates) of a landmark could be corrupted or missing. In that case the value in the cell would be empty or out of bounds. If data is not correct, then entire row needs to be discarded.
• If a particular landmark of a face is missing or corrupted, then consider the entire adult’s record corrupt.
• It is possible that the Research Assistant marking these landmarks on the faces could have forgotten to mark/ record a landmark. In this case, that particular landmark will be missing from the CSV file. You should follow the protocol given above in such cases.
• Your program needs to consider that record of the landmarks for a particular Adult may not have any specific order or can be in any order (excluding header row).
• The columns in the CSV file can be in any order and the headings are case insensitive i.e. AdultID, Landmark, X, Y and Z.
• Your program needs to convert all text data in the csv to be upper order alphabets to ensure that program is case insensitive.

Note that you have not been asked to write specific functions. This task has been left to you. However, it is essential that your program defines the top-level function main(csvfile, adultIDs) (hereafter referred to as “main()” in the project sheet to save space when writing it. Note that when “main()” is written it still implies that it is defined with its two input arguments). The idea is that within main(),the program calls the other functions. (Of course, these functions may then call further functions.) This is important because when your code is tested on Moodle, the testing program will call your main() function. So, if you fail to define main(), the testing program will not be able to test your code and your submission will be graded zero. Don’t forget the submission guidelines provided at the start of the project sheet.

### Things to avoid:  Python计算思维代写

There are a few things for your program to avoid.

• You are not allowed to import any Python module. While use of many of these modules,e.g. csv or math is a perfectly sensible thing to do in production setting, it takes away much of the point of different aspects of the project, which is about getting practice opening text files, processing text file data, and use of basic Python structures and sequences.
• Do not assume that the input file names will end in .csv. File name suffixes such as .csv and .txt are not mandatory in systems other than Microsoft Windows. Do not enforce that within your program that the file must end with a .csv or any other extension (or try to add an extension onto the provided csvfile argument).
• Ensure your program does NOT call the input() function at any time. Calling the input() function will cause your program to hang, waiting for input that automated testing system will not provide (in fact, what will happen is that if the marking program detects the call(s), it will not test your code at all which may result in zero grade).
• Your program should also not call the print() function at any time except for the case of graceful termination. If your program has encountered an error state and is exiting gracefully then your program needs to return as mentioned in additional requirements and print an appropriate message.

Disclaimer: Although this project addresses a real-world problem, the files provided to you contain synthetically generated data.

### Submission:  Python计算思维代写

Submit your solution on Moodle before the deadline as per details provided at the start of the project sheet.

You need to contact unit coordinator if you have special considerations or making a submission after the mentioned due date.

### Marking Rubric:

Your program will be marked out of 30 (later scaled to be out of 20% of the final mark).

22 out of 30 marks will be awarded based on how well your program completes a number of tests, reflecting normal use of the program, and also how the program handles various states including, but not limited to, different numbers of rows in the input file, missing asymmetry record and / or any error states. You need to think creatively what your program may face. Your submission will be graded by data files other than the provided data file. Therefore, you need to be creative to look into corner or worst cases. I have provided few guidelines from ACS Accreditation manual at the end of the project sheet which will help you to understand the expectations.

8 out of 30 marks will be awarded on style (5/8) “the code is clear to read” and efficiency (3/8) “your program is well constructed and runs efficiently”. For style, think about use of comments, sensible variable names, your name at the top of the program, etc. (Please watch the lectures where this is discussed).

#### Style Rubric:    Python计算思维代写

 0 Gibberish, impossible to understand 1-2 Style is really poor or fair 3-4 Style is good or very good, with small lapses 5 Excellent style, really easy to read and follow

Your program will be traversing text files of various sizes (possibly including large csv files) so you need to minimise the number of times your program looks at the same data items.

#### Efficiency Rubric:

 0 Code too incomplete to judge efficiency, or wrong problem tackled 1 Very poor efficiency, additional loops, inappropriate use of readline( 2 Acceptable or good efficiency with some lapses 3 Excellent efficiency, should have no problem on large files, etc.

Automated testing is being used so that all submitted programs are being tested the same way. Sometimes it happens that there is one mistake in the program that means that no tests are passed. If the marker is able to spot the cause and fix it readily, then they are allowed to do that and your – now fixed – program will score whatever it scores from the tests, minus 4 marks, because other students will not have had the benefit of marker intervention. Still, that’s way better than getting zero. On the other hand, if the bug is hard to fix, the marker needs to move on to other submissions.

### Extract from Australian Computing Society Accreditation manual 2019:    Python计算思维代写

As per Seoul Accord section D, A complex computing problem will normally have some or all of the following criteria:

– involves wide-ranging or conflicting technical, computing, and other issues;

– has no obvious solution, and requires conceptual thinking and innovative analysis to formulate suitable abstract models;

– a solution requires the use of in-depth computing or domain knowledge and an analytical approach that is based on well-founded principles;

– involves infrequently-encountered issues;

– is outside problems encompassed by standards and standard practice for professional computing;

– involves diverse groups of stakeholders with widely varying needs;

– has significant consequences in a range of contexts;

– is a high-level problem possibly including many component parts or sub-problems;

– identification of a requirement or the cause of a problem is ill defined or unknown.