PROG2007 PROGRAMMING
PROG2007 PROGRAMMING II
Outcomes
This assessment task maps to the following ULOs:ULO2: design, implement, test, and debug simple programs in an objectoriented 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.
RationaleNo 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 seemobvious 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 datanalysis. 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
Visit the website at https://prog2007.it.scu.edu.au/weather and view the following pages:
https://prog2007.it.scu.edu.au/weather/sydney.html
https://prog2007.it.scu.edu.au/weather/melbourne.html
https://prog2007.it.scu.edu.au/weather/brisbane.html
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). 3Assessment BriefYou mark will be determined based on:
- Your proficiency in handling and manipulating the strings in the CSV file into suitable data types e.g.nts or doubles for values, units of measurements,start time and end time that sun protection shouldbe 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代写PROG2007 PROGRAMMING to choose and implement appropriate collections based on theconcepts you have learned in Modules 3 and 4.All code for part 1 of the assessment must be in in part1.pyPart 2
Create a Python file called part2.py. Copy the code you wrote in part 1 into the part2.py file. Then update
ur code so that it:crapes the data from the Sydney, Melbourne, and Brisbane pages using the request library andBeautiful 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, errormessagesPerforms 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.VideoYou are required to create a video explaining why you completed the assignment the way that you did. Youvideo 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 videoshould focus on the following:
- Your class design.
Any techniques you've employed to secure and validate your data.Module 1 through 5 in this unit.Task SubmissionYour 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:4Assessment Brief
- our submission must be named FirstName_LastName_A2. For example, mine would be called
Alex_Hendry_A2
- our 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 dashboardwhen submitting your assignment clearly identifying how much time you spent on each part of theassessment.
- 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 onlydifference is the A2 in the submission namePlease note that all submission instructions in this assignment and the submission video must be followedEXACTLY, including the folder names you are instructed to use. Failure to do so may result a requirement toresubmit. The reason for this is as aprogrammer, you will often work as part of a team and will be required tofollow design documentation. If the design parameters are not followed precisely, bugs will be introduced intothe software when all of the individual components of the program are assembled.Academic IntegrityUse 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 itou are not using any concepts that are not taught in the unit.ll code that was created using genAI must be clearly identified using a comment. The followingarepssible examples of comments you may use:
o This method was created using genAI.
o This block of code was partly created using genAI.
o is 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:
sing 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 ConsiderationPlease refer to the Special Consideration section of Policy.https://policies.scu.edu.au/document/view-current.php?id=140Late Submissions & PenaltiesPlease refer to the Late Submission & Penalties section of Policy.https://policies.scu.edu.au/view.current.php?id=00255Grades & FeedbackAssessments 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. Pleaseallow 7 days for marks to be posted.Assessment CriteriaIn 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 remainingcolumns), are guides to assist markers in making consistent and reliable judgements about thequality of students’ work. Rubrics may also be used to provide feedback to students about thequality 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:
- Marking criteria – the elements that the marker will consider when judging a piece of wor(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 beingassessed in the task. Use similar wording to the Unit Learning Outcome so students canclearly see the links. Additional criteria may be included to assess other relevant elements ofthe task (e.g. academic writing) but weighted minimally.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 notchieved 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 maythen be more likely to be inspired to improve their work to pass (if they are allowed toresubmit), 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 Brief7Assessment BriefAssessment 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 Distinctio(85–100%)Distinctio(75–84%)Credit(65–74%)Pass50–64%)Fail0–49%Criterion %riterion 2Criterion 3Criterion %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 esearching, analysing andapplying relevant skills and concepts, and shows exceptional ability to synthesise, integrate and evaluate knowledge. The student’s performance could bdescribed autstanding 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 andapplying relevant skills and concepts, and shows a well-developed ability to synthesise, integrate and evaluate knowledge. The student’sperformance could be describedas distinguished in relation to the learning requirements specified.Credit