Assessment Brief
PROG2007 PROGRAMMING II
Summary
Title Assessment 2
Type Portfolio
Due Date Monday of Week 6 at 11:59 pm AEST/AEDT
Length NA
Weighting 60%
Academic Integrity
(See below for limits
of use where GenAI
is permitted)
Please see the Academic Integrity section below for acceptable use of
GenAI in this assessment.
Submission Please see the Submission section below on how to submit your
assessment.
Unit Learning
Outcomes
This assessment task maps to the following ULOs:
ULO2: design, implement, test, and debug simple programs in an object oriented programming language.
ULO3: demonstrate how to use class mechanisms to support
encapsulation and efficient code.
ULO4: analyse and determine appropriate data structures and iteration
methods to support a solution.
Rationale
No matter what field of IT you go into when you graduate from university the ability to develop
software in an object-oriented programming language is an important skill to have. This may seem
obvious for those students who are planning on a career in software development. However, it's also
important for those students pursuing careers in fields like networking, cyber security, and data
analysis. For networking, the ability to develop programs simplifies tasks such as device
configuration and network analysis. In cybersecurity, it's used for developing programs for
penetration testing, vulnerability scans, and automation of security incident responses. For data
analysis, programming enables efficient data manipulation and analysis, making it an indispensable
tool for extracting insights from large datasets.
Task Description
In this assignment, you will write a bot that extracts, and processes data from the following website
– https://prog2007.it.scu.edu.au/weather/
. The assignment contains two programming parts as follows:
• In part one you will design and implement an object-oriented program that reads weather
data from a csv file, stores it in an appropriate collection, and performs some simple data
analysis.
• In part two you will modify your program from part one and add the ability to handle dates
and times, log messages to a log file, and implement web scraping and data analysis
capabilities using third party libraries.
2
Assessment Brief
This assignment also requires you to create a video explaining why you completed the assignment
the way you did.
Task Instructions
Part 1
You will notice that all three pages have an identical format as follows:
• A location for the forecast.
• The date and time the forecast was last updated.
• A daily forecast covering 7 days from Friday the 6th of September until Thursday the 12th of
September.
Create one csv file called weather.csv based on the three pages (Sydney, Melbourne, and Brisbane) that
contains all of the data from the pages. You can use the following example as a template if needed or you can
create your own template. This example contains a headings row along with the data for the first record on
the Sydney forecast page:
Location,Updated Date,Forecast Date,Min Temp,Max Temp,Condition,Possible Rainfall,Chance of any
Rain,Forecast,Warning
Sydney,Forecast updated at 9:39 am EDT on Thursday 5 September 2024,Friday 6 September,Min:
21,Max: 28,Morning shower or two.,Possible rainfall: 0 to 1 mm,Chance of any rain: 50%,Partly
cloudy. Medium chance of showers in the morning and early afternoon. Light winds becoming east
to northeasterly 15 to 20 km/h in the late afternoon then becoming light in the evening.,Sun
protection recommended from 9:30 am to 4:30 pm. UV Index predicted to reach 9 [Very High]
Once you have created the csv file with all of the data from the Sydney, Melbourne, and Brisbane pages,
create a Python file called part1.py.
Your job is to write an object-oriented program in Python with a minimum of five classes that:
• Reads the data in the csv file and uses the data to create appropriate objects.
• Stores all of the objects in appropriate collection(s).
• Uses a Set to perform some basic data analysis.
Thing to think about:
• How will you handle and manipulate the strings in the csv file?
• How will you structure your classes and what relationships will the classes contain?
• What attributes should each class have and what data type should they be?
• How will you secure and validate the data in each class?
• How will you handle any potential errors in your program?
Two possible ways to approach the problem may be to:
• Have a forecast class with attributes for individual items in each forecast.
• Have an observation class and view the individual items in each forecast as an observation (similar to
the sample project used in the Live Coding sessions).
3
Assessment Brief
You mark will be determined based on:
• Your proficiency in handling and manipulating the strings in the CSV file into suitable data types e.g.
ints or doubles for values, units of measurements, start time and end time that sun protection should
be worn etc.
• How well you demonstrate ALL the class design concepts you have learned in Modules 1 and 2.
• How well you demonstrate the error handling concepts you have learned in Module 3.
• How well you demonstrate your ability to choose and implement appropriate collections based on the
concepts you have learned in Modules 3 and 4.
All code for part 1 of the assessment must be in in part1.py.
Part 2
Create a Python file called part2.py. Copy the code you wrote in part 1 into the part2.py file. Then update
your code so that it:
• Scrapes the data from the Sydney, Melbourne, and Brisbane pages using the request library and
Beautiful Soup instead of reading it from a csv file.
• Uses the datetime module for any date or time related data.
• Uses the logging module to output appropriate messages where applicable e.g. info, warning, error
messages.
• Performs some basic data analysis using pandas instead of a set.
You mark will be determined based on:
• The criteria listed in the previous section.
• How well you demonstrate the concepts you have learned in Module 5.
All code for part 2 of the assessment must be in in part2.py.
Video
You are required to create a video explaining why you completed the assignment the way that you did. Your
video should address each part of the assignment separately i.e. cover part one first, then part two.
You are not required to explain your code line by line. Rather for each part of the assessment your video
should focus on the following:
• Your class design.
• Any techniques you've employed to secure and validate your data.
• Your error handling.
• Your use of collections.
• The data analysis you chose to do.
Resources
Everything that you need to know to complete this assessment was covered in:
• Programming 1
• Module 1 through 5 in this unit.
Task Submission
Your assignment must run using Python 3. This is covered in the Getting Started section of MySCU.
The submission requirements are identical to assessment one as follows:
4
Assessment Brief
• Your submission must be named FirstName_LastName_A2. For example, mine would be called
Alex_Hendry_A2
• Your submission must contain the weather.csv, part1.py, and part2.py files correctly named.
• You are required to use the WakaTime plugin and submit a screenshot of your WakaTime dashboard
when submitting your assignment clearly identifying how much time you spent on each part of the
assessment.
• Your video must be uploaded to your student OneDrive account and shared using a link.
All of the above points are covered in the submission instruction video for assessment one. The video covers
how to submit your Python files, your screenshot of the WakaTIme dashboard, and your video. The only
difference is the A2 in the submission name.
Please note that all submission instructions in this assignment and the submission video must be followed
EXACTLY, including the folder names you are instructed to use. Failure to do so may result a requirement to
resubmit. The reason for this is as a programmer, you will often work as part of a team and will be required to
follow design documentation. If the design parameters are not followed precisely, bugs will be introduced into
the software when all of the individual components of the program are assembled.
Academic Integrity
Use of GenAi
There are no limitations on using genAI in this assignment providing you follow the following guidelines:
• You understand the code you are submitting and can explain it.
• You are not using any concepts that are not taught in the unit.
• All code that was created using genAI must be clearly identified using a comment. The following are
possible examples of comments you may use:
o This method was created using genAI.
o This block of code was partly created using genAI.
o This constructor was generated using ChatGPT.
• Your code runs without errors.
If your submission is deemed to be suspicious by your marker you may be asked to attend an interview in your
tutorial class to explain your code. If you cannot explain your code, you may be submitted for academic
integrity. Possible reasons your submission may be deemed suspicious could include:
• Using programming concepts not taught in the unit.
• Using programming concepts considered by your marker to be beyond your programming abilities as
demonstrated in the class.
• Submitting code suspected of being generated using GenAI software but is not clearly identified.
To summarise:
• You can use GenAI as much as you like as long as you clearly identify the code you submit and
understand what it does.
• DO NOT SUBMIT ANY CODE THAT YOU DO NOT UNDERSTAND AND CANNOT EXPLAIN.
Collusion
Please note that your source code for this assignment will be run through a plagiarism detection system
designed for code that compares all assignments and highlights identical or very similar submissions. If you are
found to have colluded with other students, you will be submitted for academic integrity.
5
Assessment Brief
Academic Integrity
At Southern Cross University, academic integrity means behaving with the values of honesty, fairness,
trustworthiness, courage, responsibility and respect in relation to academic work.
The Southern Cross University Academic Integrity Framework aims to develop a holistic, systematic and
consistent approach to addressing academic integrity across the entire University. For more information,
see: SCU Academic Integrity Framework
NOTE: Academic Integrity breaches include unacceptable use of generative artificial intelligence (GenAI) tools,
the use of GenAI has not been appropriately acknowledged or is beyond the acceptable limit as defined in the
Assessment, poor referencing, not identifying direct quotations correctly, close paraphrasing, plagiarism,
recycling, misrepresentation, collusion, cheating, contract cheating, fabricating information.
Special Consideration
Please refer to the Special Consideration section of Policy.
https://policies.scu.edu.au/document/view-current.php?id=140
Late Submissions & Penalties
Please refer to the Late Submission & Penalties section of Policy.
https://policies.scu.edu.au/view.current.php?id=00255
Grades & Feedback
Assessments that have been submitted by the due date will receive an SCU grade. Grades and
feedback will be posted to the ‘Grades and Feedback’ section on the Blackboard unit site. Please
allow 7 days for marks to be posted.
Assessment Criteria
In this section, outline the marking criteria and grade descriptors using an assessment rubric.
Rubrics, which contain marking criteria (left-hand column) and grade descriptors (the remaining
columns), are guides to assist markers in making consistent and reliable judgements about the
quality of students’ work. Rubrics may also be used to provide feedback to students about the
quality of their work and how they might improve. For more information on how to write a rubric,
see:
• What is a Rubric
Rubrics are commonly presented in the form of a table that includes:
1. Marking criteria – the elements that the marker will consider when judging a piece of work
(such as quality of argument, research, technical aspects, etc.). When you develop your
marking criteria, ensure that the criteria are aligned with the Unit Learning Outcomes being
assessed in the task. Use similar wording to the Unit Learning Outcome so students can
clearly see the links. Additional criteria may be included to assess other relevant elements of
the task (e.g. academic writing) but weighted minimally.
2. Grade descriptors – descriptive statements about the level. From Assessment, Teaching and
Learning Procedures, SCU’s Generic Grade Descriptors, which are general guides to the
standard of work required at each grade level (clause 7g) apply to all assessment tasks
(clause 50). Remember to include your expectations and requirements in clear,
unambiguous terminology and outline the standard expected. It is better to say what
students have achieved at each level rather than what they have not done. The exception to
this would be for the fail column, where it is appropriate to say that students have not
achieved the required standard. If a student scores between 35–49%, the Unit Assessor
should mention that they have marginally failed and highlight their mistakes. Students may
then be more likely to be inspired to improve their work to pass (if they are allowed to
resubmit), rather than becoming disheartened by a strong Fail in a single band. This will be in
line with the new resubmit policy (currently) being developed.
… continued on next page ...
6
Assessment Brief
7
Assessment Brief
Assessment Rubric
Note: The number of criteria used will vary depending on the complexity of the assessment task. Typically, 4–5 criteria are used.
Marking Criteria and %
allocation
High Distinction
(85–100%)
Distinction
(75–84%)
Credit
(65–74%)
Pass
(50–64%)
Fail
0–49%
Criterion 1
%
Criterion 2
%
Criterion 3
%
Criterion 4
%
Criterion 5
%
Description of SCU Grades
High Distinction:
The student’s performance, in addition to satisfying all of the basic learning requirements, demonstrates distinctive insight and ability in researching, analysing and
applying relevant skills and concepts, and shows exceptional ability to synthesise, integrate and evaluate knowledge. The student’s performance could be described as
outstanding in relation to the learning requirements specified.
Distinction:
The student’s performance, in addition to satisfying all of the basic learning requirements, demonstrates distinctive insight and ability in researching, analysing and
applying relevant skills and concepts, and shows a well-developed ability to synthesise, integrate and evaluate knowledge. The student’s performance could be described
as distinguished in relation to the learning requirements specified.
Credit:
The student’s performance, in addition to satisfying all of the basic learning requirements specified, demonstrates insight and ability in researching, analysing and applying
relevant skills and concepts. The student’s performance could be described as competent in relation to the learning requirements specified.
Pass:
The student’s performance satisfies all of the basic learning requirements specified and provides a sound basis for proceeding to higher-level studies in the subject area.
The student’s performance could be described as satisfactory in relation to the learning requirements specified.
Fail:
The student’s performance fails to satisfy the learning requirements specified.
8
Assessment Brief
请加QQ:99515681 邮箱:99515681@qq.com WX:codinghelp