In addition to this FAQ page, this course has a dedicated help page.
Getting started#
What do I need to do to start the course?#
Here’s a checklist:
-
make sure you can log in to the COMP2300/6300/ENGN2219 forum (let me know asap if you can’t)
-
read the course policies page carefully
-
Browse the rest of this FAQ page to see if there are any other important questions that are answered below.
-
attend the first lecture and lab in week 1 to understand the course details
Can I complete this course remotely?#
Please see the following page.
Can I have a permission code to enrol?#
If you would like to enrol in COMP2300/6300/ENGN2219 but need a permission code, please see the instructions and application form on this page.
Do not email the course convenor about permission codes.
Is there a textbook?#
The textbook for the course is Digital Design and Computer Architecture. There is also a a list of good online resources on the books and links page.
I’ve got an Education Access Plan (EAP), can I get help?#
Yes, we are very happy to made adjustments to accommodate students with an EAP or any other issues that affect accessibility of the course. Ask a question on the forum, or send an email to the course convenor and we’ll figure something out.
Is there office hours?#
At the moment, no. For now, labs are your best way to get one-on-one in-person help.
Forum#
We use Ed for the course forum. If you can’t access it then get in touch asap.
Microbit#
This course requires a BBC micro:bit v2 to complete some learning activities and assessments.
How do I get a microbit?#
We will give you one in your week 6 lab session.
Is the microbit mine to keep?#
Yep. The only catch is that if you unenroll before census date you have to give it back.
I’ve lost my microbit!#
If you lose your microbit it’s your responsibility to get another one. So be careful!
Lectures#
See the lectures page.
Labs#
Is there a lab in week 1?#
Yes.
When will lab sign-up open?#
Lab signups are available on MyTimetable. See there for opening date.
How do I sign up for labs?#
See above.
The lab I signed up for isn’t available anymore? or I need to change my registered lab#
If it is before week 4, then you can change your lab allocation yourself. For instructions on how to do that, please see here.
If it is after week 4, then things are a bit more difficult, see below for more info.
Labs I can attend are full!#
If you ask a question to instructors on the course forum we will consider your case, but the answer might be no as labs have capacity limits that are out of our control. Our main advice is to organise your life so that you can attend required classes.
Can I attend a different lab?#
You can go to whichever labs you want provided there is space in the lab, but if it is busy then tutors will prioritise helping students that are enrolled in that particular lab. So do try to go to your own lab, especially at the beginning of semester when labs are busy.
Are the labs assessable?#
No, however they are crucial for your understanding and completion of the course.
Contacting your tutors#
If you want to get in touch with your tutor, you can message them directly on the forum. The tutors in this course are really great and they will try really hard to help you out—although the usual advice about not leaving things to the last minute applies here. If you feel like you’ve got an issue you can’t talk to your tutor about for whatever reason, then contact us directly.
Assignments#
Can I post my code on the forum?#
No, you can’t post your full assignment code publicly on the forum, or even significant sections of it.
Can I send my code to tutors/lecturer?#
No, but if you use the forum, the tutors (and other students) will be able to help you.
My actual assignment code was in another commit (i.e., not in HEAD), can you mark that instead?#
No, the last commit on the GitLab server is your submission.
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—help?#
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. Your mark will reflect that the project falls short of requirements.
Can I write my assignment in (insert language here)?#
No. You must write all of your code in the language specified in the assignment/exam question.
Can I use a different toolchain / program for my assignments?#
We can only provide help and concessions for the prescribed tooling within the course. If you use anything else, that is up to you and if it isn’t compatible with our tooling then you won’t receive marks.
Will my assignment be marked by a human?#
Yes, it’ll be marked by a tutor. You will get specific feedback on your submissions. You are also welcome to ask your tutor in lab for more feedback, however please be patient in these scenarios as the assigned lab content is the priority.
What tool chain is used to mark the assignments?#
Assignments in Digital will be marked in Digital.
Assignments in ARM assembly will be tested on a physical micro:bit using build and upload from VSCode. They are not marked using debug mode and not marked using the emulator. If your assignment does not work on a physical micro:bit (having been built and uploaded) you will lose marks.
When will assignment marks & feedback be released?#
We’ll try to release marks & feedback for all assignments within two weeks of the submission deadline. In large classes it is sometimes not possible to meet this 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-feedback
will be pushed to your GitLab repo for every
branch branch-name
in your submission repo (where branch-name
is an expected
submission branch, eg. main
). In each branch, there will be a feedback.md
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).
Make sure you’re looking at your fork to find the feedback branch! (You should see your uid in the url)
Marks have supposedly been released, why can’t I see a feedback branch in my repo?#
Assuming you’re looking in the right place, it could be that we are still looking at your work to determine issues related to academic integrity. Ask your tutor on the course forum and they can provide more information.
How can I get more feedback and figure out how to do better 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 ask on the course forum.
I don’t understand/am unhappy with my assignment mark, what should I do?#
Remember that the tutors and I mark a lot of assignments, and we work hard to make sure things are fair for all students. You should ask your tutor on the course forum about your assignment and we can help you understand our marking decision.
Can I get my assignment re-marked?#
See the appeals policy.
Course website#
Why isn’t COMP2300/6300/ENGN2219 showing up in my Wattle?#
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.
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 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.
Software#
Can I use my own laptop/desktop machine?#
Yep, you can, 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?#
Labs aren’t necessarily for troubleshooting, please ask on the forum.
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
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
- your code compiles successfully
- your files test successfully
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).
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.
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.
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:
- log onto the gitlab website
- click on your profile picture and select Preferences
- select Notifications
- change the notification level of the offending repo to Custom
- 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, then the convenor reserves the right to
apply penalties for bad-faith use, including an academic integrity investigation.
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:
- you haven’t added that particular file to git yet
- 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.
git#
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 and store these on another computer. In COMP2300, the other computer is our gitlab server, and you share your code with us so that we can mark it :-D
Am I expected to know how to use git for this course?#
Yes—git & GitLab have been covered in the course pre-requisites, these are vital skills for computing courses and professional life. If you are unsure about the details, you need to start learning about it from week 1. Set yourself a goal of being a git-wizard by the end of this course.
How do I open a terminal window?#
- On a Mac, the terminal program is called Terminal.app. It’s in your
Applications > Utilities
folder. - 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).
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 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).
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.
Ask a question on the COMP2300 forum clearly stating 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
Markdown#
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.
We have specific markdown information about markdown on the “how to write a design document” page.
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.
Will my submission be run though plagiarism detection software?#
Yes.
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. You will be notified via email that there is an investigation related to your submission. If there is a serious matter to discuss, you will get an opportunity to meet with the course convenor before a decision is made.
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, accept the outcome and make sure you never do it again.
What should I say in the “Potential Academic Misconduct” 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?.
I was disorganised and ran out of time to fill out my statement of originality; can I email it to you now?#
Sure, and please do, but the academic integrity investigation may still need to continue.
Statement of originality (SoO)#
How do I fill out my statement-of-originality.md
?#
For every assignment you must submit a
statement of originality (SoO) in the form of a markdown file called
statement-of-originality.md
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).
You must:
- read the file so that you know what it means
- sign your name and UID in the
statement-of-originality.md
file in order for it to pass the CI job checks (this is an assignment requirement!) - list any collaborations with any of your classmates
- list details of any code used in the assignment obtained from your classmates, the labs, the internet, StackOverflow or any other place
- list details of any assets (files/images/data) included in your assignment that you did not create (e.g., images or sound file from a website)
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.
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 documents?—do they go in the SoO?#
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.
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 your assignment mark may be a bit lower than you would have gotten had you met the requirements that we set out in the assignment specification.
Can I see an example of a completed SoO?#
Sure:
---
declaration: >-
I declare that everything I have submitted in this assignment is entirely my
own work, with the following exceptions:
# sign *your* name and uid here
name: Gustav Gustavsson
uid: u1234567
---
# Collaboration
### 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
# Code
### comment:
the if/else statement at labelX is based on an answer from StackOverflow
### url:
https://stackoverflow.com/questions/30086526/if-else-or-statement-in-assembly