COMP1730/6730 Home

Programming for Scientists S1 2020

Notice for Remote Students:

Students who are unable to attend campus at ANU in Semester 1, 2020 can still enrol in either COMP1730 or COMP6730 subject to the following:

  • You need to have at least semi-reliable internet with access to the following:

  • You need access to a personal computer you have the authority to install software on.
  • If you are unable to return to ANU in time for the mid-semester examination (likely in Week 6), the marks for the mid-semester examination will be rolled into the final examination marks. We will make resources available (practice examinations, etc) to assist you in preparing for the final exam.
  • The final examination must take place in person at ANU. We can delay the exam until the start of Semester 2, or even later if required - but it must take place in an ANU computer lab under examination conditions.

We are currently working through the course material to determine the best way to support remote students. At present, the majority of material is already available online but we are creating additional resources for students. Some lab groups will be offered online, so remote students can still interact with the course tutors and complete lab material as normal. More details will become available in the coming days.

Please also note that although preference for places in online tutorials will be given to remote students, all other resources will be made available to all students, not just those studying remotely.


Practical information

Note: This applies to both COMP1730 and COMP6730.

Course material and where to find it

All course material will available through this web site and the course wattle page. The wattle page will be used for interactive functions, such as forums, quizzes, and assignment submissions, while course material such as lecture slides, lab pages and assignment specifications will be found here (see the content, labs and assessment tabs at the top of the page).


The course co-convenors and lecturers are Jeff Fisher and Minh Bui.

Tutors will be announced by the course start.

Contact information

  • Any questions about course content - in other words, questions about programming, about what will be assessed, about when the next lecture is - should be posted to the discussion forum on wattle. When using the forum, consider this:

    1. Before you post a question, read the answers to the relevant questions that have already been asked. Do not repeat the same question. If you do not understand the previous answer, repeating the same question is not going to give you a different answer. Try to explain what it is that you’re missing in the previous answer.
    2. When you start a new thread, give it a descriptive topic. This will help others find your question (and the answer to it) and therefore make it easier for them to follow advice #1.
    3. Do not post solutions, or parts of solutions, to assignment problems. Not even after the deadline (we will post solutions if and when it is the right time to do so). Not even if they don’t work.

    We aim to reply to any questions posted to the forum within one working day. We will not always achieve this aim. (Also, “reply” does not always mean “answer”. Sometimes the best answer to a question is a counter-question, a pointer in a different direction, or something else other than a direct answer.)

  • Any questions for the teachers that you don’t want to discuss in public - for example, the reasons why you are unable to explain the content of your assignment submission, personal problems infringing on your studies, etc - email to This email will be read by the teachers (lecturers, and possibly some of the tutors). Emails will never be answered faster than questions posted to the wattle forum.

  • For any administrative questions (how to enrol, unenrol, rules relating to your degree, exams, etc), you should contact student services. Their office is on Ground Floor, Building #18, North Road (next to the Gym). They can also be reached via email ( or phone (02 6125 4450).

  • If you have any feedback (good or bad) about the course and you do not want to talk to the lecturer directly, your first point of contact is the student course representatives. Course reps will be chosen at the start of the semester - if you would like to volunteer, let us know by emailing

  • Only if you have to communicate with one and only one person (the lecturer, the second examiner, etc) should you use their personal email. Never send emails to both and to the lecturer.

Course outline

Note: The course page on ANU Programs & Courses has not been updated. The information below supersedes that on the Programs & Courses page.


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 processing. 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

Students who succeed in all aspects of this course will:

  • be able to design and write correct and readable small programs to solve practical data processing problems;
  • be able to read, understand and debug small computer programs;
  • understand some practical limitations on computer programs, including scaling (w.r.t. time and memory) and numeric precision (rounding errors) issues.

Assumed knowledge

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

Text books and other resources

We do not prescribe any specific text book, but strongly recommend that your acquire at least one. The following two are recommended:

  • Think Python: How to think like a computer scientist, 2nd Edition, by Allan Downey.

    This book can be be found on-line, in PDF format or as set of web pages. For convenience, a copy of the PDF version is available here. The book is also available in paperback (published by O’Reilly, 2015; ISBN-13: 978-1491939369; ISBN-10: 1491939362).

    If you get this book, it is important that you get the 2nd edition, which is written for python 3.x.

  • The Practice of Computing using Python, 2nd Edition, by William Punch and Richard Enbody (published by Addison-Wesley, 2012; ISBN-10: 0-13-280557-X; ISBN-13: 978-0-13-280557-X).
    Also with this book, it is important that you get the 2nd edition.

Neither book follows the structure of the course schedule exactly. We will provide reading guidance for both books with the schedule.

There are many resources to help you learn programming on the web. We will post links to the best ones as we find them, and we invite you to do the same.


The schedule of lectures (and labs) is available on the ANU timetabling web site. Not all scheduled lecture slots will be used in all weeks, i.e., some weeks we will have only one lecture. Check the course content & schedule pages and read the weekly news forum posts.

Lecture notes will be posted on the content pages. This may happen after the lecture.

Lectures are recorded. This includes questions asked in lectures (to the extent that they are audible). However, not all aspects of a lecture are captured by the recording. For example, whiteboard drawings and some other demonstrations are not recorded. You may also find that the resolution of recorded video is very low. Also note that recording sometimes fails. The recording system is the responsibility of the ANU central IT division. Teachers have no control over the recording system. If there is any issue with a recording, you should report it to

Updated:  12 Feb 2020/ Responsible Officer:  Head of School/ Page Contact:  Jeff Fisher