• Class Number 4217
  • Term Code 3350
  • Class Info
  • Unit Value 6 units
  • Topic Intensive Course
  • Mode of Delivery In Person
  • COURSE CONVENER
    • Dr Michael McCullough
  • LECTURER
    • Dr Michael McCullough
  • Class Dates
  • Class Start Date 07/08/2023
  • Class End Date 06/10/2023
  • Census Date 18/08/2023
  • Last Date to Enrol 07/08/2023
SELT Survey Results

This course teaches introductory programming within a problem-solving framework applicable to data science. There is an emphasis on designing and writing small programs to solve data science problems that include data processing, data manipulation and data visualisation tasks. Testing and debugging are seen as integral to programming for data science. The course will also teach how to effectively use popular data science libraries for data analysis and manipulation. It will provide skills for tackling the `messiness' of real-world computer systems, libraries and their different versions, and data with a particular focus on solving problems using knowledge available on the Web. The course will be taught using the Python programming language. It will also require students to work collaboratively on software programs using the Git version control system and DevOps tools.

Learning Outcomes

Upon successful completion, students will have the knowledge and skills to:

  1. Describe basic data types, operators, functions and the flow of execution in Python
  2. Articulate appropriate Web queries to retrieve existing solutions to programming problems
  3. Apply fundamental programming concepts, using the Python high-level general-purpose programming language, to solve data processing problems
  4. Critically implement fundamental data structures in Python for data cleaning, indexing, querying, sorting, aggregating and merging operations
  5. Appraise the fundamentals of some of the most widely used Python packages for data processing and related data processing problems
  6. Use a version control, task management and continuous integration system to enable group interactions and collaborative coding
  7. Develop data processing programs that read, transform, analyse and deploy/visualise data
  8. Generate project reports and package and document Python programs for demonstration purposes

Required Resources

All materials (lecture notes, videos, Web resources, and relevant resources) will be published and accessible via Wattle.

Allen B. Downey, Think Python, 2nd edition, O'Reilly Media, 2016, Available online: https://greenteapress.com/wp/think-python-2e/.

Wes McKinney, Python for Data Analysis, 3rd edition, O'Reilly Media, 2022, Available online: https://wesmckinney.com/book/.

Kaggle: https://www.kaggle.com/.

Staff Feedback

Students will be given feedback in the following forms in this course:
  • Written comments
  • Verbal comments
  • Feedback to the whole class, to groups, to individuals, focus groups

Student Feedback

ANU is committed to the demonstration of educational excellence and regularly seeks feedback from students. Students are encouraged to offer feedback directly to their Course Convener or through their College and Course representatives (if applicable). The feedback given in these surveys is anonymous and provides the Colleges, University Education Committee and Academic Board with opportunities to recognise excellent teaching, and opportunities for improvement. The Surveys and Evaluation website provides more information on student surveys at ANU and reports on the feedback provided on ANU courses.

Class Schedule

Week/Session Summary of Activities Assessment
1 Welcome Introduction to Coding Data Structures I
2 Execution Models & Flow Control Data Formats and File I/O Functions Exercises (CodeBench)
3 Debugging Data Structures II Strings Exercises (CodeBench)
4 Searching for Help Libraries and APIs Computer Architecture Exercises (CodeBench) Assignment 1 (released)
5 INTENSIVE WEEK First Day: Content Revisited Visualisation I Lab exercises (Strings and other Data Structures) Second Day: Reading Source Code Software Development Basics - Tools and Environments Lab exercises (Functions) Third Day: Objects and Classes Tools and Practices Lab exercises (Objects & Classes) Fourth Day: Collaborating Advanced Revision Control Lab exercises (Collaborating & Version Control) Fifth Day: Visualisation II Refactoring Lab exercises (Group Assignment & Assignment 1) Assignment 1 (submission) Assignment 2 (released) Group Project (released)
6 Basic Complexity Analysis Software Design Exercises (CodeBench)
7 Optimising Code Assignment 2 (submission) Exercises (CodeBench)
8 Data Pipelines and Command Line Processing
9 Advanced Programming Group Project (submission)

Assessment Summary

Assessment task Value Due Date Learning Outcomes
Weekly exercises (20%) 20 % * 1,2,3,4,5
Individual assignment 1 (20%) 20 % 08/09/2022 1,2,3,4,5,7
Individual assignment 2 (30%) 30 % 18/09/2022 1,2,3,4,5,7
Group project (30%) 30 % 08/10/2022 1,2,3,4,5,6,7,8

* If the Due Date and Return of Assessment date are blank, see the Assessment Tab for specific Assessment Task details

Policies

ANU has educational policies, procedures and guidelines , which are designed to ensure that staff and students are aware of the University’s academic standards, and implement them. Students are expected to have read the Academic Misconduct Rule before the commencement of their course. Other key policies and guidelines include:

Assessment Requirements

The ANU is using Turnitin to enhance student citation and referencing techniques, and to assess assignment submissions as a component of the University's approach to managing Academic Integrity. For additional information regarding Turnitin please visit the ANU Online website. Students may choose not to submit assessment items through Turnitin. In this instance you will be required to submit, alongside the assessment item itself, hard copies of all references included in the assessment item.

Moderation of Assessment

Marks that are allocated during Semester are to be considered provisional until formalised by the College examiners meeting at the end of each Semester. If appropriate, some moderation of marks might be applied prior to final results being released.

Assessment Task 1

Value: 20 %
Learning Outcomes: 1,2,3,4,5

Weekly exercises (20%)

Exercises (20%): Exercises are aimed at practising specific programming concepts and algorithmic-solving skills. These must be done individually and submitted through the online CodeBench tool. A set of twenty exercises is assigned in Weeks 2, 3, 4, 6, and 7. We will take the best four out of five weekly exercises over the semester (for a maximum of 20%).


Deadline: 11:59pm Friday end of weeks 2, 3, 4, 6, and 7.


Late Policy:

No extension will be granted since the best four out of five count towards the final grade. If illness or other exceptional circumstances beyond the students' control result in them being unable to complete a minimum of four exercise sets, they must contact the course convenor as soon as possible.

Assessment Task 2

Value: 20 %
Due Date: 08/09/2022
Learning Outcomes: 1,2,3,4,5,7

Individual assignment 1 (20%)

Assignment 1 (20%): Write code for basic data manipulation, storage and analysis of a real-world dataset (provided).


Learning a new skill is often best done in teams. In this course, we encourage discussion of assignments, but the final assignment submission must be your own work. In particular, you should not consult written or electronic notes from other students when preparing your solution.


Deadline: Assignment 1 (20%) is due on Friday, Week 5 (intensive week), at 23:59.


Extensions and Late Submissions:

Students will only be granted an extension on the submission deadline in extenuating circumstances, as defined by official ANU policy. In the case where the students have grounds for an extension, they should notify the course convener as soon as possible and provide written evidence in support of the case (such as a medical certificate).

Assessment Task 3

Value: 30 %
Due Date: 18/09/2022
Learning Outcomes: 1,2,3,4,5,7

Individual assignment 2 (30%)

Assignment 2 (30%): Write code for data wrangling, analysis, and visualisation of a real-world dataset (provided) using principles of structured programming and object-oriented programming.


Learning a new skill is often best done in teams. In this course, we encourage discussion of assignments, but the final assignment submission must be your own work. In particular, you should not consult written or electronic notes from other students when preparing your solution.


Deadline: Assignment 2 (30%) is due on Monday, Week 7, at 23:59.


Extensions and Late Submissions:

Students will only be granted an extension on the submission deadline in extenuating circumstances, as defined by official ANU policy. In the case where the students have grounds for an extension, they should notify the course convener as soon as possible and provide written evidence in support of the case (such as a medical certificate).

Assessment Task 4

Value: 30 %
Due Date: 08/10/2022
Learning Outcomes: 1,2,3,4,5,6,7,8

Group project (30%)

Group Project (30%): Apply your newly learned data analysis skills in Python to an interesting problem/dataset of your choosing. Projects should involve methods for data processing and analysis or simulation, in combination with appropriate visualisation techniques.


Projects are intended to be done in groups (of up to four students); collaboration is essential and the final submission must be a joint submission. Students should indicate a rough breakdown of contributions from each group member.


Deadline: Group project (30%) is due at the end of the final week of the course, on Sunday, Week 9, at 23:59.


Extensions and Late Submissions:

Students will only be granted an extension on the submission deadline in extenuating circumstances, as defined by official ANU policy. In the case where the students have grounds for an extension, they should notify the course convener as soon as possible and provide written evidence in support of the case (such as a medical certificate).

Academic Integrity

Academic integrity is a core part of our culture as a community of scholars. At its heart, academic integrity is about behaving ethically. This means that all members of the community commit to honest and responsible scholarly practice and to upholding these values with respect and fairness. The Australian National University commits to embedding the values of academic integrity in our teaching and learning. We ensure that all members of our community understand how to engage in academic work in ways that are consistent with, and actively support academic integrity. The ANU expects staff and students to uphold high standards of academic integrity and act ethically and honestly, to ensure the quality and value of the qualification that you will graduate with. The University has policies and procedures in place to promote academic integrity and manage academic misconduct. Visit the following Academic honesty & plagiarism website for more information about academic integrity and what the ANU considers academic misconduct. The ANU offers a number of services to assist students with their assignments, examinations, and other learning activities. The Academic Skills and Learning Centre offers a number of workshops and seminars that you may find useful for your studies.

Online Submission

Weekly Exercises

The CodeBench exercises provide students with an opportunity to practice programming and debugging while at the same time being exposed to a wide variety of coding examples. Exercises are submitted via the online CodeBench framework and are graded automatically. Students receive immediate feedback and have the opportunity to correct errors and resubmit (before the deadline). The framework provides students with a dashboard showing their progress. 10 out of the 20 exercises do not need to be completed in one session --students can save exercises and return to them later. The other half is timed and need to be completed in one session. Submitting an exercise automatically saves it (and evaluates it for correctness).


Assignments

Instructions for each assignment will be provided 2-3 weeks prior to the due date. Starter code for assignments will be made available via Wattle. Assignments should be submitted via Wattle and must be the student's own work. The use of generative AI tools (e.g. ChatGPT, Google Bard AI, GitHub Co-Pilot etc.) must be clearly acknowledged. A detailed marking rubric will be published later in the course.


Projects

Projects involve the development of a more substantial piece of software than assignments. They also involve working in a team. Projects are marked based on submission of the project code and a report. Any library can be used for the projects but external code, generative AI tools (e.g. ChatGPT, Google Bard AI, GitHub Co-Pilot etc.) and other people's work must be clearly acknowledged. Students must discuss projects and intended programming languages with course staff prior to commencing the project. A detailed marking rubric will be published later in the course.


More information will be provided in the Course Overview.


The ANU uses Turnitin to enhance student citation and referencing techniques, and to assess assignment submissions as a component of the University's approach to managing Academic Integrity. While the use of Turnitin is not mandatory, the ANU highly recommends Turnitin is used by both teaching staff and students. For additional information regarding Turnitin please visit the ANU Online website.

Hardcopy Submission

Not applicable.

Late Submission

Students are expected to work consistently on assignments and projects throughout the semester. Marks will be awarded based on material submitted (i.e., through Wattle) at the assessment due date and time. Consistent with ANU policy, extensions will not be granted for mismanagement of time or resources. A doctor's certificate is required to receive an extension as a result of illness.


No submission of assessment tasks without an extension after the due date will be permitted. If an assessment task is not submitted by the due date, a mark of 0 will be awarded.

Referencing Requirements

Accepted academic practice for referencing sources that you use in presentations can be found via the links on the Wattle site, under the file named “ANU and College Policies, Program Information, Student Support Services and Assessment”. Alternatively, you can seek help through the Students Learning Development website.

Extensions and Penalties

Extensions and late submission of assessment pieces are covered by the Student Assessment (Coursework) Policy and Procedure. The Course Convener may grant extensions for assessment pieces that are not examinations or take-home examinations. If you need an extension, you must request an extension in writing on or before the due date. If you have documented and appropriate medical evidence that demonstrates you were not able to request an extension on or before the due date, you may be able to request it after the due date.

Privacy Notice

The ANU has made a number of third party, online, databases available for students to use. Use of each online database is conditional on student end users first agreeing to the database licensor’s terms of service and/or privacy policy. Students should read these carefully. In some cases student end users will be required to register an account with the database licensor and submit personal information, including their: first name; last name; ANU email address; and other information. In cases where student end users are asked to submit ‘content’ to a database, such as an assignment or short answers, the database licensor may only use the student’s ‘content’ in accordance with the terms of service — including any (copyright) licence the student grants to the database licensor. Any personal information or content a student submits may be stored by the licensor, potentially offshore, and will be used to process the database service in accordance with the licensors terms of service and/or privacy policy. If any student chooses not to agree to the database licensor’s terms of service or privacy policy, the student will not be able to access and use the database. In these circumstances students should contact their lecturer to enquire about alternative arrangements that are available.

Distribution of grades policy

Academic Quality Assurance Committee monitors the performance of students, including attrition, further study and employment rates and grade distribution, and College reports on quality assurance processes for assessment activities, including alignment with national and international disciplinary and interdisciplinary standards, as well as qualification type learning outcomes. Since first semester 1994, ANU uses a grading scale for all courses. This grading scale is used by all academic areas of the University.

Support for students

The University offers students support through several different services. You may contact the services listed below directly or seek advice from your Course Convener, Student Administrators, or your College and Course representatives (if applicable).

Dr Michael McCullough
(02) 6125 9604
michael.mccullough@anu.edu.au

Research Interests


Computational neuroscience, Nonlinear time-series analysis, Complex Systems, Network science

Dr Michael McCullough

By Appointment
By Appointment
Dr Michael McCullough
(02) 6125 9604
michael.mccullough@anu.edu.au

Research Interests


Dr Michael McCullough

By Appointment
By Appointment

Responsible Officer: Registrar, Student Administration / Page Contact: Website Administrator / Frequently Asked Questions