Welcome to Structured Programming 2021!

You should find all the information you need on this web site, and on the Piazza forum, which you’ll be invited to join in Week One.

This course has three broad foci:

  • introductory core computer science, such as data structures, programming language fundamentals, complexity, as well as some history;
  • software development skills, including learning the Java programming language, learning to use a distributed version control system and an integrated development environment;
  • introductory software engineering, including classic concepts in software engineering and exposure to current practice.

The course is fast-paced, particularly during the first five weeks; please carefully read the notes on Week One below. I hope that you find this course to be very rewarding, notwithstanding the fast start. Each student who completes this course should walk away with a great sense of satisfaction in completing a major project, having learned a lot, and having mastered some important software development skills along the way.

COVID-19 and Online Study

Due to COVID-19, we will continue to provide flexible study options for those of you who are unable to travel to Canberra to commence your 2021 studies on campus. Consequently, all aspects of this course will be available online until and unless the University’s policy changes. Lectures will be held live online via Microsoft Teams, with live streaming through services including Microsoft Stream. Some labs will be held in-person in the School of Computing’s Linux Labs. Other labs will be held live online via Microsoft Teams.

Enrolled students will be added to the COMP1110 team on Microsoft Teams before the start of semester. Please do not request early access.

If you will have difficulty engaging in online study, please contact CECS Student Services so that they can offer you the best support. For more details on the University’s response, please see ANU coronavirus advice.


Our lectures are scheduled as follows:

  • Monday 14:00-16:00 AEDT
  • Friday 10:00-11:00 AEDT

Lectures will be streamed via Microsoft Stream (iOS, Android) via the COMP1110 channel. To find the lectures, after you have been added to the COMP1110 team, go to the “Lectures” channel, and you should find a “COMP1110 Lectures” tab at the top (it may be hidden, check if there’s a small item that says “2 More”).

I structure lectures in well-defined modules. For each module, I start by presenting the high-level ideas, then I run an in-class quiz, and then usually I move to live coding, where I illustrate the concepts with concrete coding examples built up from first principles.

I provide you with a wide range of resources, including lecture slides, lecture recordings, and typically homework questions and related lab exercises. It is up to you to make the most of these resources. Unless you engage well with this material, you will probably struggle. The best approach is to be an active participant in the lectures and the labs.

Assessment and Administrative Overview

The course’s administrative overview is available here.

Individual Assignment

Early in the semester, you will complete a small individual assignment. All students should be able to complete four out of five parts of the assignment. The fifth part is more advanced. You should not feel disappointed if you decide not to spend time on the fifth stage.

Group Assignment

At the core of the course is a large group project, which you will complete in groups of three. The lecture and lab materials are paced to ensure you have the skills to complete the project on schedule.

Mid-Semester Exam

There will be a one-hour online mid-semester exam on Monday Week 6 at 18:00. Details will be available in Week 5.


Your success in this class depends entirely on engagement from you. You will profit because you’ll enjoy the class a great deal more, and you’ll undoubtedly see your engagement reflected in your final mark. Some students need a nudge, and in deference to them, this course has 5% of the marks attached to class engagement (this comes from participation in your lab, engagement on the Piazza forum and engagement in in-lecture quizzes).

Practitioner Cameos

In this class, you will have the opportunity to meet and interact with guest lecturers. Make the most of these opportunities.

Week One

Week One is particularly important in this course. Please be sure to complete the following by the end of Week One:

  • Attend both lectures.
  • Browse this web site. Be sure to read policies on deadlines, academic integrity and email.
  • Enrol in a lab class (enrolment is now open).
  • Sign up to the Piazza forum
  • Attend at least one lab session (in Week One, you may attend any online session):
    • Tuesday 09:00-11:00 AEDT (in-person HN 1.23/1.24)
    • Tuesday 12:00-14:00 AEDT (online)
    • Wednesday 10:00-12:00 AEST (in-person N115/116)
    • Wednesday 14:00-16:00 AEST (online)
    • Thursday 09:00-11:00 AEST (in-person N115/116)
    • Thursday 13:00-15:00 AEST (in-person N115/116)

    Online labs will be held on the COMP1110 labs channel in Teams.

  • Complete Lab 1 on a lab computer or the Linux Lab VDI, and get it marked off at one of the scheduled labs.
  • Complete Lab 1 on your own computer, and get it marked off at one of the scheduled labs (if you plan to use your own computer during the semester).

A step-by-step video shows you how to complete lab 1.

Updated:    24 Feb 2021 / Responsible Officer:    Head of School / Page Contact:    Josh Milthorpe