Exam finished

Week 12 Wednesday 17:00:00

The exam is now finished (unless you have approved extra time).

As an important reminder:

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.

Further submissions will no longer be accepted.

Congratulations everyone for completing COMP6991. It's been a tough course, and I'm sure a lot of you felt the exam may have been too -- I promise that we will be doing our absolute best to make sure every one of you gets a mark that accurately reflects the work you've put in.

I'd like to thank you all for choosing to take this course, and I hope to see you all around in future.

Thanks again everyone for an awesome term!

Cheers, Zac.

Exam finishing soon

Week 12 Wednesday 16:45:00

The exam is finishing in approximately 15 minutes (unless you have approved extra time).

As an important reminder:

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.

Make sure you've submitted with give all questions you've attempted.

Submissions timestamped after the deadline will not be accepted.

Final exam starting in approximately one hour (14:00)

Week 12 Wednesday 12:55:00

Hi everyone!

Your final exam will be commencing in approximately one hour at 14:00 Sydney time. I will release the exam at 13:55 to give everyone a chance to load the paper before the official starting time at 14:00. You may read the paper as you access it, but please do not commence working on the exam until the official start time at 14:00.

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

The exam is three hours, and so will conclude at 17:00. If you have extra exam-time from your ELP, it has been applied (but may not show during submission).

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.

A recent course forum post has just reminded me... Now is a great time to make sure you will have adequate disk quota to complete your exam. Run the rquota command to check that you have a reasonable amount of space available. Search for the "Exam directory size" post on the forum for some tips.

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: 2024-05-01 14:00:00

Finishing time: 2024-05-01 17: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 Update (2)

Week 10 Friday 20:00:00

Hi all!

We had some feedback yesterday on the changes we made to Assignment 2. Some students reported that the changes were signficantly breaking their assumptions about the assignment, as they'd not done it with a work pool (which was what the students we had been speaking to had done).

Given the feedback, we've loosened the requirement for a single thread to say it's the recommended approach for students using a work pool.

We realise that this many changes in the assignment are suboptimal, and we apologise. We decided that reverting this change was better than leaving it, and significantly breaking the assumptions of students who had already completed the assignment.

Assignment Updates

Week 10 Wednesday 14:00:00

Hi all!

We've done some relatively large updates to the assignment today. An incomplete list of the things we've updated:

  • Autotests now have some checks that you've submitted a mark_request, and that your answer isn't too long.
  • We guarantee we'll never get/set a cell bigger than ZZZZZZ999999
  • We clarify that you shouldn't parse the Rhai code yourself (use the CommandRunner), but that you will need to store the Rhai code so you can re-evaluate it when inputs change.
  • We guarantee you'll never get vectors like A1_A1
  • We narrowed the scope of Stage 6 to self-referential cells (i.e. A1 depends on A2 which depends on A1), not including cells that don't reference themselves, but do reference another which is self-referential (A1 depends on A2, A2 depends on A3, A3 depends on A2: we'll never ask for the value of A1)
  • We've clarified that you should have exactly one worker thread for calculating dependency updates, and that you should have one thread per connection to the sheet.
  • We've clarified Design Question 1: we meant to ask you how you were storing the command as a whole (i.e. get vs. set commands). Since it was unclear, we'll also accept detailed answers about how you're storing the Rhai command.

The forum was mostly up-to-date as of Tuesday night, and we'll try keep a close eye on it over the next few days.

Finally, some assignment 1 marks will be updated tonight; based on questions you've raised to us. Some assignments (mainly those with extensions) are being marked currently, and we'll try get those out as soon as we can.

Best,

~Tom

Delays in course responses

Week 9 Thursday 20:00:00

Hi all!

As mentioned briefly in the lectures, we've recieved a large amount of emails and forum posts recently.

Please expect to have emails replied to by Monday - if you don't recieve a response to your query by then - please email us again!

We'll also be adding some more tutors to the forums to help cover the recent additional load :)

Please make sure you are directing all emails to the cs6991 email address, and not to the individual admins or lecturer.

Thanks for your understanding, and best of luck with ass2!

Cheers, Shrey (~cs6991)

Make-up lecture livestream URL

Week 8 Wednesday 17:00:00

Hi all!

As mentioned previously, today's make-up lecture (due to the public holiday) will be hosted live on YouTube at our usual scheduled time (18:00-20:00). There will be a live chat to interact with myself and each other, and we will go back to our usual on-campus lectures next week Monday.

The live-stream URL for today: https://youtu.be/S_I0dyMYyhM

Thanks everyone, hope to see you there soon!

Zac

Help Sessions, and Christmas Tree

Week 6 Wednesday 21:00:00

Hi all!

Two things:

  1. We're going to run two help sessions this week. There will be one online Thursday 21st March from 6:30 to 8:30pm This will use the same Discord we use for online classes. There will also be one in-person on Friday 22nd from 4-6. We intend to use the Bugle and Horn labs (K17 Level 3) for the friday one, though that may change depending on lab availability. We may schedule more depending on demand and tutor availability.

  2. We've decided to remove the late penalty on the Week 3 Christmas Tree exercise. This means you can submit it all the way up to Friday Week 10 with no penalty. We've done this because we know it was a hard exercise, and some people may have left it but wanted to revisit it later.

Additionally, we've made a video which explains some of the concepts involved in Christmas Tree in detail. The video explores an exercise called "Christmas Lights" which is a similar style of problem. The code for the problem is here.

Hope you're all enjoying flex week,

Best,

~Tom

Lectures online this week

Week 2 Monday 13:15:00

Hi all!

The weather is absolutely crazy today, and I'm working down a sore throat myself. Moving the lectures online this week will hopefully save a few of your (what would be rather miserable) commutes through this nasty storm, and allow me to speak more quietly to preserve my voice (especially given our room's mic issues!).

So unless you have other important classes, please do consider staying home today and tomorrow! If you have any friends in COMP6991 who plan to join the lectures in-person but maybe don't check their email so often, maybe shoot them a quick message to forward this notice on.

The lectures will be hosted live on YouTube at our usual scheduled times. There will be a live chat to interact with myself and each other, and we will go back to our usual on-campus lectures next week Monday.

The live-stream URL for today: https://youtu.be/z5NhGZilkho

The live-stream URL for tomorrow: https://youtu.be/UPopGZhxesE

Thanks everyone, and stay safe!

Zac

Welcome to COMP6991

2024-02-12 00:00:00

Welcome everyone to the fourth 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/24T1/. 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 (2024-02-12 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), Live-streaming seems to be a coin-flip term to term. Hopefully it comes back this term, but it's sadly not something I have control over.

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 Wednesdays, Thursdays, and Fridays. 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
  • Brian Li
  • Daniel Field
  • Daniel Wang
  • Ethan Dickson
  • Giulia Betke
  • Hanyuan Li
  • Jaden Lanceman
  • James Appleton
  • Jared Lohtaja
  • Jayden Leung
  • Jennifer King
  • Larry Tang
  • Luke Fisk-Lennon
  • Matthew Kokolich
  • Patrick Hao
  • Peter Derias
  • Qinzhe Xu
  • Sabine Lim
  • Shrey Somaiya
  • Tom Kunc
  • Wisesa Resosudarmo
  • Xavier Carey
  • Zachary Ecob

Wow, so many tutors this term!! 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 due date is Week 2 Wednesday, and this due 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 have a 0% late-penalty for one week, before immediately increasing to 100% on the 7 * 24th hour. Note that all weekly exercises must be submitted before the end of term (Friday week 10) to be eligible for marks, meaning the final marked exercises (week 9) don't get the full week of no penalty.

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 offerings in 23T{1,3} (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 haven't gotten around to redacting any idenifying information for 23T3 yet, so we don't have that available yet (very hectic start of term, sorry!). Once I get around to that, I'm happy to make that available also.

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

  • Last term we switched to continuous marking for weekly exercises. This seemed to be well received but had some infrastructure issues.
    • We plan to revisit the infrastrucure and try to make that more robust.
  • General assignment specification issues: late amendments, underspecified areas, confusing instructions, etc.
    • Assignment 1 will have general improvements and some new flavour for 24T1. We plan to look at forum questions for common confusions and fix them up in the spec. Hopefully less post-release changes.
    • Working on a new assignment 2 (as previous asst2 was conceptually confusing). We're pretty excited about this one so hopefully that pans out! Similarly will have another look at previous asst2 feedback and make suitable changes. Similarly, aiming for minimal post-release changes.
    • Trying to get marking back to students sooner (as always). Considering making asst2 marking more deterministic.
  • Potential experiments with workshops
    • Some students really engage with and especially enjoy the workshops.
    • Other students would simply prefer a more traditional LAB style "help-session" approach.
    • Interested in experimenting with a balance... let us know your thoughts on the forum!
  • Weekly exercises due date
    • Last term, we experimented with a final due date of Friday week 10 for all exercises.
    • Statistical analysis showed this didn't correlate with positive educational outcomes. Many students do just submit everything end of week 10 instead of working on problems week-by-week and revisiting missed ones later as the edge-case.
    • Trying a new approach this term, that's somewhere in the middle... let us know your thoughts on the forum!
  • Lecture / course notes
    • Last term, our tutor Wisesa worked on a draft course notes for us! I plan to revise this into official cs6991 notes to supplement (or, if you prefer, replace) your personal notes from lectures.
  • Final exam
    • Final exam feedback continues to be generally good, and well-received. I have been told the school will still allow online examination this term; assuming that continues to be a possibility, I have no personal desire to move the exam on-campus. Note that the exam is open-book and non-proctored, which we similarly have no plans to change.

--

Welcome to the course everyone :)

Zac