Frequently Asked Questions

Contents


Study practices

How can I do well in CITS3007?

Some suggestions on working effectively in Computer Science and Software Engineering are available from the CSSE teaching website – you might like to review those, as well as the UWA Library’s Study support page.

The STUDYSmarter pages and workshops may be useful to you. CITS3007 assessments may ask you to think critically about software security, and to justify a position, so the Academic English workshops (such as “Critical thinking & academic culture” and “Writing justifications”) may prove especially useful.

It’s also useful to remember that active learning has been demonstrated1 to be a more effective learning approach than passive learning. Some active learning strategies include:

A good resource containing more information on these strategies and others is the University of Melbourne page on active learning.

Do I need to have completed CITS2002 before enrolling in CITS3007?

CITS2002 Systems Programming is not a prerequisite for enrolling in CITS3007.

However, based on statistics from previous years, you are likely to do somewhat better in the unit if you have already done CITS2002.

The mean CITS3007 mark of students in 2022 who had already completed CITS2002 was 66.3, whereas the mean mark of student who had not was 59.9. (Both groups started with a mean WAM from the previous year of 69.6.)

How much study time will CITS3007 require?

See the site welcome page, under “Time required”.

See “Recommended readings” on the Resources page. That page

Should I buy a copy of the main textbook?

There isn’t really a “main textbook”, but there are a number of texts we frequently refer to in the recommended readings (e.g. the Kohnfelder text), so you might want to consider buying one of them.

The UWA Library should have physical or online copies of all the texts we refer to, and cheap second-hand copies of texts are usually available from AbeBooks, Amazon, or Book Depository.

Online access to recommended readings is also available through UWA’s “Unit Readings” site – see “Recommended readings”.

It may also be worth buying a C textbook (see the following question and answer).

Do I need to have access to a C textbook?

Yes.

As per the Resources page page, you need to have access to a good C textbook. YouTube videos or online tutorials will not be sufficient.

The lecture slides on C aim to refresh students’ memory as to some details of the C language, and highlight some important differences from other languages, but are not intended to be a complete reference, nor are they a substitute for a C textbook.

Students relying on the lecture notes to explain all the details of the C language will likely find it challenging to do well in the unit assessments.

How can I keep backups of my work?

Take a look at the MIT “Missing Semester of Your CS Education” page on “Backups” for good backup strategies to adopt.

Local backup systems are available for all popular operating systems in use today (e.g. Time Machine for MacOS), but you should ensure you keep offsite copies of your work as well.

Offsite copies of your work can be stored using UWA’s student network storage, or alternatively, backup services can be purchased for less than $5 per month (e.g. from carbonite.com).

In addition to keeping backups, it’s a good idea to keep your work under version control.

How can I keep my work under version control?

Use Git. It isn’t the easiest version-control system to use, nor the most flexible, nor the most reliable – nor, really, the best in any way at all, except that it is used almost everywhere in the software development industry, so you might as well get familiar with it.

MIT University provides an introduction to Git and an explanation of why you should use a version-control system.

You might also find the following resources helpful:

Do I need a laptop in order to complete CITS3007?

You will need a laptop when attending lab classes, as this unit requires software that isn’t permitted to be installed on UWA lab machines.

A laptop is also strongly recommended for completing the unit project (though a desktop computer running Linux, or capable of running Oracle VirtualBox, may also be used).

UWA provides financial support via the “SOS IT Equipment Scheme” to students who are unable to purchase a laptop due to financial hardship.

See also “What operating system should I use for CITS3007?”.


Lectures

Where can I find the lecture slides?

On the “Resources” page, under “Lecture slides”. They’ll be published there progressively throughout the semester. For previous years’ lecture slides, see here.

Are lectures recorded?

The lectures are recorded, and will be available via the LMS – usually within an hour of the lecture finishing.

But please note that recordings do sometimes fail – so if you can attend the lecture in person or online, it’s recommended.

Where can I find the lecture recordings?

Sign into the Blackboard LMS, bring up the “CITS3007” unit, and click on “Lecture Recordings” on the left-hand sidebar. Then click on the link marked “Lecture Recording System”; a new page should launch, taking you to the appropriate part of the Echo360 system where the lecture recordings are stored.

Can I attend lectures online?

Short answer: no, only face-to-face attendance is available.

Longer answer: currently, it is the policy of the department of Computer Science and Software Engineering at UWA that units be offered in face-to-face mode only. This is intended to convey to students that they need to engage and interact face-to-face for at least some activities for effective learning, and allows teaching staff to schedule face-to-face assessments such as invigilated tests. See the UWA page on “study modes” for more information.

The department continues to support students with many flexible study options, however, such as recorded lectures and online submission of assessments.

In the event of Covid 19 restrictions, lectures and labs will be conducted completely online (accessible via MS Teams), and any student oral presentations will be done via MS Teams.


Labs

Where can I find lab worksheets?

On the “Resources” page, under “Worksheets”. They’ll be published there progressively throughout the semester. For previous years’ worksheets, see here.

What’s contained in the lab worksheets?

The lab worksheets contain practical exercises to reinforce concepts covered in lectures, as well as occasional links to Moodle self-paced quizzes, or problems for you to attempt in-class. Some worksheets may include optional “challenge” exercises or problems for students seeking additional challenges – these are not compulsory, but are provided for your interest.

Are solutions to lab problems published?

Any solutions to problems in a lab worksheet will normally be published the following week, to allow students time to work through lab problems independently. Solutions to any “challenge” problems are typically not published, but you are welcome to discuss your solutions with the lab facilitators or the unit coordinator if you have attempted them.

Is attendance recorded for labs?

No – if you don’t want to attend the labs, you do not have to. However, the labs provide the best opportunity for getting feedback and assistance from teaching staff, as a lab facilitator is available at each lab. It’s therefore strongly recommended that you do attend.

Are there online labs?

There are currently no online labs: all labs will be delivered face-to-face.

In the event of Covid 19 restrictions, lectures and labs will be conducted completely online (accessible via MS Teams), and any student oral presentations will be done via MS Teams.

Are online labs recorded?

At present, there are no online labs, so the question is moot. In the event that we do hold online labs, by default they are not recorded; the aim is that all lab participants should feel free to ask questions and speak freely, which they may not do if they are being recorded. If all participants in an online lab have agreed beforehand, then the lab facilitator may record the lab.

Can I attend lab sessions other than the one I’m allocated to?

Yes – as long as there is room available for you, you are welcome to attend other lab sessions. See under “labs”, on the site home page, for details.

Can I email questions to the lab facilitators?

No – facilitators are not paid to provide student instruction outside of the timetabled labs.


Timetable

Where can I find the unit timetable?

You should have a personal timetable available through CAS (UWA’s Class Allocation System). But you can also get full details of lecture and lab times and venues by visiting UWA’s Timetable site. (If the information for CITS3007 is not visible, then enter “CITS3007” in the box labelled “Unit search”, and then click “Show timetable”.)


Assessments

When are the assessments due?

A list of all assessments (and their due dates) is given on the Assessments page, and due dates are also shown on the Schedule.

(The content for both is generated from a JavaScript source file contained in the GitHub repository.)

Do any of the assessments require (or permit) group work?

No – all assessments are to be completed individually. See also Academic conduct and source citation.

How do I submit an assessment?

Details of how to submit each assessment will be released on the Assessment page. Most of the assessments will be submitted using Moodle. In order to submit an assessment, you’ll need to create an account on the Moodle server by visiting the Moodle signup page. You’ll need to use your UWA email address, select a username (usually, your given name), select a password, and provide your first and last name. (All other details are optional.)

Can I get an extension on the deadline for an assessment?

For quizzes and tests:

No, in general it’s not possible to get an extension. Even if conducted online, and even if generous time-limits are permitted, these should still be treated much like face-to-face tests: you need to complete them at the specified date and time.

If you’re unable to complete a quiz or test due to illness or for some other valid reason, you should apply for special consideration (see the UWA page on special consideration for details). If you are granted special consideration, then you will be exempted from that assessment, and the remaining components of the unit will be re-weighted to make up 100%. For instance, if you are unable to complete the week 4 quiz (worth 5%), then the weights of all the other components will be multiplied by 100.0100.05\frac{100.0}{100.0 - 5 }.

If you are granted special consideration, it’s helpful if you can email the Unit Coordinator to let them know – Unit Coordinators aren’t automatically notified when special consideration is granted.

For the purpose of “reasonable adjustments” made for students who require them: quizzes, tests and exams count as “timed assessments” (although the time limit is generous). If you have an Academic Adjust Plan in place from UniAccess (UAAP), you may be entitled to extra time for online assessments – email the Unit Coordinator in accordance with your UAAP to let them know.

(See also: “I have a UniAccess accommodation plan, do I need to let you know about this?”.)

For projects:

If you need an extension due to illness or for some other valid reason, you should apply for special consideration (see the UWA page on special consideration for details).

If you are granted special consideration, it’s helpful if you can email the Unit Coordinator to let them know – Unit Coordinators aren’t automatically informed when special consideration is granted.

It’s also possible to submit your assessment late, subject to the standard penalties for late submission.

What is the marking rubric for the assessment items?

Marking rubrics for an assessment item will normally be published with that assessment item. In particular, the unit project will have a breakdown of marks available, and how they can be achieved.

Wherever possible, we adopt a rubric based on the following scheme:

Multiple choice/multiple selection/numeric answer/short answer question

These will normally be worth only a small amount each (e.g. 5 or 10 marks out of a 100-mark quiz or test), and are typically marked automatically. 100% is awarded for a correct answer, and 0% for an incorrect answer.

Make sure to read these questions carefully, and answer exactly as requested. (E.g., if an answer asks for “Only a number”, then answering “20 bytes”, for example, would be marked incorrect.) Misreading the instructions will not be grounds for appealing an assessment decision.

If answering a multiple choice or multiple selection question, you should give the best answer of those offered – if you think multiple answers are correct, but only one is allowed, give the one that’s most correct. (Or, if you think none are correct, give the one that’s least incorrect.)

If a question is ambiguous, you may make reasonable assumptions in order to answer it. (If the assessment item provides space to record your assumptions, then make sure to write them down – make sure you paste in the full question text your assumption relates to, as not all students get the questions in the same order – and give each question a clear, bolded heading.)

You can assume that the answer to any short answer question is never more than 5 words long (and most will be only two or three words long). You must always give a single answer – responses which try to “hedge” and give multiple alternatives (“this or that”) will be marked incorrect.

“Long answer” questions requiring code

These will typically be (partly or wholly) automatically marked.

Unless specified otherwise:

  • answers should be self-contained, and #include all necessary headers
  • C code submitted should be valid code according to the C11 standard
  • code should be clearly written, well-formatted, and easy for others to understand
  • function bodies should contain only such inline comments as are necessary for a reader to understand the code; excessive inline comments will result in low marks for code clarity and style
  • functions should be documented using documentation blocks (see here and here for guidelines)
  • code must compile without errors with gcc, using the compilation flags “-std=c11 -pedantic-errors -Wall -Wextra” (and ideally, should compile without warnings)
  • code must compile and run correctly in the CITS3007 standard development environment
  • code should follow sound programming practices, including:
    • the use of meaningful comments
    • well chosen identifier names
    • appropriate choice of basic data-structures, data-types, and functions
    • appropriate choice of control-flow constructs
    • proper error-checking of any library functions called, and
    • cleaning up/closing any files or resources used.
  • unless specifically required to, functions should never print to standard output. If functions need to provide feedback to callers, it should be via return values or pointer arguments. Besides being poor practice, printing to standard output can interfere with the testing of your code; if it does, that will result in 0 marks being awarded for functionality.
  • unless specifically requested, code submitted should never define a main() function. Doing so will cause link errors when your code is compiled and tested, and will result in 0 marks being awarded for functionality.
“Long answer” questions requiring an answer in English:

These will typically present a fact-based scenario, and require you to answer a question or make a recommendation. The aim of these questions is for you to demonstrate that you can:

  • distinguish the relevant from irrelevant facts in the problem description
  • identify what topics we have covered which apply in this case, and how
  • come up with a clear recommendation or answer
  • justify that recommendation (logically, or via evidence covered in classes).

“Identifying relevant facts/topics” and “justifying answers appropriately” are the key things we are looking for in answers to these questions. If an answer is provided with no justification, it will be awarded 0 (even if otherwise correct), as it does not satisfy the criteria for an acceptable answer.

When answering such questions, you should:

  • Make sure your answer is comprehensible. If we can’t understand your answer, we can’t give you credit!
  • Try to keep your answer concise. But value comprehensibility over concision.
  • Make sure your answers are self-contained, and do not refer to your answers to other questions. Different questions may be marked by different people!
  • Make sure you answer the question fully. If you only answer part of the question (or do not at all answer the question asked), you cannot be awarded full marks (no matter how relevant the facts you discuss or how good a justification you provide). If you only answer part of a question, you may receive a proportion of the marks for that question.

For each such question:

  • 50% of the marks are awarded for correctly identifying the relevant facts or topics or principles to apply, and not discussing irrelevant facts/topics/principles.
  • 50% of the marks are awarded for appropriately justifying your answers

Guidance as to how the “relevance” and “justification” components are assessed is given in the following table. A proficient answer will be awarded 70–100% of the marks for that component; a satisfactory answer will be awarded 50–69% of the mark for that component; and a not yet satisfactory answer will be awarded 0–49% of the mark for that component.

What should I do if a question or task in an assessment is ambiguous or contains an error?

For projects:

You will need to clarify the meaning of the question or task in the unit Help forum before submitting the assessment. Before making a new post in the Help forum, do a search to see if someone else has asked the same question already and received an answer.

For “long answer” questions in quizzes, tests or exams:

If the question is ambiguous, or you believe it contains an error or requires you to make assumptions in order to answer it, then you may make whatever reasonable assumptions are required in order to answer it.

Ensure you document these assumptions in your answer.

For “short answer” questions in quizzes, tests or exams:

You should answer to the best of your ability, bearing in mind the rubric and guidelines for short-answer questions. You may be assured that you will not be disadvantaged if there is an error in the question.

Tests will include a zero-mark question at the end where you can include questions or comments about the test and can alert the unit coordinator to any perceived errors. If a question is ambiguous, you may make reasonable assumptions in order to answer it, and should record your assumptions in the answer to this zero-mark question. If applicable, your comments may be considered when marking.

If you need to put a question or comment in this zero-mark question, make sure you paste in the full question text it relates to (as not all students get the questions in the same order) and make sure you give each question a clear, bolded heading.

You may not contact the unit coordinator (or any other person) regarding the content of questions while a test is running – see “Test conduct”.

I have a UniAccess accommodation plan, do I need to let you know about this?

Yes.

Your UniAccess accommodation plan (UAAP) will state that if you have alternative exam arrangements for a quiz, test, exam or other timed assessment, then you need to contact the Unit Coordinator at least 2-3 weeks prior to the date of the assessment to request that these arrangements be put in place. Please do so by emailing the Unit Coordinator.

The exam for CITS3007 is School-run, rather than organised by the Exams Office, so you will need to email the Unit Coordinator to request that alternative exam arrangements be put in place.

If your UniAccess accommodation plan states that you require flexibility with submission deadlines, then it will also state that you should “contact the Unit Coordinator in a timely manner, i.e. no later than three university working days after the due date”. It will be greatly appreciated if you can alert the Unit Coordinator as early as possible that you’ll be submitting late, but staff understand that this is not always feasible. Note that adjustments to submission deadlines do not apply to quizzes, tests or exams for CITS3007.

Academic conduct and source citation

Are assessment submissions checked for plagiarism?

Yes, they are. Your submitted work or answers for any assessment item may be submitted to plagiarism detectors such as JPlag, moss or turnitin to detect plagiarism.

Additionally, statistical anomalies in the results for an assessment may be investigated, and any student may be asked to (orally) explain their thought process in coming up with their answers.

What are the expectations regarding citation of sources/academic conduct?

You must act in accordance with UWA’s academic conduct policy. See the STUDYSmarter team’s Guide to Avoiding Academic Misconduct (PDF) for additional details.

In particular, you must not plagiarize any work. Plagiarism is the unattributed use of someone else’s words, creations, ideas or arguments as one’s own. At UWA, it is extended to include paraphrasing which is too close to the original.

For all assessments – even those that are “open book” – you are expected to:

  1. demonstrate an understanding of the answers you write (and you may be asked to later demonstrate that understanding in an oral interview); and
  2. ensure any answers you write are in your own words.

You will only occasionally need to cite sources in this unit, but if you do, you need to make sure that you

  1. properly cite any sources you make use of
  2. ensure your source is reliable (see “evaluating sources”), and
  3. provide full bibliographic details for each source cited (usually in a “References” section within your answer).

See also “What referencing/citation style should I use?”.

(For (c), note that you need not cite lecture slides or worksheets provided for this unit as being a source of ideas. Your answer must still be in your own words, and you may not reproduce the content of them directly – copying and pasting in the text of a slide from the lecture slides as one of your answers is still plagiarism – but you need not cite them as a source of ideas. It’s assumed they are a common source of ideas for all answers.)

The penalties for misconduct in an exam are very severe. So don’t do it.

What referencing/citation style should I use?

If scholarly references are included in submitted work, then students may use any standard citation style they wish (e.g. Harvard, APA, MLA, IEEE), as long as it is applied consistently. One recommended style is the “AMS short alpha-numeric” style (see the AMS style guide (PDF), sec 10.3).

If citing code found on the Internet or from other sources, follow the MIT guide for citing code: https://integrity.mit.edu/handbook/writing-code.

For further advice on referencing sources, refer to the UWA Library webpage on referencing at https://guides.library.uwa.edu.au/referencinguwa.

How do I evaluate the reliability of an information source?

For a quick guide, see the UWA Library page on “evaluating information”.

For more information, you might want to attend the UWA Library’s academic skills workshops – in particular, the workshops entitled “Critical thinking & academic culture” and “Using sources and paraphrasing”.

Can I use ChatGPT, or other AI tools, when completing an assessment?

No, you are not permitted to use AI tools when completing an assessment. Here is a description of the University’s policy on the use of AI tools:

[T]hese tools must not be used as a replacement of your critical thinking and analysis skills. AI tools may only be used in an assessment where it is explicitly permitted by your Unit Coordinator. Where it is permitted by your Unit Coordinator to use AI, you must always cite and reference your uses of it. You cannot submit for assessment any work that is not your own.

You can certainly use AI tools as part of your own self-study for the unit, but you may not use them as part of an assessment.

In addition to constituting academic misconduct, using ChatGPT in assessments does yourself a disservice. Using ChatGPT in a test or project is depriving yourself of the opportunity to get honest feedback on your own competencies and abilities. In the final exam for the unit, you will not have access to any other tools besides Moodle in the web browser, so you will have to know how to write code or English answers yourself – using AI tools for previous assessments may result in your having a lack of practice at doing so.

Wouldn’t the use of ChatGPT or similar AI tools help ensure the accuracy of code or English answers?

No, it would not. It’s true that students sometimes mistakenly think that using ChatGPT or similar AI tools can help “ensure accuracy” in their code or English answers. But that idea is mistaken: large language models (LLMs), the class of tools ChatGPT belongs to, do not have any ability to distinguish correct from incorrect facts, and their sole guide to what sort of answers they produce is statistical likelihood of particular words appearing. LLM tools can frequently hallucinate incorrect answers, and, due to their design, are incapable of dealing with certain sorts of questions.

An interactive website here highlights some of the limitations get a better idea of their limitations.


Tests, quizzes and exams

What topics are examinable in a quiz, test or exam?

For any test, quiz or exam, you may assume that the following are examinable:

for all weeks up to and including the week prior to the test, quiz or exam. That said, the lab exercises are usually a good guide to the sort of questions that may be asked.

What happens if I submit a test, quiz or exam late?

Online quizzes, tests and exams must be submitted by the due date and time – this will be enforced strictly (just as it is for face-to-face tests and exams), and late submissions will receive a mark of 0. It is your responsibility to ensure you submit by the due date and time – even if you think a website such as Moodle or the Blackboard LMS might permit you to make a late submission.

What if I think there’s a mistake in a test, quiz or exam question?

You should answer to the best of your ability, and record any assumptions made: see “Errors in questions”.

You may not contact the unit coordinator (or any other person) regarding the content of questions while a test is running – see “Test conduct”.

Are the quizzes/tests/exams open book? (Test conduct)

Unless specified otherwise, all quizzes and tests (but not the final exam) are “take-home” and open-book. You may look at any book, website or software you like, but the answers must be your own work (not that of anyone else) and in your own words, and you must not distribute the questions or your answers to any other person.

The quizzes and tests are not invigilated but – as with all open assessments – any statistical anomalies will be investigated, and anybody may be asked to (orally) explain their thought process in coming up with their answers.

The exam is not open-book, and is invigilated, but you are permitted access to some materials and tools – refer to the Assessment page for more details.

Checking your answers

You should:

  • check your answers for spelling, punctuation and grammatical errors before submitting
  • where relevant, feel free to check your answers by writing and compiling C code
  • consult the C11 standard or a good reference site (such as the “C” language sections of cppreference.com)
Contacting other people

You may contact the unit coordinator if you are unable to access the quiz/test/exam or have difficulties submitting it. Make sure to include a screenshot of the problem.

However, other than that, you may not contact any other person (student, staffmember or anyone else) during the test.

If you have a question or comment about the test, or would like to alert the unit coordinator to a perceived error, include a comment in your working, if appropriate, to indicate how you interpreted the question. If applicable, your comments may be considered when marking. No action can be taken during the test. You are advised to answer to the best of your ability and are assured that you will not be disadvantaged if there is an error on the question paper. [Source: UWA rules for online exams] See also, “Errors in questions”.

Can I access previous online tests while completing a test?

No, we generally will remove access to previous online tests while a test is in progress. If you want to make use of feedback you were given on a previous test, you should compile your own notes incorporating this feedback.

What if a network infrastructure outage occurs during a test?

If severe problems occur with the University network infrastructure or the Moodle server occur during a timed quiz, test or exam, the Unit Coordinator may, at their discretion, permit students affected by the outage to re-sit the assessment.

Students affected by such an outage should immediately

However, this only applies to infrastructure maintained by the University. If you choose to complete a test at home, it’s your responsibility to ensure you have a reliable computer system and network connection in order to complete the assessment.

Can I find out what marks I achieved for a test question?

Yes – tests are done through Moodle, and once marks for the test are released, you should be able to log in to Moodle and view, for each question, the marks received, the correct answer, and (for most questions) a short explanation of the answer. The answer explanation may refer you to content from the lectures, labs, or the recommended readings. For questions requiring you to write a long English answer or to submit code, you may also receive individual feedback from the marker.

Note that a marks breakdown is not provided on Moodle for the exam. If you want to obtain feedback on your exam performace, you should email the unit coordinator and make an appointment to discuss the exam.

How can I seek clarification on the marks I achieved for a test question?

You should email the unit coordinator. Before emailing, make sure you:


Projects

How are problems with the project specification resolved?

An initial specification for the unit project will be published via this website, and an announcement of this made on the help3007 discussion forum.

Students should aim to read through the specification as early as possible, and clarify any ambiguities, apparent contradictions, or missing information by posting in the help3007 discussion forum.

After initial clarifications have been made – usually after about a week – a revised specification will be released, consolidating any changes or answers made by the unit coordinator in the help3007 discussion forum.

After a revised specification has been published:

If, at the time of project submission, anything in the project specification is contradictory, ambiguous, or under-determined, and no student has requested clarification in the forum, then the unit coordinator may interpret those portions of the specification in any way they wish (as long as it does not conflict with the remainder of the specification), and mark submissions accordingly.

What are the formatting expectations for project reports?

The unit project may contain a written English component. The project specification will explain how this is to be submitted. Usually, the written component will be submitted as either:

Formatting expectations for these are as follows:

PDF reports
  • Your PDF report should use A4 size pages.
  • The font for body text should be between 9 and 12 points.
  • Do not double-space lines.
  • The report should contain numbered headings, with informative heading titles.
  • Each question should be answered on a new page.
  • Any diagrams, charts or tables used must be legible and large enough to be easily read when viewed on-screen at 100% magnification.
  • All pages (except the cover, if you have one) should be numbered.
  • Cover sheets, diagrams, charts, tables, bibliographies and reference lists do not count towards any page-count maximums.
  • You are not required to include a cover sheet.
Markdown file

As an alternative to submitting a PDF, you may submit your report in neatly formatted (max. 72 characters per line) Markdown, and we will either read it directly or generate a report from it. In that case:

  • It should either adhere to the CommonMark spec or be Pandoc-compliant Markdown
  • It should be easily readable as plain text, and contain no diagrams, charts or raw LaTeX
  • If present, a bibliography should appear as a plain bulleted list at the end of the report (do not use citation keys (@), BibTex, or similar features). “AMS short alpha-numeric” would be a good citation style – see the AMS style guide (PDF), sec 10.3.
Text input field

The input field should have instructions regarding appropriate format.

See also:


Exams

Are past exams available?

Because the exam is completed using Moodle, past exam papers are not available via the UWA Library, as they are for some other units.

However, the labs and earlier quizzes and tests provide a good guide to the sort of questions you may be asked.

Be sure to start your exam revision early! If you try to make an appointment to discuss the exam less than three working days before the exam, I may be either not at UWA or busy with exam preparations myself, and unable to schedule an appointment for you.


Unit content

Can I see previous years’ content?

The unit website is archived periodically by the Internet Archive’s Wayback Machine at http://web.archive.org/web/*/https://cits3007.github.io/. You can use the Wayback Machine interface to view previous versions of the lectures and labs.

The source code for the unit website is also versioned on GitHub at https://github.com/cits3007/cits3007.github.io/, so you can use GitHub’s interface to look through older versions of the material as well. The directories you want are probably assets/lectures and assets/workshops.

Note that the content of the unit does change slightly from year to year, so previous years’ content will not be a perfect guide to what is covered in the current year.

Why is the unit content on GitHub and Moodle? Why not use UWA’s Blackboard LMS?

Because Blackboard is a very terrible LMS.2

In addition


Discussion forum (help3007)

Can I post questions about the unit content to the discussion forum?

Please do! But before posting, you might want to

  1. search the forum (and this page) to see if an answer to your question has already been posted, and
  2. review the page “How do I ask a good question?”

Note that any posts on the discussion forum need to comply with UWA’s Code of Conduct and academic conduct policy. That means you should

How do I subscribe to posts from the discussion forum?

You can set up an email subscription to the discussion forum as follows:

  1. Ensure you’re logged in to help3007.
  2. Under the left-hand menu (“help3007”), select “edit preferences”.
  3. Select “yes” to one (or both) of the options “email me a copy of every new article immediately” and “email me a daily digest of new articles”.
  4. Click “Save these preferences”.

You should now receive regular updates by email when new posts are made on the forum.

I said I didn’t understand a topic, and the lecturer said I should read the lecture slides/textbook – but I’ve already done that

When asking questions, it’s a good idea to explain what you’ve already tried – otherwise the person you’re asking help from won’t know, and may simply direct you to some source you’ve already looked at.

For many topics in CITS3007, the best initial source of information usually is the lecture slides or textbook – so if you’ve already looked at those, you need to say so.

(Remember also that University class sizes can be large; you may know you’ve already asked a question before, and been directed to the lecture slides or textbook, but the lecturer or facilitator you’re talking too may not.)

When asking questions via email or on the help3007 discussion forum, you might want to take a look at “How do I ask a good question?”: it suggests you make clear what you’ve already tried, and why that didn’t work for you.


Operating system

What operating system should I use for CITS3007?

Linux.

The general principles of secure software development covered in this unit apply to all operating systems; but for this unit, we will be using Linux, because it is

In the first lab (in week 2), we will explain how to set up a C development environment using Linux and VirtualBox, an open-source virtualization tool produced by Oracle corporation.

VirtualBox is available for the Windows, MacOS and Linux operating systems. It’s currently not available on the UWA computing lab machines, so it’s recommended you install the software on your own laptop.

UWA provides financial support via the “SOS IT Equipment Scheme” to students who are unable to purchase a laptop due to financial hardship.

For most purposes, it will also be possible to make use of a service called GitPod to access a Linux environment via the web (see the labs for more information); but for some labs and assessments, this will not be sufficient, and you will need access to a computer which runs Linux either as its main operating system, or via VirtualBox.

What is the standard development environment for CITS3007?

The standard development environment for CITS3007 is based on Ubuntu 20.04 running version 5.4.0 of the Linux kernel on an x86-64 processor, and all submitted code is expected to compile and run correctly in this environment.

In addition to the base operating system, the development environment has the following programs (among others) installed:

If you are already familiar with how to use Vagrant: an instance of the standard development environment can be obtained by using the arranstewart/cits3007-ubuntu2004 Vagrant box.

If you are not familiar with how to use Vagrant: we will explain how to use it in the first lab class for the unit (in week 2).

Software used in CITS3007

Why is Virtualbox used to access Linux?

We use virtualization technology like VirtualBox to ensure students are working in a consistent environment – and any problems encountered can be exactly reproduced.

How a C program behaves, and how its data is laid out in memory, can depend not just on the operating system version and platform the program is compiled for, but also on the exact version of the compiler used.

Using a common virtual machine image means all students compiling and running a C program should see exactly the same behaviour.

Why not use Docker or Windows Subsystem for Linux (WSL)?

Docker provides the ability to run various Linux distributions on your computer, and is available for Windows, Linux and MacOS.

However, when using Docker, the operating system kernel you are using cannot be changed. On Linux, the kernel will be that of your host machine; on Windows or MacOS, it will be the kernel of some virtual machine.

Other virtualization technologies (like Docker and Windows Subsystem for Linux) exist, but do not allow precise control over what Linux kernel is run – so using them may result in different program behaviour.

Linux command-line tools

How can I get familiar with the Linux command-line?

Practice, practice, practice.

Perhaps more helpfully, the following short guides from MIT University’s “Missing semester” course provide some quick guidance on using the Linux command-line:

The following free textbook by William Shotts is also very good:

The Shotts text is available

How do I use GNU Make to build C projects?

The following tutorials provide a basic introduction to GNU Make generally:

The following lab provides more information on using Make specifically for C projects:


Questions about this page

Why is this page so long?

For every rule, there is a story … Sometimes the story is obvious such as a sign that reads “Do not drive on the ice” or “No Smoking” at the fuel pump. Other times, reading the instruction manual of a consumer device has specific instructions such as “Do not use television in water” or “Do not put oatmeal in the CD drive”.

See also r/AskReddit, “What rule exists because of you?”.


  1. For an overview, see for instance: Deslauriers et al, “Measuring Actual Learning versus Feeling of Learning in Response to Being Actively Engaged in the Classroom.” Proceedings of the National Academy of Sciences 116, no. 39 (September 24, 2019): 19251–19257. Available at https://doi.org/10.1073/pnas.1821936116. ↩︎

  2. See “Why Is Your School’s LMS So Bad?”. ↩︎