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:
- Describe basic data types, operators, functions and the flow of execution in Python
- Articulate appropriate Web queries to retrieve existing solutions to programming problems
- Apply fundamental programming concepts, using the Python high-level general-purpose programming language, to solve data processing problems
- Critically implement fundamental data structures in Python for data cleaning, indexing, querying, sorting, aggregating and merging operations
- Appraise the fundamentals of some of the most widely used Python packages for data processing and related data processing problems
- Use a version control, task management and continuous integration system to enable group interactions and collaborative coding
- Develop data processing programs that read, transform, analyse and deploy/visualise data
- 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.
Recommended Resources
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:
- Student Assessment (Coursework) Policy and Procedure
- Special Assessment Consideration Policy and General Information
- Student Surveys and Evaluations
- Deferred Examinations
- Student Complaint Resolution Policy and Procedure
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
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
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
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
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).
- ANU Health, safety & wellbeing for medical services, counselling, mental health and spiritual support
- ANU Diversity and inclusion for students with a disability or ongoing or chronic illness
- ANU Dean of Students for confidential, impartial advice and help to resolve problems between students and the academic or administrative areas of the University
- ANU Academic Skills and Learning Centre supports you make your own decisions about how you learn and manage your workload.
- ANU Counselling Centre promotes, supports and enhances mental health and wellbeing within the University student community.
- ANUSA supports and represents undergraduate and ANU College students
- PARSA supports and represents postgraduate and research students
Convener
![]() |
|
|||
Research InterestsComputational neuroscience, Nonlinear time-series analysis, Complex Systems, Network science |
Dr Michael McCullough
![]() |
|
Instructor
![]() |
|
|||
Research Interests |
Dr Michael McCullough
![]() |
|