Programming for Scientists S1 2021
Please be aware that this website is currently being updated in preparation for Semester 1, 2021. If you are looking for the Semester 2, 2020 version, please refer to the archive tab.
- Read about studying this course remotely!
- Contacts (ask a question, tell us something)
- Course material:
- Assessment (assignments, exams, rules, and applying for exceptions)
- Schedule: see the ANU timetabling web site.
- Read the weekly information posts in the news forum on the course wattle page.
- Read the course content & schedule and assessment pages, and check regularly for updates.
Note: This applies to both COMP1730 and COMP6730.
At this time, we are planning for conducting the course almost entirely on-line. The only exception will be the catch-up labs on Friday which will run both online and in person in HN 1.23 (Hanna Neumann Building #145). Students who are on campus should be able to use InfoCommons and CS lab computers to participate in the on-line classes.
To study remotely, you must have:
Reliable internet with access to
You must have access to a personal computer that you are allowed to install software (the python programming environment) on.
As an alternative, you may be able to use the software available on ANU computers through a virtual desktop. However, you should test it thoroughly, and make sure you have a reliable and high-bandwidth connection, before you consider this option.
More information about the software requirements and how to setup and use the VDI is available on the labs page.
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).
We will be using teams for live on-line
lectures and for you to interact with tutors during labs. You should
be able to log into teams using your ANU id (
uNNNNNNN). There will
be separate teams for lectures and for each of the lab groups: to join
a team you will need an access code, which will be posted on the
course wattle page.
Live lectures will be recorded so that you can watch them later if you cannot attend. For some lectures, we will provide pre-recorded video instead of a live lectures (in particular in those weeks where Monday is a public holiday). The details will be posted on the content and schedule page and the course wattle page.
The course co-convenors and lecturers in Semester 1 are Jeff Fisher and Minh Bui.
Tutors will be announced at the course start.
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:
- 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.
- 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.
- 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, etc - email to email@example.com. This email will be read by the teachers (both 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 enroll, unenroll, rules relating to your degree, exams, etc), you should contact student services. They can also reached via email (firstname.lastname@example.org) 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, please complete this short web-form.
Note: The course page on ANU Programs & Courses has not been updated. The information below supercedes 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.
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.
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 or 3rd 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.