In addition to this FAQ page, this course has a dedicated help page.

Getting started

I don’t meet the course prerequisites—can I have a permission code to enrol anyway?

In general, prerequisites are there for a reason, and you certainly won’t get a permission code just because you ask for one. “I need to finish my degree by date” also isn’t a valid reason: in fact if you take this course without the required background knowledge and fail it (a definite possiblity!) then you’ll be even further behing in your completion plans.

However, in some situations you might be eligible for a permission code. You should contact CECS student services who will talk to the course convenor on your behalf. You will need to explain:

  1. why you think you already have the required knowledge for the missing prerequisite course (perhaps you’ve done a similar course, or perhaps you can point to some other reason that you believe you satisfy the prerequisites)

  2. that you understand that it’s your responsibility to catch up—if you fall behind (and fail) because you don’t know the prerequisite material then it’s on you—you’ve been warned

If you can’t answer those questions, then you won’t get a permission code. If you do get a permission code, it’s up to you to make sure you do the extra work to catch up on any background knowledge you might have missed.

Remember that there’s an hurdle oral exam in week 4, so if you do ask for (and receive) a permission code then you’ll need to make sure you can pass that assessment task (otherwise you’ll fail the course).

I want to enrol, but I’m waiting on the result of a supplementary exam—what should I do?

You need to get in touch with the convenor as soon as possible. If you do this before the course starts (or perhaps in week 1) then we are willing to give you temporary access to the course materials, etc. so that you can participate in the course as normal. If you don’t end up passing the supplementary exam for one of the prerequisite courses, then you can unenroll in this course before the census date without having to pay any fees.

If you don’t let us know about the situation until later in the course (i.e. from week 2 onwards) then even if you do pass your supp. exam it’s too late to enrol in COMP2300. You’ll start too far behind, and it’s not fair to you or the other students to put you in that difficult and stressful position. You can always take the course next year.

What do I need to do when I start the course?

Here’s a checklist:

  1. make sure you can log in to the COMP2300 forum (let me know asap if you can’t)

  2. read the course policies page carefully

  3. sign up for a lab group

What’s expected of me in this course?

As well as the usual stuff (attending labs & lectures), to keep on top of this course you’ll need to:

  1. watch & ask questions on the COMP2300 forum

  2. read the weekly lab material ahead of time, and attend your scheduled lab session

  3. start the assignments early

  4. ask questions (in lectures, during labs and on the COMP2300 forum) if you don’t understand anything—there are no dumb questions in COMP2300, and if you’re ever made to feel this isn’t the case then let me know

Why do you keep calling it COMP2300 when I’m in COMP6300?

Sorry about that—it’s nothing personal, it’s just that it’s too much hassle to write the full COMP2300/6300 each time. If there’s any information which is specific to one course group or the other, I’ll make it really clear.

Is there a textbook for this course?

There’s no physical textbook for this course, but there’s a list of good online resources on the books, links and other good things page.

What are the assessment deadlines, late penalties, etc?

Good question! It’s important to know this stuff in any uni course, so have a look at the policies.

I’ve got an Education Access Plan (EAP), can I get help with my scheduling/timetable?

Yep, if you’ve got an EAP (or similar) we are keen to make the required accommodations to help you get the most out of your studies. Send an email the course convenor and we’ll figure something out.

Forum/message board

COMP2300 uses piazza for the course forum, it’s live now so head over and check it out! If you can’t access it then get in touch asap.

This is normal—your account should already be active (we activated it for you automatically when you enrolled in the course).

You should try and log in to the forum with your usual ANU uni ID & password, it should just work. If it doesn’t, get in touch asap.


Is the discoboard mine to keep? For reals?

Yep, for reals. The only catch is that if you unenroll before census date you have to give it back.

Can I have another discoboard?

If you want another discoboard to give one to a loved one as a present (or any other reason) then you can purchase it on the internet using money. They’re not that expensive—probably around 40AUD+shipping.

You can get them from these places (or others—just make sure you’ve got the correct model, because ST actually make a few different discoboards).

I’ve lost my discoboard—what do I do?

If you lose your discoboard it’s your responsibility to get another one. So be careful!


Where are the lectures held?

The venues are listed on the lectures page.

Are the lecture slides the textbook for the course?

It is expected that you attend every lecture and make your own notes. The lecture slides aren’t a textbook—they’re visual aids to help explain the concepts in the lectures. This is a good thing—there’s nothing worse than a lecturer who just drones on reading the textbook from the slides. We’re gonna have more fun than that :)

However, this means that taking notes (in addition to the lecture slides) is an essential part of the learning process. You can’t just download the slides the night before exam and expect to be able to memorise a bunch of facts and pass the course.

Will the lectures be recorded?

The lectures will be recorded, although some elements of the lecture (including live coding sessions & in-class discussion/demonstrations/activities) may not make it onto the recordings. We’ll try our best, but some things are just hard to capture with the recording tools we have in lecture theatres.

As is always the case with technology, the lecture recordings sometimes don’t work so the only way to guarantee you’ll see the lecture is to be there.

Will I (as a student) be recorded as part of the lectures?

COMP2300 lectures are fun, interactive times of sharing and discussion (at least I hope). This means that if you answer a question in the lecture you might be captured on the audio recording. Just a heads up. If this is an issue, then let me know.

Why do you do your own recordings?

A few reasons:

  1. so that I can add my own “in lecture” camera recordings (especially when we do in-class activities)

  2. so that I can provide both clear, high-res recordings (for those who want it) and lower-quality ones (still large-ish files ‘coz they’re video)

I have a lecture clash with another course—what should I do?

That’s a bummer, but unfortunately the ANU is a big place with lots of students & courses, so this happens from time to time. It’s a tricky situation. The COMP2300 lectures will be recorded, so you could always watch the videos later (although I do think it’s usually better being there in person).

You should talk to the other lecturer anyway (especially to see if those lectures will be recorded). You could alternate between them, and watch the video of the one you missed. I hope that the COMP2300 lectures will be so good that you’ll want to attend those ones, though :)

The most important thing is that you attend your lab group—if you do that (and engage while you’re there) then I think you’ll be ok and able to keep up.


Is there a lab in week 1?


Why do labs start in week 1?

The first lab is pretty gentle, it’s mostly a chance for you to meet your tutor, pick up your discoboard, and plug everything in to see if it works. You don’t have to have attended the first lecture to do the first lab—which is a good thing because the first lab happens before the first lecture anyway.

When will lab sign-up open?

As stated on the course website since before the start of semester, lab enrolments open Monday, week 1, 12:00.

How do I sign up for labs?

Lab sign-ups happen through streams—you just log in with your usual uni ID and password and it’s pretty straightforward.

I can only attend (insert specific lab time here)—can you move me into that lab?

If you email me before lab signup opens and explain your situation then I’ll do my best to accommodate you.

If you make a request after signups have opened, the answer will be no. I cannot move you into a lab if it’s full due to the physical capacity of the rooms.

My advice is to work things around in the rest of your life as best you can so that you can attend your weekly lab session. Attending the labs is even more important than attending the lectures, since that’s where you get to practice using assembly and get feedback from your tutors. The lectures are (mostly) recorded, although the more in-class stuff you miss the more work you’ll have to do on your own time.

None of the lab times suit me, can you schedule a new lab time?

Timetabling is done by the ANU central timetabling process, we don’t have very much control over it. Sorry about that.

Why isn’t COMP2300/6300 showing up when I log in to streams?

If this course isn’t listed for you when you log in to streams, that means you’re not enrolled in the course. You need to talk to student services as soon as possible to see why; it might be because you don’t satisfy the prerequisites, it might be because you only just enrolled and you haven’t showed up in the system yet, it might be for a whole bunch of other reasons. We can’t enrol you in the course directly, so head to student services ASAP (probably best to go in person) to figure out what’s going on.

Can I have a permission code?

Talk to student service to get permission codes fro COMP2300:

Can I pick which tutor I want to have/want to avoid?

Not without a very good reason, and not just because you want to hang out a tutor who is your friend. If you have a good reason then contact the course convenor and we’ll try and sort something out.

Can I attend a different lab session?

No, you must turn up to your own lab session—these aren’t “drop-in” labs. The reason for this is so that you can get to know your tutors and labmates—they’re your primary support community for this course. In addition, the labs for this course will be mostly full this semester.

If you’re not sure which lab you’re in, have a look on streams.

Are the labs assessable?



Can I post my code on the forum to get help?

You can’t post your full assignment code publicly on the COMP2300 forum, or even significant sections of it. If it turns out that you submit the same code as someone else, then the usual academic misconduct rules apply—it’s up to you to make sure no-one else sees your code for any reason.

In general it’s not useful to dump a big chunk of code on the forum and say “it doesn’t work” anyway. So you’re not actually missing out on anything by not being able to do that. It’s much more important to figure out (line by line, if you need to) exactly what your code should be doing, and exactly where it’s not doing what you think it should be doing. Then, you can ask a specific question on the forum and get much better help with your problem.

Can I send my code to the tutor/course convenor for help?

Nope, but if you use the COMP2300 forum, the tutors (and other students) will be able to help you.

So if you email me your code then I’ll just get you to ask a question on the forum. The answer above still applies, though—so you’ll need to think carefully about how to ask your question without giving away your code.

Also, if you don’t ask for help till the week (or day!) before the assignment then I might not have time to even do that. Sorry.

So are there really no late submissions allowed?

Yep, really, it’s CS School Policy. If you hand it in even a couple of minutes late, you’ll get zero for the assignment. So push early and push often!

Does this include the Statement of Originality?

Yes, the “no late submissions” policy applies to every aspect of your submission—the code, the assets, the artist statement, the statement of originality. If it’s part of your submission, you must push it before the deadline.

But it’s 5 minutes before the deadline and my git push isn’t working—can I email you the files?

No. Only submissions through GitLab will be accepted, and only according to the rules described on this assignment page. We won’t accept submissions through email, or on other git branches, or through any process other than the one described.

This rule is necessary because there are ~400 assignments to mark, and so there’s a lot of automated infrastructure involved in preparing your assignment & getting it to/from the tutors in the marking process. Every “special case” adds significant time, and stops us being able to provide the quality feedback that you need to improve.

The only way to ensure that this process runs smoothly is to enforce the rules around the submission process—no exceptions.

Seriously, don’t leave this stuff to the last minute. Use the checklist to make sure that you’ve followed the rules.

I pushed things, but not until after the deadline—can you please accept my submission?

See above.

PlatformIO/VSCode/Git/etc. stopped working on my laptop for no reason just before the deadline—can I have an extension?

No. If you’re working on your own machine, you really need to understand the course own machine policy.

My actual assignment code was in another commit (i.e. not in HEAD), can you mark that instead?

No, sorry. Again, this is a fairness issue—at uni you’re not allowed to submit multiple assignments and then pick the mark you like best. The last commit on the GitLab server is your submission (as described above).

My assignment code has multiple features in several different branches, can you mark all of them?

Nope. The last commit on the GitLab server is your submission (as describedabove).

I’ve just realised there’s a tiny bug/typo in the assignment I submitted—can you just apply this small fix?

The course own machine policy is pretty clear. Your assignment will be marked in the VSCode/ environment provided in the labs.

If we’re marking your assignment and it’s buggy or otherwise doesn’t seem to work right we will do some basic debugging to try and get it to work. If there’s just a very small fix required to get something to work then you won’t get zero, although we will apply a penalty depending on how far the project falls short of the requirements. If we can’t get it to work (and unfortunately we can’t spend all day trying to figure it out) then we must mark what you submitted.

This isn’t a licence for to submit incomplete work and then send an email later saying “oh, can you just apply these changes and it’ll all work great”—that would be a violation of the spirit of the course’s policy on late submissions. What it means is that if there’s a really small error (a last minute typo committed by accident, etc.) that’s easily discoverable and fixable, you won’t get zero for the submission. Still, don’t rely on this being the case—test, double-test and re-test your final submission to make sure this doesn’t happen to you.

I know I haven’t followed the submission rules, but can you please make an exception just for me, just this one time?

No, sorry. I really can’t. This is because:

  • I have to be fair to the students who did follow the rules
  • I have to be fair to other students who have received penalties for not following the rules.

Look, I don’t enjoy giving penalties when students have put in hard work, and I want you to do well in this course. However, the only way to be fair is to say no to these requests every time (with the exception of legitimate reasons as described on the policies page).

Again, I really can’t stress this enough—read the assignment page carefully, start the assignment early, check that the files you want are on the GitLab server, and most importantly don’t leave your final push to the last minute!

Why does my program execute a bunch of C code before it gets to the main label?

To play sound out of the discoboard’s headphone jack, you need to turn on and configure a few peripherals (e.g. the audio codec & amplifier, plus a bunch of timers). This is a bit fiddly, and so ST (the company who make the discoboard) provide some C library code to do it for you, and that’s what the code in the template repo uses to set everything up.

You don’t have to understand what’s going on in this part—the best option is to just set a breakpoint at main and then continue (green “play” button) through the setup code, pausing when you get to your main.S source file.

I hit pause in the debugger and my editor is showing a bunch of C code that I don’t understand—how do I get back to my assembly code?

Getting dropped into the C setup code when you hit pause is normal—you’re just inside the BSP_AUDIO_OUT_Play_Sample function (or one of it’s “inner” functions).

To get back to your code in your main.S file, make sure you have an active breakpoint in that file and continue execution—it’ll stop again once it hits the breakpoint in your code.

Can I write my assignment in C?

No. This is an assembly programming course, and so you must write all of your code in ARM assembly language (just like in the labs). You will get zero for any C code you write. If there are any disputes about whether you’ve used C code in your assignment, the convenor’s decision is final.

Can I use a different toolchain to compile my assignment?

No, the course own machine policy is pretty clear. Your assignment will be marked in the VSCode/ environment provided in the labs. If your assignment doesn’t work in the provided environment (and this is likely if you aren’t using our provided tools) then you will most likely get zero.

Will my assignment be marked by a human?

Yes, it’ll be marked by your tutor. This is another reason to attend your lab session—your tutor will sometimes give advice on e.g. how to write a good design document. This information is really useful, so don’t miss the opportunity.

What tool chain is used to mark the assignments?

Assignments will be tested on a physical discoboard using build and upload and the template platformio.ini file. They are not marked using debug mode, not marked using the sample plotter, and not marked using the emulator.

If your assignment does not work on a physical discoboard (having been built and uploaded) you will lose marks. If it fails to make any sound it may be marked as zero.

What should I put in my design document for Part 2?

This is a question which gets asked a lot—so I’ve made a separate page in the resources section.

How will the design document be marked?

Writing a good design document isn’t like writing code to pass a bunch of unit tests. There’s no one “correct” design document. We will mark Part 2 of your assignment on how well it communicates what you did in your “synth” program and why. Here are the ANU rules on what level of work qualifies for the different letter grades (you can find it in Table 2 on this page).


Letter Grade

Numerical Mark (%)


High Distinction



Work of exceptional quality, as demonstrated in the attainment of learning outcomes at or above the relevant qualification level




Work of superior quality, as demonstrated in the attainment of learning outcomes at or above the relevant qualification level




Work of good quality, as demonstrated in the attainment of learning outcomes at or above the relevant qualification level




Work of satisfactory quality, as demonstrated in the attainment of learning outcomes at or above the relevant qualification level




Work in which the attainment of learning outcomes at or above the relevant qualification level has not been demonstrated

Since the design document is 100% of the mark for Part 2, does it even matter whether my code works?

Yes! Your program must actually do the things you describe in your design document. If your design document describes some amazing submission but your program doesn’t actually work, you’ll get a bad mark (probably zero if there’s really no connection between the two).

So this means that you should choose a project for Part 2 which is within your capabilities, and then focus on writing the best & clearest design document you can.

So I should just generate something really basic and write an excellent design document, right?

Well, that’s better advice than the opposite (write an amazing program and write a terrible design document). However, we will take the sophistication of your program into account, so if you choose a very simple option, then you wouldn’t get as good a mark as someone who generates a more sophisticated signal (assuming the design documents were of equal quality).

How should I create the pdf file for my design document?

Your design document must be a pdf file, but how you create that pdf file is up to you.

You can use LaTeX, MS Word, some sort of markdown→pdf workflow; it doesn’t matter. Some things which are important are:

  1. it should be clearly laid out and well organised: use headings to provide structure
  2. if you use diagrams (which is encouraged!) then make sure they’re either vector-based, or, if you need to include raster images (e.g. jpeg) make sure they’re at a high-enough resolution that they don’t look ugly and pixellated when printed at a4 size
  3. you need to have proper referencing in the document, with a reference section at the end

In Part 2, how much of the mark is for the code, and how much for the design document?

Code: 0%, design document: 100%.

Now, obviously if you haven’t written any code then you can’t write a very interesting design document (because you’ll have nothing to talk about). But it’s also true that if you write amazing code but hand in a really bad/messy/unclear design document then you’ll get a bad mark for Part 2.

So, for Part 2, it’s important to choose something that you understand, and write a good design document explaining what’s going on.

What happens if I forget to submit my design document (but the code is still there)?

If there’s no document in the part-2 branch of your repo on the GitLab server, you’ll get zero for Part 2.

Can my design document be longer than two pages?

The main part of your report cannot go over two pages. However, if you have something which makes sense to put in an appendix (e.g. a table of values for one of your calculations, or some figures/diagrams which are important but don’t really belong in the main part of the report) you can put them on an extra page. This doesn’t mean that you should just pad the report length with heaps of appendix stuff—if it’s in there, it should be because it’s relevant.

In addition, it’s ok if your references goes onto a third page.

Can I include images / diagrams in my design document?

Any images or diagrams you submit must be of sufficient quality for academic writing. That means no photos of the screen or hand drawn diagrams, with high quality screenshots as the minimum acceptable standard.

When will assignment marks & feedback be released?

We’ll try1 to release marks & feedback for all assignments within two weeks of the submission deadline.

Where can I find my marks & feedback for my assignment?

Assignment marks and feedback will be released through GitLab: a new branch called branch-name-feedbackwill be pushed to your GitLab repo for every branch branch-name in your submission repo. In each branch, there will be a feedback.yml file in the top-level directory—this file contains your feedback.

You can either pull the latest changes to your Git repo yourself, or you can view it through the GitLab web interface (note that the feedback branch is selected in the drop-down in the top-left of the picture).

Marks have supposedly been released, why can’t I see a feedback branch in my repo?

Assuming you’re looking in the right place, one reason we might not have pushed your marks & feedback is if you haven’t signed the Pledge of Integrity (PoI).

If you’re in that situation, never fear—you can see them as soon as you’ve completed the PoI. You should do that asap (i.e. make sure you’ve filled out the pledge-of-integrity.yml file in the lab 1 repo and that it passes all the CI tests) and then let your tutor know, and we’ll release your marks & feedback.

I’ve got write access to the *-feedback branch, can I change my mark and push it up?

Ha—nice try, but no.

How can I get more feedback and figure out how to do better next time?

For any assessment item, the feedback is the most important part—not the mark (although I know it doesn’t feel like it sometimes).

The main purpose of the feedback is to help you improve for next time, you will probably get actionable feedback, which might include:

  • things you did well
  • things which you could have done better
  • ideas to consider for next time

If you want more detailed feedback, you can ask your tutor a follow-up question. Don’t ask during the lab time—that’s for doing the lab work—but you can either hang around after your lab, ask them a question via email, or set up a time to get more feedback.

I don’t understand/am unhappy with my assignment mark, what should I do?

First, remember that marks aren’t everything; (I hope) you’ll remember the things you learned in this course long after you’ve forgotten your marks.

You should talk to your tutor (at a time which is convenient to them) about your assignment and get more feedback on how to improve for next time.

Remember that the tutors and I mark a lot of assignments, and we work hard to make sure things are fair for all students.

Can I get my assignment re-marked?

See the appeals policy.

Why is the comp2300-2020-marker user listed as a Developer on my repo?

This user is added automatically when you fork the template repo. It’s there so that we can mark your submission. Developer (rather than Reporter) permissions are required because (as described above) we actually push your marks & feedback as a new file in your repository, and we need to be able to push that feedback file to your repo on GitLab.

So even after the submission deadline has passed, don’t remove this user.

Sample Plotter

To assist debugging, we have developed a “sample plotter” in the VSCodium COMP2300 extension. It collects the samples you put to BSP_AUDIO_OUT_Play_Sample function and plots them. It’s basically a virtual oscilloscope.

How do I run the sample plotter?

First, make sure you can build your project successfully.

If your COMP2300 extension version is 0.7.6+, then you can run the sample plotter using the COMP2300: Plot Samples command in the command palette. It will ask you how many samples to skip at the beginning (default: 0), and how many samples to plot (default: 220).

It seems to be the case that the “samples to skip” may not work correctly due to underlying software issues, so if your program doesn’t start from where you expect it to then don’t worry, it’s not something you’re doing wrong.

The Plot Samples command will:

  1. build and upload your project
  2. launch openocd and arm-none-eabi-gdb (just like the debugger does)
  3. set a breakpoint at the BSP_AUDIO_OUT_Play_Sample
  4. run your program, breaking and recording the value in r0 each time through the loop

If the command was successful, then it will open a new document panel which looks something like this:

Plot Samples

I’ve run the sample plotter, but how do I interpret the results?

The horizontal axis is the sample index—a count of how many times the code calls the BSP_AUDIO_OUT_Play_Sample function (starting at 0). The vertical axis is the value of the sample (interpreted as a 16-bit signed integer).

The plot is interactive—you can find the controls on top of the plot.

Why aren’t there “dots” for every sample in my output signal?

Sometimes, the samples are passed through a simple linear analysis algorithm before plotting. This algorithm removes samples that are on a straight line. This can be helpful if you are plotting a signal which has multiple output values which lie on a straight line (e.g. sawtooth, triangle, square wave etc.).

This makes the plot cleaner, and improves the interactive performance of the plot (since there are fewer samples to process for each interaction).

However, if you want to see every output sample on your plot, you can turn off this feature by adding the following config option to your user/workspace settings ([Ctrl/Cmd + ,]):

"comp2300.samplot.reduce-samples": false

Are there any other settings I can tweak for the sample plotter?

Yes, and they all start with "comp2300.samplot.*". If you type “comp2300.samplot” into the settings search view you will see them (and IntelliSense will give you hints). Still, the default values for everything should be pretty good—so you shouldn’t need to mess with the settings.

How long should it take to run the plotter?

Plotting can take a while, depending on the total sum of samples to skip and collect. Once sampling begins, there will be a % progress in the notification in the bottom right corner. If that freezes or doesn’t show up then you may have other issues.

Each sample takes about 0.0195 seconds depending on your machine, so skipping 200 samples and then collecting 4000 samples would take about (200 + 4000) x 0.0195s = 81.9 seconds.

So you should be wise about how many samples you plot. It may be useful as a small testing tool, but if you need it to plot samples for 10 seconds of your song then you need to plan accordingly.

Why isn’t my sample plotter working?

If there are errors with the Plot Samples command, you can view some debug output in the OUTPUT panel: run View: Toggle Output in command palette and select COMP2300 channel in the drop down list.

If your program isn’t working right (e.g. it only calls BSP_AUDIO_OUT_Play_Sample once, or gets stuck in an infinite loop) then the sample plotter won’t work either.

If it’s taking much longer than you expect, and the debug LED on the board is still flashing, then there is probably some error in your code. To terminate it, you need to open a Task Manager / Activity Monitor, find openocd in the list, and kill it. Then arm-none-eabi-gdb should also automatically exit; if not, kill it as well.

Do I have to use the sample plotter?

No. Like most of the stuff in this FAQ section—it’s here to help if you want it, but the main thing is to generate the requested signal. You should use whatever tools and support you need to get that job done.

Course website

Why isn’t COMP2300 showing up in my Wattle?

COMP2300 doesn’t use Wattle for anything. The course should still show up in your course list in Wattle, but the course page on Wattle should just have a link to the main course website.

If it’s not showing up for you and you’ve just enrolled, wait a day or so. If it’s still not showing up, then check with student services that you’ve enrolled properly.

Why don’t you use Wattle for this site?

Because Wattle makes it really hard to put together a well-organised website. There are a few little things, for example I want to be able to add interactive widgets into my pages and other cool things like that.

But the main reason is that web sites work best when they’re linked together. If I need to refer to the lecture content on a lab page (or vice versa) I don’t want to just tell you “go see the lab 4 content” and then make you find your own way there—that’s a dumb way to make a website. Instead, I want to have a clickable link, so that when I tell you to go and see some other part of the site then I know you’ll actually do it.

I put heaps of time into making an informative and well-structured course website, which means that I expect you to use it—but I make it as easy as I can to find things.

If anything on here is confusing or you have any ideas for how to make the content better, then ask a question on the COMP2300 forum and we can make it even better.

I’ve found some inconsistent info between the website and some other place—which one is correct?

Firstly, you should raise the issue on the COMP2300 forum—this is the sort of thing we need to get fixed up right away.

If in doubt, the information on the course website is the authoritative version.


Can I use my own laptop/desktop machine?

Yep, you can, although make sure you’ve read the course’s “own machine” policy.

If you do want to go ahead with that, head over to the software setup page.

I’m having trouble getting everything working on my own computer—can I bring it to the labs for help?

The labs are one of the most important times for learning the course material, and there’s lots to learn! This means that while you can bring your own computer to labs, and the tutors might be able to give you some advice if you’re having trouble, the labs aren’t a time where we can troubleshoot all the install issues on your machine. I’m sorry that we can’t do this (I want you to get the problems sorted out as well!) but there’s just not enough time in the labs and it’s not fair to the other students.

Finally, there’s always the COMP2300 forum, although when you ask on the COMP2300 forum it’s really important to provide as much information as possible about what’s going wrong, what you’ve tried already and what you think might be the cause (otherwise it’s hard to figure out what the problem might be).

Do I have to use my own laptop/desktop machine?

Nope, you’re welcome to just use the computers in the CSIT labs and the Peter Karmel building. We’ll make sure they’ve got all the software you need.

In which software environment will my assignments be marked?

See the course’s “own machine” policy for details.

Can I use a different compiler/toolchain/text editor?

You can, although I’d strongly advise against it. If you do go down that route, check out the “own machine” policy; basically you’re marked on how it works in the official course software environment—no exceptions.

GitLab Continuous Integration (CI)

What’s continuous integration?

Continuous Integration (CI) is just a fancy name for a bunch of commands which are executed on the GitLab server every time you successfully push a new commit to your repository. This can be used to do all sorts of things, for example to check that you haven’t forgotten to commit a file (e.g. your design document). These commands are called “CI jobs”.

The reason these CI jobs runs is because there’s a .gitlab-ci.yml file in the top-level directory of your project. This name is special (so don’t change it, or it won’t work) and the stuff in this file (specified in YAML format) tells the GitLab server what commands to run after you push your code to the server.

Why am I getting “Pipeline #xxxx has failed…” emails from GitLab?

In this course we’ve enabled GitLab’s Continuous Integration (CI) feature. This means that every time you push to your fork of the GitLab template repo, the GitLab server will check things like:

  • your originality statement is properly formatted
  • you have added a design document for Part 2

This isn’t a guarantee of the “correctness” of your submission (it doesn’t actually run your code), it’s a just a checklist of the very basic things your code must do (like compile successfully).

So if all the CI tests pass, do I get 100% for the assignment?

No. It just checks the “bare minimum”.

Should I be worried if my submission fails the CI checks?

Not initially. What you need to do is have a look at what has failed and make sure that you’re working towards fixing them up. As the submission deadline approaches and you finish off your assignment you should see fewer and fewer failures.

If your final push before the deadline still doesn’t pass the checks, then that is a problem. It means that there was something seriously wrong with your submission, e.g. one of the parts didn’t compile, or you didn’t commit your artist statement to the repo. There’s nothing you can do about it at that stage, so make sure you heed the warnings early and give yourself plenty of time to fix them.

How long does my CI job take to run?

Each CI job should take around 30 seconds. However, there are a lot of students in the course, and we’ve only got a limited number of servers to run the CI jobs on, so it’s quite likely that your job won’t start straight away if the servers are already busy.

Your CI job goes into a queue and will run as soon as possible. So if a lot of people are pushing (e.g. if it’s close to the deadline) then you might have to be a bit patient.

Another reason to submit your work early :)

If the CI job takes ages to run, does that mean my code hasn’t been accepted before the deadline?

No. The CI checks are just there to provide helpful feedback to you—they have no impact on whether your code is submitted (or the time of submission).

Can I see whether my submission passes the CI checks through the GitLab web interface?

Yes. Go to the web interface for your repo, and click on “CI / CD” in the sidebar. You’ll see a view which gives you info about the last CI run (which should have happened last time you pushed).

I’m sick of getting these CI emails, can I disable them?

Yes—if you want to disable this email notification, go to your account setting in GitLab (click on your profile picture, then select Notifications). Change the notification level of your assignment repo to “Custom”, then in the pop-up window de-select “Failed pipeline”.

Can I modify the .gitlab-ci.yml file?

You are not allowed to modify the .gitlab-ci.yml file without permission. If you do (e.g. for CI server shenanigans), then the convenor reserves the right to apply penalties for bad-faith use. So don’t touch the .gitlab-ci.yml file unless you’ve got explicit written permission from the course convenor.

How do I check if my submission has been pushed to the GitLab server properly?

You can check through the GitLab website. Look at the GitLab page for your fork of the assignment repo: the files shown there are the ones we’ll mark.

If the files you want us to mark aren’t there, that might be because:

  1. you haven’t added that particular file to git yet
  2. you might have committed the files to git locally, but not pushed them to gitlab

Whatever the reason, only the files on the GitLab server count as your submission. Any other files will not be marked. No exceptions.

If you need a refresher, then lab 1 is probably a good place to look.


What is git?

git is a version control program, which means that its job is to help you take “snapshots” of your files as you work on them. If you’ve ever had to manually make “Save As…” copies of something (e.g. a Word document) with -version-1, -version-2… suffixes, you’ve used “version control” (a ghetto version of it, anyway). git is just a program to do this sort of thing automatically—to easily make (and keep track of) a bunch of snapshots of the files in a directory over time. That way you can fearlessly try things out when you’re programming, knowing that if it doesn’t work out you can just go back to a previous snapshot.

The one final piece of the git puzzle is that git allows you to keep these snapshots in sync across multiple computers. These can be any computers—your laptop might be one, but it you might also use another computer in the cloud (which is a good idea, since it doubles as a back-up). The idea is that you can change your files (i.e. create new snapshots) on whatever computer you happen to have handy at the time, and git helps you keep everything in sync.

Am I expected to know how to use git for this course?

Yes—git & GitLab have been covered in the course pre-requisites (COMP1100 if you’re an undergraduate student, and your undergraduate degree if you’re a postgraduate student). We’ll be using it a lot, and although the lab content will give you some help & tips where appropriate we’ll expect you to know what you’re doing.

If this git & GitLab stuff seems new and scary then take heart, there will be lots of help & support, right from lab 1. However, it’s crucial that if you’re not comfortable with it at the start then you put in the effort to get comfortable, since there’s no way around it in this course.

Can I submit my assignments some other way, e.g. by emailing them to you?

No—no special cases, no exceptions. Sorry, it’s the only way to run a course of this size.

How do I open a terminal window?

On a Mac, the terminal program is called It’s in your Applications > Utilities folder, or you can just search for “terminal” in the spotlight search bar (which you can bring up by hitting cmd+space or clicking on the little magnifying glass in the top-right of the screen).

On Linux (like in the CSIT labs) the program is also called Terminal, an you can find it by going to the menu in the top left hand corner of the screen—it’s in System Tools > Terminal.

On Windows the easiest way is to open the explorer, right-click the folder you want to work in and select the Git Bash Here menu item.

The GitLab help page has some more info if you get stuck (it uses the term shell, which is just another name for terminal).

What’s the difference between git & GitLab?

git is a program (like Microsoft Word) for keeping track of files (see what is git? above). The GitLab server is a website (running on a computer at the ANU) which uses git to keep track of your snapshots somewhere other than your own computer. The GitLab server never adds any new files to your snapshots, it just keeps track of the changes (commits) you’ve made once you push them to the server.

So git is the program, and GitLab is the website, although you can interact with the website both directly (e.g. with a git push) or indirectly (through the GitLab user interface in the web browser).

How do I install git?

You might already have it. Open up the terminal window and type

git --version

and if it prints something like (the exact version number doesn’t matter)

git version 2.20.1

then you’re good to go.

If you don’t have git installed (or your terminal can’t find the git program) then instead you’ll see something like

-bash: git: command not found

Never fear, the internet is full of instructions on how to install git on your machine: here’s one which you might find useful (but other ways are ok as well).

Why do we have to do all this GitLab stuff, anyway?

Using version control software (and git in particular) isn’t just a skill which is useful in this course, it’ll also help you in other courses and also in the real world (e.g. places like GitHub). You may never use it again (hey, I don’t know what you’re planning to do with your life after uni) but I suspect that most of you will.

Everything’s stuffed! Why is git so painful?

Take a deep breath, it’ll be ok. If everything really is stuffed, then the question to ask yourself is are there any changes on my local machine (i.e. things I’ve done since I last pushed to the GitLab server) that I really can’t do without? If the answer is no, then perhaps the simplest solution is to just delete the whole folder and re-clone from the GitLab server.

As always, if you get stuck, ask a question on the COMP2300 forum.

I cloned the “template” repository by mistake instead of my own fork—what do I do?

It’s ok. You just need to change the remote (the repository on the GitLab server which your local copy of the files “points” to when it tries to push them back up to the server).

Why is there no master branch in the assignment template repos?

Because you need to do your work in the part-1 and part-2 branches instead, as detailed above.

Do not create a master branch—it’s the stuff on your part-1 and part-2 branches which will be marked (as described above).

How can I check what’s pushed as my Part 1 or Part 2 submission specifically?

Click on the branch name (top-left in the screenshot above) and select the branch you want to look at. Make sure you check both the part-1 and part-2 branches! Remember, if you don’t push it, it’s as though you didn’t submit it—this goes for all branches. We will not accept any “I pushed part-1 but forgot to push part-2, can I just push it up now—I promise I did it before the deadline!” excuses.

How can I be sure I’m pushing all my work on both the part-1 and part-2 branches?

You can either push each branch individually as you go, or you can just do a

git push --all

to push all the branches on your local machine.

How can I check that I’m working on the correct git branch on my laptop/desktop/lab machine?

In your terminal (where you normally do your git stuff for this project), enter the following command:

git status

The first line of the output will say:

On branch <branch name>

where <branch name> should be either part-1 or part-2, depending on what you’re working on.

How do I switch from working on Part 1 to Part 2?

You need to change which branch you’re working on. Assuming that you’ve committed all your changes (i.e. that your working directory is clean) you can switch to the part-2 branch with

git checkout part-2

If you want to switch back, just do

git checkout part-1

I’ve just cloned my fork, but I don’t see a part-2 branch—where is it?

By default, the git clone step will only create a local branch for part-1, so if you do git branch straight after you clone, it’ll only show part-1.

However, as soon as you check out your part-2 branch, git will create a local version of that as well

Both branches were always there on your fork on the GitLab server, but the local “tracking” branch for part-2 isn’t created until you check it out.

Why does it work like this? Ask master git.2

Can I go back to working on Part 1 after I’ve already started working on Part 2?

Of course! You can switch branches as often as you like.

Do I have to type in my password all the time?

No, if you set up SSH keys then you can do all the git stuff without having to put in your password. This step isn’t necessary, but it is super-handy.

The basic idea is this: when you have trusted friends, you leave a key out for them so that they can get in to your house when you’re not home. git allows you to do sortof the same thing.

This is so that the GitLab server knows that it’s you (you don’t want someone else submitting something on your behalf). Added bonus: no more passwords.

I’ve borked my git repo somehow, how do I fix it?

There are lots of things which could have gone wrong, and without knowing what the exact error message is it’s hard to say how to fix it.

If you ask a question on the COMP2300 forum then make sure you clearly state what the situation is, what behaviour you expect, and what behaviour you see (including any error messages).

Where can I learn more about git?

Here’s a list (in no particular order) of git help resources on the web—if you find another page which is helpful then let me know and I can add it here:

  • main git docs page: always a good place to find things (there are even some videos)

  • a general list of tips for dealing with git problems: useful if you’ve got intro trouble and you want a one-liner fix to get you out (although copy-pasting git commands you don’t understand will sometimes fix things, and sometimes make it worse)

  • Using Version Control in VS Code: not git-specific, but it gives specific advice on using version control in VSCode (there’s a video version if you’re into that sort of thing)

  • using git reset: sometimes useful for “undoing” git stuff you don’t actually want

  • Five Key Git Concepts Explained the Hard Way: this has some detailed explanations, so it won’t make sense if you’ve never seen git before, but understanding this stuff in depth will really help you become a git master


What’s markdown?

From the commonmark website:

Markdown is a simple way to format text that looks great on any device. It doesn’t do anything fancy like change the font size, color, or type — just the essentials, using keyboard symbols you already know.

How do I write markdown?

Anytime you open a file in VSCode with a .md or .markdown file extension it’ll automatically detect that it’s a markdown file, and give you special highlighting of bold/italics/headings etc. You just write it and save it (and commit it to Git) just like any other file.

Is there a nice, gentle markdown tutorial somewhere?

There is indeed. Thanks, internet :)


What’s YAML?

It’s a structured file format, like csv or json or xml or many others that you’ve seen before.

Where can I learn the YAML syntax?

There’s really not very much syntax, so you’ll probably be able to figure it out as you go along (we’ll always provide a template to get you started). Still, here are a couple of good resources:

If you find any more helpful resources then let me know and I’ll add them to the list.

What are some common YAML “gotchas”?

  • not leaving a space between the key and the value
bad:no space

good: there's a space here
  • using a colon inside a string, e.g. in a url

# note the quote marks
good_url: ""
  • getting the indentation wrong
  - one
    - two
 - sevenish

  - one
  - two
  - sevenish

How can I check if my YAML file is valid?

There are a bunch of online YAML validators which can help you out here, e.g. Copy-paste the contents of your file in there and see what it says.

Why is there so much YAML in this course?

Whenever you’re asked to edit & submit a yaml file as part of your lab/assignment submission it’s because we want some specific information from you. We could just get you to write it free-form in a text file, but then you might get confused about exactly what info you’re supposed to provide, and in what format.

By using a structured data format like YAML, you can check (validate) the information (using the provided YAML plugin for VSCode) on the fly—before you even push your code. For example, you’ll sometimes have to tell us your uni ID as part of your submission. We could just say “put your uni ID at the top of the file, you’ll lose marks if it’s incorrect/not present”. Or, we can have you enter it in a YAML file which is validated to check that it’s correct. So if you put:

uid: u12546548 # whoops! too many numbers!

you’ll get an error right there in VSCode (which you can fix straight away) rather than getting marked down for incorrect information on your assignment. Pretty cool, huh?

Ok, so structured data is good, but why YAML specifically?

All structured data formats suck, but some less than others. YAML is a pretty nice balance between human and machine writeability. This is important - to ensure that we validate the feedback files it’s necessary to process them and extract structured data.

Markdown is really nice for writeability, but parsing it results in a bunch of hacks and ad-hoc rules. Json & csv are nice for machine-readability, but pretty crappy for human writeability. YAML is a nice balance (and there’s editor support for validation in most text editors).

What does YAML stand for?

I reckon your Google-fu is probably strong enough to figure that out for yourself :)

Academic integrity

Can I use code I didn’t write myself in my assignment submission?

Yes, unless the assignment page forbids it. But you must reference it in your statement of originality—if you don’t, that’s academic misconduct (and neither of us want that).

For more details, see the instructions on filling out your statement of originality.

Will my submission be run though plagiarism detection software?


What happens if I’m suspected of academic misconduct?

If you’re suspected of academic misconduct, for example if there’s some code in your assignment which is identical to some code from somewhere else (e.g. another student’s submission or code from the internet) that you have not referenced in your statement of originality, then there’s a formal process which we have to follow:

  1. you’ll receive a “Potential Academic Misconduct” email—this is a template email that we are required to send in this situation

  2. (optional) you’ll get an opportunity to meet with the course convenor to explain why your code is the same/similar to code found on the internet (or whatever your particular situation is)

  3. the convenor will make a decision and inform you via email of the decision and any follow-up steps required

I’ve received a “Potential Academic Misconduct” email—what do I do?

You should read the full email carefully—it’s got all the details, including the proposed time for the meeting.

Receiving this email doesn’t mean that you’ve been found guilty of academic misconduct—maybe there’s an innocent explanation. You will get the chance to meet with the convenor to explain your situation. If you can’t attend the meeting, you’ll get a chance to explain the situation via email.

However, if you want to argue that there’s been a mistake (and that you’re not guilty of the academic misconduct charge) then you need to make a strong case. If your code is exactly the same as another student’s code (or some code from the internet) then “I’ve never seen that code before” isn’t a likely explanation. If your code is mostly the same but a few bits have been re-arranged/changed (e.g. variable names) then that’s even more suspicious, and you’ll need to have a good explanation for why this has happened.

I did plagiarise some code/words/assets, what can I do?

If you did take code or assets from somewhere else without attribution then the best thing you can do is admit it, apologise, take the punishment and make sure you never do it again. Apologising isn’t a magic “get out of jail card”, but it does make it more likely that you’ll received the lesser charge of poor academic practice rather than the more serious academic misconduct.

Why is the email so formal-sounding?

As described above, there’s a formal template for these emails. We’re required by the ANU to send an email which looks like that.

What should I say in the “Potential Academic Conduct” meeting?

If you have used someone else’s code or other assets (without acknowledging it in your SoO) then the best thing to do is to come clean and admit it.

If, however, there is nothing in your submission which isn’t yours (or is explicitly acknowledged in your SoO) then your job in the meeting is to answer the question: why is your code the same or similar to someone else’s code?.

Here are a few answers which are not satisfactory:

  1. “I don’t know why it’s the same”
  2. “it’s a coincidence”
  3. “I worked with my classmate/found some code on the internet/etc. but I forgot to reference it”
  4. “I’m sure I referenced it, I don’t know why it’s not listed in my statement of originality”
  5. “my classmate must have copied off me without my knowledge”
  6. “I didn’t know it wasn’t allowed”
  7. “I understand how the code works, so it’s not plagiarism”
  8. “I’m an honest person, I’d never cheat!”
  9. “it’s only a few lines of code, it’s no big deal”

If you don’t have a good answer to the question then you’re unlikely to convince anyone that you’re not guilty of academic misconduct.

I was disorganised and ran out of time to fill out my statement of originality; can I email it to you now?

No, for three reasons:

  1. the course policy is really clear that the SoO is part of your submission, and you can’t submit it after the deadline any more than you can submit a late assignment

  2. there’s no way for us to know if you did genuinely forget or if you tried to get away with it and are just claiming that you forgot because you were caught

  3. it’s not fair to all the other students—the rules were really clear, and they took the time (which they could have spent on other assignments) to follow the rules. As with any other assessment item at university it’s up to you to manage your time and make sure that these things get done properly

However, if this is what happened, it’s still good to tell the truth, because that will work in your favour when it comes to determine whether it’s a case of poor academic practice (rather than the more serious academic misconduct).

I’m an honest person, this whole thing is really unfair—why do I have to go through it?

A charge of potential academic misconduct is never made lightly. If you get one of these emails it means that there is some specific evidence which suggests that you’ve done something wrong.

The purpose of this process is not to discuss your character in general, it’s only about this specific incident. So you need to focus on answering the question above: why is your code the same or similar to someone else’s code?.

Don’t come in saying things like “I’m insulted that you’d even accuse me of this…”, that’s just a general statement about your character (and that’s not what’s on trial in this process). Instead, you need to discuss the specific evidence in your case. We really hope there’s an innocent explanation for what’s happened, but the case will be decided based on the evidence (including any new evidence you can provide in the meeting).

What if I can’t attend the proposed meeting time (e.g. if I’m out of the country)?

If you can’t attend the meeting in person, then you can either:

  1. suggest an alternate time (must be within a couple of days of the suggested time—you can’t postpone the meeting for a month or more)

  2. submit your response via email

  3. (perhaps) conduct the meeting over Skype

All of these other options are only possible if they are suitable for the course convenor.

Do I have to attend the meeting?

No, you don’t have to even respond to the email. If you don’t, then the convenor will make a decision based on the evidence they have available.

What are the possible outcomes from a “Potential Academic Misconduct” email & meeting?

The possible findings from the convenor are:

  • no breach has occurred
  • poor academic practice (PAP) has occurred
  • it appears to be more serious than poor academic practice, and could potentially be academic misconduct (in this case the convenor doesn’t make the decision, it is referred to the registrar who will make the final decision)

What’s the difference between poor academic practice and academic misconduct?

The main difference between poor academic practice (PAP) and academic misconduct (AM) is that AM is a more serious breach of the academic integrity rules. Usually, a PAP finding results in an academic penalty for the assessment item (depending on the severity of the breach) while an AM finding would usually result in a grade of 0 for the entire course. However, all of the penalties are determined on a case-by-case basis.

The ANU website has more information on what counts as PAP vs AM.

One final point to make is that you don’t automatically get a PAP (rather than AM) finding if it’s your first offence. For example (from Grounds for potential academic misconduct) if

the student’s explanation is inconsistent with other compelling evidence (e.g. the student denies copying even though the assessment item contains material that is clearly copied from another identified source)

then this can be a reason for a finding of Academic Misconduct, even for a first offence.

What is the penalty if I’m found guilty of Poor Academic Practice (PAP)?

It depends on a bunch of things; whether you admit it and apologise, whether it looks like you tried to hide the fact that you were using someone else’s code (e.g. by changing variable names), whether it’s just one line or a whole function/class, etc. While the penalty for PAP is usually to get zero for that assessment item, there’s no mathematical formula—the penalty will be determined by the convenor on a case-by-base basis.

But I just forgot to reference that one thing, why am I still guilty of academic misconduct?

Because that’s what you already claimed in your Statement of Originality, which says right at the top:

I declare that everything I have submitted in this assignment is entirely my own work, with the following exceptions:

When you submitted your work with that statement you told us that everything else in your submission was yours.

This is the reason why there are so many reminders about the importance of acknowledging other people’s work in your SoO (and also so many reminders about checking and double-checking that everything has been submitted to GitLab). It sucks to receive the penalty for just forgetting to do something, but I really do feel like this course goes above and beyond to warn you of your obligations in referencing other people’s work.

Can I appeal the decision?

You can appeal any academic misconduct finding (although again, you’ll need to make a strong case why you feel there’s been a miscarriage of justice). Information on how to appeal will be in the email you receive notifying you of the finding.

Do you enjoy dealing with academic misconduct cases?

No, I really don’t. It’s not fun to see students stressed out, it’s a whole bunch of paperwork, and it also makes me sad for the other students who did do the right thing (since I could be using that time & energy to help them out).

So make sure you correctly reference everything which isn’t yours in your statement of originality and you won’t have to worry about any of this stuff.

Statement of originality (SoO)

How do I fill out my statement-of-originality.yml?

As discussed in the course academic integrity policy, for every assignment you must submit a statement of originality (SoO) in the form of a YAML file called statement-of-originality.yml in your submission repo. There will be a “template” file in the assignment repo, you just need to add your own information (and commit and push it up)

Make sure you read the file so that you know what you’re committing to! If you’ve collaborated with a classmate or used some code written by someone else (e.g. from one of the labs, StackOverflow or any other place) then you must acknowledge it in your SoO. Anything which isn’t explicitly listed there is assumed to be your own work, and if it turns out that’s not true, the usual academic integrity rules apply.

Do I have to be specific about which files I’ve copied/taken inspiration from?

Yes. It’s not enough to say “I found some inspiration from OpenProcessing” or something equally vague—if you don’t indicate specifically the things you’ve used (with an author and title if it’s a book, a URL if it’s an online code resource or video, or a full name if it’s a classmate/other person).

If that specific information for a source isn’t in your statement of originality, then we’ll assume you haven’t used that source in any way.

See below for an example of how to fill out your statement of originality.

What if base my submission on someone else’s code, but I’ve made changes?

You must credit the original author in your SoO, even if you’ve made non-trivial changes. Otherwise, it’s still plagiarism—even though you’ve done some of your own work as well.

What about references for the design document in the assignment “Part 2”s—do they go in the SoO?

In Part 2, if you refer to or incorporate some existing literature (e.g. Wikipedia) in your design document you shouldn’t put that in your SoO. Instead, you should list that in the References section at the end of your design document.

So do I have to submit a separate SoO for both Part 1 and Part 2?

Yes. The template SoO is in the repo—all you have to do is make the changes based on your specific assignment. It’s not too tricky (but don’t leave it till the last minute).

Do I have to reference images/music/words/videos from the internet as well as code?

Yes, of course! That’s why there’s an assets section in the Statement of Originality (see example below). The whole point of the SoO is that you’re claiming that everything in your major project is your own original work except for the things you explicitly list in the SoO.

What happens if I don’t change the SoO file from the version in the template?

We’ll assume that everything is your own work, and you’ll receive a small (10%) penalty for your overall assignment mark.

You really need to fill out your SoO correctly—it’s not fun to be involved in a plagiarism case because you ran out of time/forgot to fill out your SoO.

I’m having problems getting my head around this YAML stuff, what should I do?

It’s ok—you’ll get the hang of it. Read the YAML section in the FAQ, and ask a question on the forum if you’re still stuck.

Can I see an example of a completed SoO?


# put *your* name and uid here
name: Gustav Gustavsson
uid: u2548636

declaration: >-
  I declare that everything I have submitted in this assignment is entirely my
  own work, with the following exceptions:

# add as many "name+comment" entries as necessary
  - name: Alice McGuffin
    comment: >-
      Alice and I discussed stragegies for dealing with overflow in the
      signal value, but we never saw each other's code
  - name: Jerry Wang
    comment: >-
      Jerry suggested an algorighm for generating a sine wave, but we never saw
      each other's code

# add as many "url+licence+comment" entries as necessary
  - comment: the if/else statement at labelX is based on an answer from StackOverflow
    url: ""
    licence: CC BY-SA 2.5

The final marks & grades are out, and…

…I got a DA grade

A DA grade means Deferred Assessment, which probably means that you were sick (with a medical certificate or other legit reason) for the final exam.

…I got a PX grade

As stated on the policies page:

If you receive a PX grade you are eligible for supplementary assessment. The assessment item may be an assignment, a written exam, an in-lab test, or an oral exam. If you pass this supplementary assessment item you will receive a PS grade and a mark of 50. If you fail, you will receive a grade of N and a mark of 44.

In many courses, the supplementary assessment is another exam. However, COMP2300 is not most courses. For example, if you did ok on the final exam but your major project wasn’t up to scratch, then you might be required to re-submit your major project as your supplementary assessment. Your supplementary assessment might be different to another student’s—it depends on what you need to do to demonstrate you’ve achieved the course learning outcomes.

You will receive an email from the convenor shortly with more instructions—including what your specific supplementary assessment task is, what the deadlines & process is, etc.

…I got an NCN grade

This means that either you enrolled in the course, but didn’t participate in the course at all.

More information on the policies page.

…I’ve failed—is my weekend/semester/degree/life ruined?

No, it’s not the end of the world. Take it as a chance to come back again next year and really nail this stuff. And you can still keep your discoboard.

However, you should also talk to student services (either via email or by visiting the office on Level 2 of the CSIT building) about structuring your courses around taking COMP2300 again next year. Again, it’s no big deal, but the earlier you start planning, the better.

…I’m not happy with my mark

We work really hard to make sure the course grades are a fair reflection of your performance in the course and your attainment of the learning outcomes.

First, remember that grades aren’t everything, and (I hope) you’ll remember the things you learned in this course long after you’ve forgotten your marks.

There is an official ANU process for assessment appeals, see that page for more information. The tl;dr is that first you get in touch with the convenor as per the course’s appeals policy, and if you’re not happy with how that goes you can escalate it to a formal appeal.

It’s important to be clear that the purpose of the appeals process is to correct serious miscarriages of justice in the grading process—it’s not an opportunity to quibble about the marking of a certain question on the exam and try and get a couple of extra points. Again, it’s not that we don’t care about your learning (we do!) but we’re trying our hardest to be fair to all students, and so we won’t just give extra marks because you ask for them.

Note that appeals may take some time to resolve (potentially sometime in S1 next year). I know that you might be frustrated, but whatever the outcome I’d ask for your patience during this process (unless you’re graduating in July 2020 there’s no huge rush on getting marks/grades changed if that is the outcome).

  1. We’ll try really hard—but in large classes it’s not always possible to hit this two week deadline. 

  2. Do not actually ask master git—master git is not a real person. This is a joke. Receiving bad advice from master git is not an acceptable excuse for late or incorrect assignment submission. 

Updated:    08 Jul 2020 / Responsible Officer:    Head of School / Page Contact:    Charles Martin