• Class Number 4220
  • Term Code 3430
  • Class Info
  • Unit Value 6 units
  • Mode of Delivery In Person
    • Dr Dan Andrews
    • Dr Brian Parker
  • Class Dates
  • Class Start Date 19/02/2024
  • Class End Date 24/05/2024
  • Census Date 05/04/2024
  • Last Date to Enrol 26/02/2024
SELT Survey Results

This course teaches introductory programming, fundamental programming language and computer science concepts, and computational problem solving illustrated with applications common in science and engineering, such as simulation and data analysis, visualisation and machine learning models. The course does not require any prior knowledge of programming, computer science or IT. There is an emphasis on designing and writing correct programs: testing and debugging are seen as integral to the programming enterprise.

Learning Outcomes

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

  1. Design and write programming code to solve practical problems of a scientific or engineering nature.
  2. Ability to read, test and debug small computer programs.
  3. Advanced ability to use key python libraries for data processing and visualisation.
  4. Advanced understanding of widely-used algorithms and data structures, and their computational complexity.
  5. Advanced understanding of design approaches used in scientific pipelines, including data abstraction and array-based and object-oriented programming.
  6. Advanced understanding of algorithm design paradigms, such as dynamic programming, and their scientific applications.
  7. Understand and apply principles of high code quality.
  8. Communicate effectively to both specialist and non-specialist audiences about data processing problems in writing and verbally.

Research-Led Teaching

Examples in class will be based on the Lecturers' experiences in computational science and others.

Required Resources

Students are assumed to have achieved a level of knowledge of mathematics comparable to at least ACT Mathematics Methods or NSW Mathematics or equivalent. No programming, Computer Science or IT experience or skills are required.

There are no prescribed texts. We recommend:

"Think Python: How to think like a computer scientist" (2nd Edition) by Allan Downey.

 Available from http://greenteapress.com/wp/think-python-2e/, or in paperback (O'Reilly, 2015; ISBN-13: 978-1491939369; ISBN-10: 1491939362).

"A Primer on Scientific Programming with Python" (5th Edition) by Hans Peter Langtangen.

Available from https://link.springer.com/book/10.1007/978-3-662-49887-3

Whether you are on campus or studying remotely, there are a variety of online platforms you will use to participate in your study program. These could include videos for lectures and other instruction, two-way video conferencing for interactive learning, email and other messaging tools for communication, interactive web apps for formative and collaborative activities, print and/or photo/scan for handwritten work and drawings, and home-based assessment.

ANU outline recommended student system requirements to ensure you are able to participate fully in your learning. Other information is also available about the various Learning Platforms you may use.

Staff Feedback

Students will be given feedback in the following forms in this course:

  • written comments
  • verbal comments
  • feedback to whole class, groups, individuals, focus group etc

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). Feedback can also be provided to Course Conveners and teachers via the Student Experience of Learning & Teaching (SELT) feedback program. SELT surveys are confidential and also provide the Colleges and ANU Executive with opportunities to recognise excellent teaching, and opportunities for improvement.

Other Information

The use of Generative AI Tools (e.g., ChatGPT) is permitted in this course, given that proper citation and prompts are provided, along with a description of how the tool contributed to the assignment. Guidelines regarding appropriate citation and use can be found on the ANU library website (https://libguides.anu.edu.au/generative-ai). Marks will reflect the contribution of the student rather than the contribution of the tools. Further guidance on appropriate use should be directed to the convener for this course. Access to Generative AI Tools may be restricted during examinations.

Class Schedule

Week/Session Summary of Activities Assessment
1 Introduction; functional abstraction Intro to Python programming and administrative stuffs.
2 Data types; functions Main Python datatypes and variables like integer, floating-point, string, bool. Declaring and calling functions.
3 Control flow: branching and iteration Branching statement like if else and recursion. Iteration statement like while and for.
4 Sequence data type; strings Sequence data types like string, list, tuple, the concept of slicing. Character encoding, string operations, iteration over sequence elements.
5 Code quality, testing, and debugging Best practice about code quality like commenting, documenting, naming, organising code and code efficiency. Interpreting errors like syntax errors, runtime errors or semantic errors. Debugging and testing.
6 Sequences Advanced; Data science More advanced topics like list comprehension, list of lists, objects by reference. Simple data analysis like CSV file format, reading and storing tables, sorting, summary statistics, visualisation using matplotlib.
7 Functions Advanced; Files and I/O Advanced features like namespace, scope, local vs global names, more recursions. Concepts of Input/Output, files, directories, reading, writing text files.
8 Dictionaries and sets; Numpy arrays Dictionary (dict type), set type. The concept of Numpy arrays, motivation, Numpy basics and vectorization.
9 Computational complexity Algorithm complexity, big-O notation, searching and sorting, NP-completeness.
10 Errors and exception; Dynamic programming Types of errors, raising and catching exceptions. Recursion vs. iterations, concept of dynamic programming, DNA sequence alignment.
11 Modules and program; Computational science Modules, import modules, command-line program, argument parser. Special topics in computational science.
12 Floating point numbers; Exam revision Binary numbers, bits and bytes, floating point representation, precision. Final exam information, conditions and requirements, types of questions, Q&A session.

Tutorial Registration

On Wattle

Assessment Summary

Assessment task Value Learning Outcomes
Homework 1 3 % 1,2,3,4
Homework 2 3 % 1,2,3,4
Homework 3 3 % 1,2,3,4
Homework 4 3 % 1,2,3,4
Homework 5 3 % 1,2,3,4
Project assignment 35 % 1,2,3,4
Final exam 50 % 1,2,3,4

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


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 Integrity 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 Academic Skills website. In rare cases where online submission using Turnitin software is not technically possible; or where not using Turnitin software has been justified by the Course Convener and approved by the Associate Dean (Education) on the basis of the teaching model being employed; students shall submit assessment online via ‘Wattle’ outside of Turnitin, or failing that in hard copy, or through a combination of submission methods as approved by the Associate Dean (Education). The submission method is detailed below.

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.


Required for labs with homework assessment.


One final exam.

Assessment Task 1

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

Homework 1

The goal in this assessment is to read and understand a simple program, and modify it so that it works correctly. The assessment will be of the submitted, working program. Each submission will be assessed individually per student and may be auto-marked to appraise code function.  

Assessment Task 2

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

Homework 2

The goal in this assessment is to write a function that implements a simple artificial neural network. The assessment will be of submitted program containing the function. Each submission will be assessed individually per student and may be auto-marked to appraise code function.  

Assessment Task 3

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

Homework 3

The goal of this assessment is to put in practice simple arithmetic operations, control flow statements (branching and iteration), and functions. The assessment will be of a submitted program containing two functions. Each submission will be assessed individually per student and may be auto-marked to appraise code function.  

Assessment Task 4

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

Homework 4

The goal in this assessment is to implement a solution to the common problem of approximating an unknown function based on a sample of function values. The assessment will be of a submitted program containing a function. Each submission will be assessed individually per student and may be auto-marked to appraise code function and include marks for code quality.  

Assessment Task 5

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

Homework 5

The goal in this assessment is to implement a simple cellular automata. The assessment will be of a submitted program containing two functions. Each submission will be assessed individually per student and may be auto-marked to appraise code function and include marks for code quality.  

Assessment Task 6

Value: 35 %
Learning Outcomes: 1,2,3,4

Project assignment

The assignment has two components: software component (written in Python) and a written report. Assessment of the assignment will include a viva conducted by the student's tutor, to discuss the solution and demonstrate understanding of their work.

Assessment Task 7

Value: 50 %
Learning Outcomes: 1,2,3,4

Final exam

The examination duration is 3 hours and 10 minutes. This consists of 3 hours writing time, and an extra 10 minutes to let students handle downloading and uploading files, and checking that they submit what they intend to submit.

Academic Integrity

Academic integrity is a core part of the ANU culture as a community of scholars. The University’s students are an integral part of that community. The academic integrity principle commits all students to engage in academic work in ways that are consistent with, and actively support, academic integrity, and to uphold this commitment by behaving honestly, responsibly and ethically, and with respect and fairness, in scholarly practice.

The University expects all staff and students to be familiar with the academic integrity principle, the Academic Integrity Rule 2021, the Policy: Student Academic Integrity and Procedure: Student Academic Integrity, and to uphold high standards of academic integrity to ensure the quality and value of our qualifications.

The Academic Integrity Rule 2021 is a legal document that the University uses to promote academic integrity, and manage breaches of the academic integrity principle. The Policy and Procedure support the Rule by outlining overarching principles, responsibilities and processes. The Academic Integrity Rule 2021 commences on 1 December 2021 and applies to courses commencing on or after that date, as well as to research conduct occurring on or after that date. Prior to this, the Academic Misconduct Rule 2015 applies.


The University commits to assisting all students to understand how to engage in academic work in ways that are consistent with, and actively support academic integrity. All coursework students must complete the online Academic Integrity Module (Epigeum), and Higher Degree Research (HDR) students are required to complete research integrity training. The Academic Integrity website provides information about services available to assist students with their assignments, examinations and other learning activities, as well as understanding and upholding academic integrity.

Online Submission

You will be required to electronically submit all your homework, project assignment and final exam on Wattle.

Hardcopy Submission


Late Submission

Individual assessment tasks may or may not allow for late submission. Policy regarding late submission is detailed below:

  • Late submission not permitted. If submission of assessment tasks without an extension after the due date is not permitted, a mark of 0 will be awarded.

Referencing Requirements

The Academic Skills website has information to assist you with your writing and assessments. The website includes information about Academic Integrity including referencing requirements for different disciplines. There is also information on Plagiarism and different ways to use source material.

Extensions and Penalties

Extensions and late submission of assessment pieces are covered by the Student Assessment (Coursework) Policy and Procedure. Extensions may be granted 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 Dan Andrews
0493 827 725

Research Interests

Bioinformatics, Genomics, Computational Biology

Dr Dan Andrews

By Appointment
Dr Brian Parker

Research Interests

Dr Brian Parker


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