Final exam commencing next week 2023-12-05 09:00

Week 12 Friday 17:30:00

Hi everyone!

Your final exam will be commencing next week 2023-12-05 at 09:00 Sydney time. I will release the exam at 8:55am to give everyone a chance to load the paper before the official starting time at 9:00am. You may read the paper as you access it, but please do not commence working on the exam until the official start time at 9:00am.

The exam will be accessible at https://cgi.cse.unsw.edu.au/~cs6991/current/exam/ at 8:55am. The URL will 404 until 8:55am.

The exam is three hours, and so will conclude at 12:00pm. If you have extra-time from your ELP, it has been applied.

Please do not submit any questions after the deadline. Run give as you go in order to avoid having to submit everything right near the end, when servers are sure to be slow.

If anything goes wrong for you during the exam, please send us an email at . DO NOT POST ON THE COURSE FORUM DURING THE EXAM.

Please do not discuss the exam for at least 24-hours after the conclusion. Recall that just because the exam is over for you, it does not mean that the exam is over for everyone.

Following this will be the exam conditions found at the top of the paper. You must read these either before or at the beginning of your exam. Of additional importance is the note about AI assistants.

Cheers! Zac.


Exam Preamble

Starting time: 2023-12-05 09:00:00

Finishing time: 2023-12-05 12:00:00

Time for the exam: 3 hours

This exam contains 7 questions, each of equal weight (10 marks each).

Total number of marks: 70

Total number of practical programming questions: 2 (20 marks)

Total number of theoretical programming questions: 5 (50 marks)

You should attempt all questions.

Exam Condition Summary

  • This exam is “Open Book”
  • Joint work is NOT permitted in this exam
  • You are NOT permitted to communicate (email, phone, message, talk) with anyone during this exam, except for the COMP6991 staff via cs6991.exam@cse.unsw.edu.au
  • The exam paper is confidential, sharing it during or after the exam is prohibited.
  • You are NOT permitted to submit code that is not your own
  • You may NOT ask for help from online sources.
  • Even after you finish the exam, on the day of the exam, do NOT communicate your exam answers to anyone. Some students have extended time to complete the exam.
  • Do NOT place your exam work in any location, including file sharing services such as Dropbox or GitHub, accessible to any other person.
  • Your zpass should NOT be disclosed to any other person. If you have disclosed your zpass, you should change it immediately.
  • The use of AI assistants is strictly prohibited in this exam. This includes services such as Github Copilot and OpenAI ChatGPT.

Deliberate violation of these exam conditions will be referred to Student Integrity Unit as serious misconduct, which may result in penalties up to and including a mark of 0 in COMP6991 and exclusion from UNSW.

  • You are allowed to use any resources from the course during the exam.
  • You are allowed to use small amounts of code (< 10 lines) of general-purpose code (not specific to the exam) obtained from a site such as Stack Overflow or other publicly available resources. You should attribute the source of this code clearly in an accompanying comment.

Exam submissions will be checked, both automatically and manually, for any occurrences of plagiarism.

By starting this exam, as a student of The University of New South Wales, you do solemnly and sincerely declare that you have not seen any part of this specific examination paper for the above course prior to attempting this exam, nor have any details of the exam's contents been communicated to you. In addition, you will not disclose to any University student any information contained in the abovementioned exam for a period of 24 hrs after the exam. Violation of this agreement is considered Academic Misconduct and penalties may apply.

For more information, read the UNSW Student Code, or contact the Course Account.

  • This exam comes with starter files.
  • You will be able to commence the exam and fetch the files once the exam commences.
  • You may complete the exam questions using any platform you wish (VLab, VSCode, etc). You should ensure that the platform works correctly.
  • You may submit your answers, using the give command provided below each question.
  • You can use give to submit as many times as you wish. Only the last submission will be marked.
  • Do NOT leave it to the deadline to submit your answers. Submit each question when you finish working on it.
  • Please make sure that you submit all your answers at the conclusion of the exam - running the autotests does not automatically submit your code.
  • Autotests are available for all practical questions to assist in your testing. You can use the command: 6991 autotest
  • Passing autotests does not guarantee any marks. Remember to do your own testing!
  • No marks are awarded for commenting - but you can leave comments for the marker to make your code more legible as needed

Language Restriction

  • All practical programming questions must be answered entirely in Rust; you may not submit code in any other programming languages.
  • You are not permitted to use third-party crates other than the standard library (std).

Fit to Sit

By sitting or submitting an assessment on the scheduled assessment date, a student is declaring that they are fit to do so and cannot later apply for Special Consideration.

If, during an exam a student feels unwell to the point that they cannot continue with the exam, they should take the following steps:

  1. Stop working on the exam and take note of the time
  2. Contact us immediately, using cs6991.exam@cse.unsw.edu.au, and advise us that you are unwell
  3. Immediately submit a Special Consideration application saying that you felt ill during the exam and were unable to continue
  4. If you were able to advise us of the illness during the assessment (as above), attach screenshots of this conversation to the Special Consideration application

Technical Issues

If you experience a technical issue, you should take the following steps:

  1. If your issue is with the connection to CSE, please follow the following steps:
    • If you are using VLab: Try exiting VLAB and reconnecting again - this may put you on a different server, which may improve your connection. If you are still experiencing problems, you can try changing how you connect to the CSE servers. Consider:
    • If you are using VSCode remote-ssh: Try disconnecting VSCode, and then changing the URL from vscode.unsw.edu.au to vscode2.unsw.edu.au.
    • If you are using SSH: Try disconnecting SSH and reconnecting again.
  2. If things are still NOT working, take screenshots of as many of the following as possible:
    • error messages
    • screen not loading
    • timestamped speed tests
    • power outage maps
  3. Contact should be made immediately to advise us of the issue at cs6991.exam@cse.unsw.edu.au
  4. A Special Consideration application should be submitted immediately after the conclusion of the assessment, along with the appropriate screenshots.

Assignment 1 Mark Release + Assignment 2 Autotest Update

Week 10 Friday 07:30:00

Hi everyone!

We've released Assignment 1 marks for most students. We'll clean up the missing marks this weekend.

We've also decided that at this point, releasing full autotests doesn't make sense, as it's more likely to cause confusion/concern. Therefore, we're just going to do the same thing as last term, in which we'll manually mark performance. Tutors will be told to be generous with performance marks, due to the ongoing issues some people have had.

We have released some test cases that markers will use to check your program's functionality; they're available at ~cs6991/assign02_test_files/. You can run these through the sample solution to check your program's behaviour against the sample solution.

If you've had any assignment issues, please make sure to describe them in the mark_request.txt so your marker is aware.

Thanks everyone for your patience and hope you have a good rest-of-the-term.

~Tom

Help Sessions

Week 10 Monday 22:00:00

Hi everyone!

We've converted some workshops into help sessions. The following workshops will have some capacity to help students who'd like help with the assignment:

  • Tuesday 9am in Tabla Lab (K17 Ground)
  • Tuesday 11am in Tabla Lab (K17 Ground)
  • Thursday 6pm in Sitar Lab (J17 Level 3)

Best,

~Tom

Assignment 2 Update

Week 9 Thursday 09:00:00

Hi everyone!

Assignment 2 has been moved out of draft! There's also now an assignment introduction video that's been released.

We've had some difficulties with the autotests working on CSE machines. The nature of this assignment (lots of concurrency, and some ... specialised software to get it working on CSE) has made getting reliable autotests more difficult than we expected. We'll try and get them out ASAP, but we'll be understanding during marking if you've implemented the spirit of the assignment but fail an autotest for some specific reason. I don't want to release half-baked autotests that are flakey, since that'll just cause you more confusion.

We also know some people had issue with the start-birdie command and "invalid shells". We believe that issue has now been fixed. If you're still encountering issues, please let us know and we'll look into them ASAP.

Also, because the assignment has been moved out of draft late, we're extending the deadline for assignment 2 by three days. In other words, you can submit until Monday Week 11 at 9pm and get no late penalty. After that, the usual COMP6991 late penalty applies.

I apologise for any stress this has caused. Please get in touch on the forums if you've got any questions.

Best,

~Tom

Lectures moving online

Week 7 Monday 13:30:00

Hi everyone!

I'm feeling unwell today and am worried that my sickness may be contagious. In order to make sure I don't make any of you sick, we will enjoy our lectures online on YouTube this week.

I apologise for the inconvenience, especially if this upsets any previous plans you had made; however, making sure you all remain healthy and happy is my top priority.

I will email out a YouTube livestream link shortly before each lecture this week starts (in the usual timeslots). There will be a live-chat, and our format will remain largely the same.

I should be able to put a lecture together in my current state, so here's hoping it doesn't get worse. In the worst case if the lecture needs to be rescheduled, I will send that email out too.

Thanks all,

Zac.

Welcome to Week 4

Week 4 Monday 16:00:00

Hi everyone, welcome to week 4!

Some quick notices:

  • Assignment 1 is released! It's currently open in draft phase (so please don't start just yet - things might still change slightly), have a read and get familiar with the goals of the assignment. It should be out of draft by tomorrow night, if you spot anything confusing/unusual/mistaken - let us know on the forum!
    • It'll be due Wednesday week 7 - please plan your work accordingly!
  • This week, the workshops will have a slightly different format. We'll go through answers to theory questions from the Weekly Exercises, and maybe some code review. The goal of the workshop will be looking at how to build a library that may be helpful for Assignment 1.
  • If there are any issues with any marks, please ask - we do some sanity checks but entirely possible to have missed things, especially as the marking is automated.
  • Week 4 exercises should be released as well! This week focuses on documentation, doctests and rustdoc - important things to learn for the assignment!
  • Don't forget you can post blogposts for course marks, check out last terms on the forum for some inspiration!
  • The gallery from lab_01_dall_e_rs will be released shortly! We'll update it every now and then if you haven't had time to submit yet!

As usual if you have any questions/issues please let us know on the forum!

~shreys (for ~cs6991)

Welcome to COMP6991

2023-09-08 09:00:00

Welcome everyone to the third offering of COMP6991: Solving Modern Programming Problems with Rust! We are so glad to have you all here and sincerely hope you enjoy your time with us here in this course.

First off, some quick administrivia:

Course website

The course website (where you will find this announcement) can be found at https://cgi.cse.unsw.edu.au/~cs6991/23T3/. This will also link you to the course outline, the course timetable, and the course forum. This course does not use WebCMS3 nor Moodle (except to access Echo360 recordings).

Lectures

Our first lecture starts Monday week 1 (2023-09-11 18:00:00). The lectures are from 6:00pm - 8:00pm on both Mondays and Tuesdays each week (sans week 6). We plan to examine not just Rust code, but hopefully many different programming languages during the lectures and through this set the scope of our studies for COMP6991.

The lectures are hosted in-person at Colombo Theatre A (K-B16-LG03). The lectures will be recorded (into Echo360), however sadly I believe our particular hall does not support live-streaming at the moment.

22T3's lecture recordings are also available anytime here.

Workshops

Through your myUNSW enrollment, you will have selected a workshop class to join each week. It may have shown up as LAB or something similar on the class registration -- this is your workshop. The workshops are held weekly (sans week 6) on Tuesdays, Wednesdays, and Thursdays (currently). Please attend the one workshop that you are enrolled in.

The workshops are heavily practical and involve code design, programming in Rust, and finally reviewing code written and design decisions made, including considering what the experience may have been in other programming languages, etc.

I highly recommend all students to attend at-least your first couple of workshops -- I think you'll find them to be a fun, educational, and social experience, and hopefully you won't need further convincing after that point. If you make the effort to attend them and find this not to be the case, please tell us why and we'll do better!

We have one online workshop stream this term, which will be hosted on the Discord instant messaging / VoIP platform. The course discord URL can be found on the timetable page. Do note that the course Discord is only used for the online workshop, and serves no other purpose.

Our team

Our teaching team this term consists of:

  • Alex Miao
  • Dong Huang
  • Dylan Brotherston
  • Ethan Dickson
  • Gabriel Xu
  • Hussain Nawaz
  • James Davidson
  • Jared Lohtaja
  • Kellie Yau
  • Lucy Parker
  • Mitch Wood
  • Ran Shi
  • Shrey Somaiya
  • Tom Kunc
  • Waleed Shahid
  • Wisesa Resosudarmo
  • Zachary Ecob

We are extremely lucky to have such a talented and friendly teaching team. Please show your respect at all times to our course staff, who I know for certain are all incredibly excited to be teaching this course for you all!

Weekly exercises

On the course website you will find your first set of weekly exercises has already been released! The recommended submission date is Week 2 Wednesday, and this recommended submission date structure (week n + 1 Wednesday) will follow similarly for later weekly exercises. These (usually) provide autotests, and are submitted with 6991 give-crate. Weekly exercises will be released weeks 1-5,7-9 (inclusive), bringing a total of 8 weekly sets.

Note that we've also provided some week 0 exercises that are not assessed, and solely exist to help you make sure your Rust toolchain (whether working on CSE or at home) is working correctly, and get you started on some fundamentals.

Weekly exercises must be submitted before the end of term (Friday week 10) to be eligible for marks.

Blog posts

In order to help recoup any lost marks from weekly exercises, we are offering "blog posts" for make-up marks! We hope they are a fun and rewarding activity, and you can read more about them here.

Difficulty

We would like to formally recognise that COMP6991 is a challenging course, with a relatively high workload. This will be spoken to further in the lectures, but if you are unsure whether COMP6991 is right for you, please send us an email to the course email address (see course outline).

myExperience

We received a lot of useful, actionable feedback from our most recent offering in 23T1 (thank you everyone who filled out the survey)!

I'm a big believer in transparency, so you can view the 23T1 course myExperience report yourself here. I have redacted any identifying information oustide of the admin team, but regardless, I hope you find this helpful in evaluating whether you would like to take COMP6991 this term!

I would also like to address our plans for this term based upon this (once again) very helpful feedback:

  • Weekly exercises due date
    • Weekly exercises now have a recommended submission date, as opposed to a strict due date.
    • The official due date of all weekly exercises is the end of term: Friday week 10.
    • Weekly exercises will be marked on a continuous basis. You are allowed (and encouraged) to submit, view your marking, and resubmit many times with no penalty throughout the term.
  • The course forum's tagging will be more specific; e.g. the "Assignment" tag will be split into "Assignment 1" and "Assignment 2".
  • We are aiming for assignment feedback sooner.
    • With approximately the same student headcount as 23T1, we have increased our tutor capacity by approximately 50%.
    • This should mean less marking load per tutor (on average), and therefore a faster marking turnaround on assignments.
  • Weekly exercise content will continue to improve.
    • New easier questions to help you get started.
    • New challenging questions to push your knowledge.
    • Challenge exercises will be worth bonus marks, as opposed to core marks within that week's exercises.
    • Extension content for those who want to play with ideas outside the scope of the course (e.g. WebAssembly)
  • Lecture / course notes.
    • We will be developing hand-made course notes for your revision.
    • For many students, this may suffice to replace notes you would otherwise take yourself.
  • Help sessions.
    • We will be attempting to introduce help sessions to COMP6991!
    • Previously we have had staff capacity issues, but we believe it may be possible for the first time this term.
  • Guided assignment introductions.
    • We plan to generate more content to help students get started on the assignments.
    • This may include bonus lectures, pre-recorded content, or live group getting-started sessions.
  • VCS assignment submission / marking.
    • We plan to experiment with using GitLab for assignment submission and marking.
    • We cannot commit (ha) to this one just yet, but GitLab seems like a better interface for both student submissions and tutor marking. We'll investigate this one further!

--

Welcome to the course everyone :)

Zac