• Mark Update

    Posted by Hayden Smith 🎉 Thursday 03 September 2020, 11:14:41 PM.

    Hi everyone,

    Apologies for the second notice in one day. After a number of emails from students with questions about marks, I've done some digging around some of the issues that we've been facing. So check your mark again :) I won't bore you with the details, but the short reason is that:

    1. Some last minute scaling we did before marks released didn't get synced with UNSW's systems during our last upload
    2. Assignment 3 marks that were updated over the weekend and didn't get synced with UNSW's systems for mark release

    In terms of (1), apologies for the confusion this may cause some. We did a v1 on scaling and then a v2 (which was more generous), and it appears the v1 was uploaded and the v2 upload failed. Thankfully though, no one's updated mark is lower than their original released mark . Students on the upper end and lower end of the course will see limited to no movement. I hope this brings us all more in sync - I understand why those couple of dozen people were so confused when emailing me today.

    Any reviews of exams, or any other issues that have been raised with me via email, are still being chased up. So don't think this will cause those to go into a black hole. We'll work through you with it.


  • Thanks again & Good luck

    Posted by Hayden Smith 🎉 Thursday 03 September 2020, 12:08:01 PM.

    Hey everyone,

    We got the MyExperience results today, and I wanted to thank so many people for filling it out - both with positive and negative comments. Overall the course received better feedback on average than other UNSW courses! You were very kind to us. The one metric that we didn't perform well in though was people felt that they had not learned enough about the ability to work online with others. This will be on part of this one of the biggest changes that will be made to 21T2 will be probably introducing more pair programming group work in at least one assignment.

    In terms of the other critical feedback we had, most of it centered around the difficulties with toolchains, confusion with concepts/C++20, the negative impact of limited physical interaction, and having too many voices with authority in the course. In my view, most of these issues arose from the ambitious attempt to bring more cutting edge C++ and build systems into the course (concepts, some of ranges, other C++20 topics,issues around the complex toolchain). This also led to the occasional flow on effect where because I wasn't as capable as Chris on specific topics he introduced (ranges, concepts, iterators etc), and then we had to share discretion on authority, which in any situation will lead to some inconsistencies. Being in charge of the course, any decisions around approach and teaching are things I sign off on (for better or worse), and as part of that the negative side effects of some of these things are fundamentally my responsibility above anyone else.

    Chris and I think the course definitely felt a bit bloated with the new topics this term, and that bloat caused some of the downstream struggles for some students. So, to give you some context Chris and I have an intention to push CSE to essentially start a properly advanced C++ course where the C++20, complex toolchain, complex modules come together and go even deeper on topics. It would be a follow on course from a slightly toned down COMP6771. This would also give COMP6771 the breathing room to be less difficult at the upper end and solve a number of things students pointed out as issues. Just to be clear -- this is not a thing officially happening, and no one has even remotely been talked to about this beyond Chris and myself. I just wanted to express our ideal intention for the future of C++-specific courses in CSE, so that you understand what we took away from this offering in terms of lessons learned around some of the bloat. If our push for that fails we will likely just tone back COMP6771 a bit. To those 9%~ of students that felt quite let down (and it expressed it quite specifically), I would like to share my apologies. While changes in future offerings don't change your own experiences, and some issues arise from constraints we have within UNSW that I can't control, I'm personally sorry that you came away feeling like that. We let some of you down and that's not lost on me.

    Finally, in relation to your final results , thanks to those who have emailed me with their concerns, we will address them. A small number of students have had marks different to expected (e.g. 0 in the exam, or an assignment mark missing) due to strange technical errors or due to UNSW not propagating mark updates to your transcript yet. This probably doesn't effect you unless you unless it was really obvious when you saw it that something had gone terribly wrong.

    Overall whether you had a great time or a bad time, I hope everything goes well in T3 and going forward, and if there is ever anything I can help out with in future never hesitate to reach out to me :) Always happy to chat to great students like all of you. Was a pleasure to meet so many. Stay safe!

  • Assignment 3 + Exam

    Posted by Hayden Smith 🎉 Thursday 27 August 2020, 10:03:17 PM.

    Assignment 3

    Assignment 3 results have been released. It was a hard assignment, and the average mark was much lower. I believe only half of the students scored above 50%, so don't beat yourself up too hard :)

    If you feel something is wrong with your mark, you have until 10pm on Tuesday the 1st of September to raise your issue (see instructions below). Only issues that are raised before that date will be addressed.

    • If you have automarking issues, please email (as per other assignments).
    • If you have issues around your subjective testing or best practices mark, please email Simon Haddad

    Final Exam

    The final exam marks have been processed. They were scaled pretty heavily, and a raw mark of approximately 8/60 (13%) was adequate to pass the exam hurdle. There are nearly no students who managed to get above 50% for the course overall, but also fail the hurdle for the exam. As an educator this makes me happy, because it means that there are extremely limited cases of people who did well in the course, but failed because of poor exam performance.

    Congratulations to a number of people who scored a raw mark of 20/20 in questions 1, questions 2, and questions 3 of the final exam. While no one got full marks in the exam as a whole, congratulations to Kevin Luxa for scoring 57.5/60 as a raw mark in the exam component.

    The average raw mark for question 1 was approximately 16/20. For question 2 is was quite low, less than 5/20. For question 3 the average mark was approximately 10/20. That's really quite an impressive showing overall!!

    We won't be releasing any marks relating to your exam directly. You can figure out your scaled exam mark by reverse engineering your final mark when the final results are published during the holidays.

    Final Results

    Good luck to those receiving their final results in the coming weeks. A reminder that you have 5 days to lodge a request for review with UNSW once your marks come out, if you choose to.

    It's been a pleasure to meet so many of you this term and navigate through a more senior CSE course together. If you want to keep in touch add me on LinkedIn. Otherwise, hopefully our paths cross in future!!! Enjoy your holidays, try and take a break before the T3 train comes rumbling toward us :)

  • Exam Marking

    Posted by Hayden Smith 🎉 Wednesday 19 August 2020, 05:25:41 PM.

    Hi everyone,

    Congrats on finishing the exam - we'll be marking it over the next week.

    I've already gotten some questions and comments around the exam, and I'd ask again that before people share feedback they ensure they watched the two lectures covering the rationale of the exam and the exam brief page . We discussed extensively with the course the greater risks of running easier exams, shorter-content exams, or shorter-timed exams. Please pass on feedback if you have it - you can always email

    One common miss conception I've seen is that students think questions are "all or nothing" in terms of marks. That's not the case - each question will be marked as segmented as possible. I.E. If you did 30% of the functions/capabilities of a question, we aim to give you 30%~ of the marks. That means we we, for example, mark your sparse matrix for addition, we'll create two matricies, add them together, check if the values match, and then award the mark. Completing 60% of a question successfully should in general be enough to get 60% of the marks for a question. Obviously there is a certain minimum you need to do (e.g. construction, printing or accessing the info) for us to run the tests, but if you made it over that small hurdle you should feel that most students will be marked accordingly.

    From my quick looking, if you completed all of the non-difficult (reverse, repeat) functions for Q1 (or equivalent), that alone is likely enough to be a pass for the exam. I don't want to speak with too much certainty as naturally these things are case by case, but I hope that puts some people's mind at rest.

    A final reminder that while the exam is based on performance, there is quite a lot of human involvement in the marking. I'll just give you a reminder of the process:

    • We automark everyone's exam to make sure their progress on each kind of atomic thing (command in Q1, or functions in Q2, Q3) are given marks separately to reflect the progress you made.
    • Myself and tutors will go through everyone's exam and look at your code and look how your automarks performed. If there are some very strange runtime errors, or compilation errors, that are clearly from really trivial technicalities (e.g. adding a few characters, or a stray character stopping code compiling), we will fix them up and re-run it.
    • We scale the marks accordingly to ensure a reasonable distribution of marks (because raw marks will obviously be quite low). Then at that point you have an exam mark.
    • For students that are then risking failing on compile errors, we will spend the time to talk to them and distinguish whether it really is a technicality, or whether they just didn't have a good enough grip on C++.

    If you have any further questions just email me at

    I've seen a lot of submissions - people overall did a great job, it was going to be long (for good reason) and we all new that and have a plan around it. Congrats getting through it, things will be OK :)

  • 1 week to go!

    Posted by Hayden Smith 🎉 Tuesday 11 August 2020, 09:01:49 PM, last modified Tuesday 11 August 2020, 09:28:48 PM.

    Hi everyone!


    Only 36% of students have filled in the MyExperience survey :'( This makes me very sad. I don't want to try and motivate you by bribing people with extensions or easier exams.. I think you're all adults and don't need carrots waived. I just want to appeal to your sense of doing helpful things when it consumes so little of your time. MyExperience closes in 48 hours, and we'd really like at least 60% of students to complete it. If you haven't filled it in, or someone you know hasn't, take the time right now to just fill it in :) It can be done very quickly!!

    If you think COMP6771 is excellent, or terrible, the most useful few minutes you can spend today is filling in MyExperience!!



    I hope that your other exam preparation and life in general is going well. Just a heads up that the COMP6771 exam is in 7 days and that you can still find all relevant information about it here . Please attempt to run and try out the stub exam prior to the exam. This will help discover and debug potentially toolchain or VLAB problems prior to the exam. Preventable technical issues during the exam will slow you down and waste your time.

    Assignment 1 & 2 Distribution

    By popular demand, here is the mark distributions for ass1/ass2

    Assignment 3

    At this rate it looks like we won't get assignment 3 marks to you by the exam, sadly! Just too much marking to do in too short a time period :)

  • MyExperience + Exam + Week 10

    Posted by Hayden Smith 🎉 Wednesday 05 August 2020, 03:20:09 AM.

    Hi everyone!

    This is quite a long notice, lots to read.


    Please fill in the MyExperience survey. Literally everyone wins when you do it. You, me, us!

    Currently only 12% of students have filled it in (I am saddd). We need to aim for around 75% participation, and if all of the kind and caring people in the course take the 5 minutes to fill it out, then we'll get there in no time! Genuinely, please do it :) :)

    Complete MyExperience here .

    Your honest feedback is always appreciated. We want the good and the not-so-good about the course, as well as the good and not-so-good about teaching staff. Please remember to distinguish feedback directed at the COURSE from feedback directed at the STAFF :)

    For transparency, we're aware that the major things on our feedback list are:

    1. Making the toolchain less difficult to work with/setup
    2. Having an easier and progressive introduction to ranges/views/other topics introduced quite early in the course. Same for iterators.

    Due to the limitations of UNSW's systems, we aren't able to get Chris or your help session tutors into the myexperience. So if you want to leave feedback for Chris click here , and if you want to leave feedback for any help session tutors click here . While feedback in these forms is anonymous, FYI I personally will also have visibility over it. So the best place to call me mean names is in MyExperience :)

    Lectures (final week)

    • Wednesday : Guest lecture with Optiver. They have yet to send me the slides, though I assume it will be similar to last year (high level discussion on how they use C++ at optiver). It's likely we'll get slides very close to the start of the lecture.
    • Thursday : Exam discussion + revision.

    Tutorials (final week)

    Your last tutorial is this week. We'll be covering content from Matt's week 9 lectures as well as a few revision questions. Don't forget to say a thank you to your tutor!

    Help Sessions (last fortnight)

    We still have 6 help sessions between now and the final exam. The need to use them will have dropped off since the final assignment is due, however, if you have revision or exam questions you can still drop in and say hi to the tutors.

    Assignment 1 & 2

    If you have received your marked assignment 1 or 2 submission, and you intend to appeal your marks but have yet to do so, you have 24 hours to email myself or your tutor for that appeal. If those conversations are not started in the next 24 hours, we won't be accepting any appeals for automarks or style/test marks etc. If you have ongoing and unresolved mark appeals or corrections you have nothing to worry about.

    Assignment 3

    Congratulations to nearly everyone for submitting assignment 3. This is likely the biggest hurdle in the course for many of you. I'm proud of you all for sticking it through, and if you didn't make it to the end, proud for you getting it off the ground.

    Exam Details & Practice

    We have released a page (also accessible in the sidebar) detailing information about the final exam . It provides information about the exam, expectations we place on you, and information about how to setup and test out a stub exam repo and environment.

    If you have further questions about this, please post on the forum. It's likely that small clarifications will be made to this page in the coming days. You will be notified of any material changes.

    A final comment on stress and expectations on yourself

    This term I've seen a lot of students succumb to large amounts of stress and anxiety about university, and specifically in this course, peaking with assignment 3. It's always hard to watch the majority of students feel depressed and stressed that they can't complete parts of an assignment that are designed for a minority of the top students to complete extensively. I often feel students are aware of this, but get stressed that they'ree not operating at the level they want to... i.e. looking around at people smarter than you and beating yourself up asking why you can't be them.

    One thought I want to leave you all with: Stop trying to compare yourself to others in a vacuum (e.g. COMP6771). People in this course are better than you at C++ - that's just a fact of life. For some of you, a lot of people in this course are better than you at C++. Does that make you less worthwhile a person? Less capable? No. Every person in this course is a complex person with their own life and story, and you should always aim to be the best and most capable person you can be across all facets of your weird and wonderful lives. While you might be worse at C++ than your friend, maybe you're a superstar sibling, or are busy helping your parents recover from COVID-19 related issues. Maybe you spend a lot of time keeping in shape / being fit, or reading books. Maybe you thought learning how to cook or be independent meant more than bashing your head into terminal for 10 hours on a Sunday. Maybe you work a part time job and are just developing different kinds of skills right now. Maybe you're practicing your painting skills, or writing a novel.

    Too often we let ourselves look at our professional life or tertiary education progress as the only real "metric" in making sense if we're growing as people and doing things worthwhile. But don't forget to stop and look around at what little things you focus your time on that others don't. We can all find vacuums and areas of life that we're just not the best at, but don't let that define you and your value so broadly.

    And lastly, just keep looking after each other. Keep being nice and compassionate... it's free. The world isn't going to get a whole lot nicer in the next 12+ months, and in a year from now you'll largely forget about this course, iterators, templates - but you won't forget about the people who you've supported and those that have supported you.

  • End of week 9 updates

    Posted by Hayden Smith 🎉 Friday 31 July 2020, 08:04:01 PM.


    We only have two lectures left in the course!

    • Optiver Guest Lecture - Wednesday week 10
      • Someone from Optiver (to be determined!) will be giving a guest lecture on Wednesday.
      • This lecture is non-assessable, and I've asked them to allow it to be recorded (if you don't hear from me again you can assume that it is).
      • I've asked them to provide me the slide deck 24 hours out so that you can see what the lecture is about, and decide on your interest levels.
    • Course Revision & Exam Brief - Thursday week 10
      • We will answer any questions about the exam
      • We will answer any questions students have about the course as a means of revision
      • This lecture will have limited structure, besides some early briefing comments, it will mainly be Q&A

    Tutorials / help sessions

    Week 10 tutorial is just another normal tutorial. It will mainly focus on polymorphism (Week 9 lectures).

    Help sessions will die down after the assignment due date -- however, there will continue to be help sessions this weekend and we may put more on between now and Monday. Always check the help session timetable in case more sessions appear. Usually we add more sessions once tutors report that help sessions are over-crowded.

    Assignment 2 (Marks released!)

    Assignment 2 marks have been released.

    PLEASE READ THIS: There was an error during the automarking that meant two of our tests were broken, resulting in a top mark of 7.211~ out of 7.5. EVERYONE IN THE COURSE HAS "FAILED" TESTS 25 AND 26. EVERYONE. This is a systematic error that we'll fix up when we collate marks for the course, but correcting it after the automarking was completed would have delayed the release of your feedback. We'd rather focus on getting you your feedback.

    (Jokingly) I look forward to hearing from the person who doesn't read the above and emails me or posts on the forum telling me the auto-marking didn't give them full marks.

    Getting results

    You can collect your mark and see your feedback by going to your GRADES SECTION .

    If you can't collect your submission, email

    Mistake with results?

    If you feel there has been a mistake with your AUTOMARKING marks, please email .

    If you feel there has been a mistake in your or clang-format mark, or C++ practices or quality-of-tests mark, then please follow these simple steps:

    1. Email the tutor who marked your assignment, and explain your case to them for them to reconsider. They will make a judgement call.
    2. If you're unhappy with their judgement, email me at and I'll assess it. Mistakes happen, sometimes tutors get it wrong, sometimes students get it wrong. No shame in it.

    Please note: If you ask for your marks to be reconsidered, it's always possible that your mark can go up or down . Sometimes when correcting poor judgements on marking in your favour, it's possible to uncover other poor judgements not in your favour! So don't just think "I'll just nag for more marks, I have nothing to lose".

    How do I know who marked my assignment?

    When you collect your submission, go to the bottom of the result. It tells you the zid of the tutor who marked it. Simply email [zid] and it will go to the person who marked it :)

    Assignment 3

    Assignment 3 is due on Monday at 8pm. Don't forget to submit! And don't forget to push to master before you submit.


    The final clear and detailed information about the exam will be released sometime on Mon/Tue/Wed next week. Sit tight until then, but we've been clear on the general structure so don't expect any surprises. The Thursday week 10 lecture is partially devoted to exam questions (as described above).

  • Mid week 8 updates (link updated)

    Posted by Hayden Smith 🎉 Wednesday 22 July 2020, 07:28:40 PM, last modified Wednesday 22 July 2020, 07:37:14 PM.

    Second link has been updated. Please use this email.

    Hi everyone,

    I just wanted to touch base with everyone, since we haven't had much to update on in the last week and a half. As always, email me anytime if you have anything on your mind :)

    Lectures, Tutes, and Help Sessions

    I hope lectures and tutorials are carrying on alright! Nothing too controversial is happening on those fronts. This is our third last week of class together though - so we will be wrapping up this term before you know it.

    Please continue to attend help sessions! Our tutors will do their very best to help you. If our help sessions become too full, we'll put more on the schedule. We want to do whatever we can to support you through these last few weeks.

    Assignment 2

    Aiming for marks out end of this weekend. Waiting for the last of the students with long extensions before we can release :)

    Assignment 3

    I hope a lot of you have tried to get your teeth stuck into assignment 3. From talking to students and reading around the forums, for those that are having struggles they tend to centre around either 1) Issues with the environment, or 2) Issues with understanding the spec and code. Here are my two requests if you're in those pages.

    • Q. What do I do if I'm having issues getting assignment 3 to work in my environment?
      • A. Take a look at THIS THREAD thread that Chris posted with some updates, follow the instructions, then post a question if you need further help.
    • Q. What do I do if I don't understand something about the spec? Iterators, concepts, these things confuse me?!?
      • A. Please post about it in THIS THREAD that I've created. We will create collate your questions, and on Fri/Sat/Sun do an extra lecture to address some of these questions. If we are going to address your question in the lecture, we'll let you know on the thread. Things we don't cover in the lecture we'll just answer directly in the thread. This lecture will be posted on the "Timetable" page (so keep an eye out for it!)

    Final Exam

    Students have asked about the final exam now a few times. Your final exam appears on your exam timetable on MyUNSW. It's a take-home exam that you can complete anytime during a 24 hour period. If you have another exam that day, you will still be able to complete the COMP6771 exam in that 24 hour period.

    Details on the exam will become firmer toward the end of week 9 (about a week and a half away). I'll update you closer to that time, and then we can discuss it more in week 10.

  • End of week 6 updates

    Posted by Hayden Smith 🎉 Friday 10 July 2020, 05:28:26 PM.

    Hi everyone!

    Hope you're enjoying flexibility week. By the looks of things it's the opposite of a week off for most people, and I hope things are going OK for all of you. Just some updates on key topics:

    Week 7 Lectures

    We will resume normal class in week 7 - both lectures and tutorials. We'll see everyone at 1pm on Wednesday for the lecture on Templates .

    Assignment 1

    Nearly all students have their marks back for assignment 1. A handful of students (you know who you are) are still awaiting some remarks, performance and benchmark sanity checks, etc. This will get done over the coming days. Trust me, they will be handled.

    A reminder that any issues with clang-format, C++ best practices, or the quality of your tests, should be directed to the tutor who marked you. Other issues should be directed to

    Assignment 2

    Reminder: Assignment 2 is due at 8pm on Monday (13th of July).

    Please remember to push your code to master before you run "6771 submit ass2". This command submits what is on your master branch on GITLAB! So check what's in gitlab on the website before you submit as a sanity check. We understand this is a new system so have been lenient on people for ass1, but we will have less leniency in assignment 2. The specification was updated for ass2 to make this a bit clearer.

    There has been a very robust conversation around Euclidean Norm caching, with great contributions from Yu Hou, Yuan Tao, Forrest Koch, and David Connick (and others!). To avoid confusion, we've reduced all discussion on this topic to a single thread here . This should hopefully provide more more concise clarity on the topic. Please refer to that for any questions about it.

    Assignment 3

    Assignment 3 will be released on Tuesday the 14th of July at 8pm. It will be pushed to your gitlab repos like normal, and you can access the link on Webcms3 like normal.

    Due to the situation with COVID-19, and the difficulty of everyone being isolated, we have decided for assignment 3 to be an individual assessment (previously it was to be done in pairs). So you will all complete this assignment individually. Don't think this is somehow now a lot harder - the assignment was originally written to be done individually.

    Have a great weekend :)

  • End of week 5 updates

    Posted by Hayden Smith 🎉 Friday 03 July 2020, 02:01:25 AM.

    Hey everyone,

    Flexibility Week

    Congrats for making it to the half way point of the term. I hope you're looking forward to you week off (sort of) next week! 13 days until our next lecture. There are no lectures and tutorials in week 6.

    There are help sessions, and you do have to complete your second assignment.

    Assignment 2

    This is due on Monday 13th of July (week 7) at 8pm. Reminder to double check the late penalty, as the assignment 1 late penalty was an exception to the rule. 2% per hour off maximum for this one.

    If you need assignment 2 help, continue to make use of help sessions and the forums!

    Assignment 1 Marking

    Getting results

    You will be receiving your assignment 1 marks and comments back sometime between now and 8pm Monday. Our intention is to give you your results back at least one full week prior to your second assignment being due. You can check here intermittently to get your marks and feedback.

    The delay has largely come down to the complexity of automarking these assignments - marking one student is a 10+ minute intensive series of tests and when that scales to hundreds of students things just take forever . Thanks for being patient, and we're very glad that you'll get it back with ample time before ass2 due date.

    Mistake with results?

    If you feel there has been a mistake with your automark/performance marks, please email .

    If you feel there has been a mistake in your or clang-format mark, or C++ practices or quality-of-tests mark, then please follow these simple steps:

    1. Email the tutor who marked your assignment (*instructions below), and explain your case to them for them to reconsider. They will make a judgement call.
    2. If you're unhappy with their judgement, email me at and I'll assess it. Mistakes happen, sometimes tutors get it wrong, sometimes students get it wrong. No shame in it.

    Please note: If you ask for your marks to be reconsidered, it's always possible that your mark can go up or down . Sometimes when correcting poor judgements on marking in your favour, it's possible to uncover other poor judgements not in your favour! So don't just think "I'll just nag for more marks, I have nothing to lose".

    How do I know who marked my assignment?

    When you collect your submission, go to the bottom of the result. It tells you the zid of the tutor who marked it. Simply email [zid] and it will go to the person who marked it :)

    See you on Wednesday in week 7 for our lecture on introduction to templates!

  • Week 4 Updates

    Posted by Hayden Smith 🎉 Tuesday 23 June 2020, 04:10:57 PM.

    Hi everyone,

    Some key updates for you below. Any further updates this week (if any) will be provided in the first moments of lectures this week.

    Assignment 1

    Congrats to nearly everyone for completing assignment 1. 👏 👏 👏 👏

    Assignment 1 is currently being automarked. This will take another few days (lots to run!) and then your tutors will do the manual marking for good C++ style and other sanity checks.

    At the moment the intention is to have your marked assignments back to you by the Wednesday lecture in week 5. If we miss this deadline (your tutors have lives too), it may be another day or two. We'll do our best.

    Due to extensions that some students have, we're unable to release any marks prior to census date. So if you're tossing up dropping the course, don't wait for any revelation that you don't already have. The one word of advice I'd probably give to you is that if you've managed the course so far, you'll manage it for the rest of the term. The course doesn't get exponentially harder, it's all just moderately hard and stays that way.

    Assignment 2

    Assignment 2 has been released. You can view it here . Currently it's due at the start of week 7. Much of assignment 1 can be completed with knowledge covered this week (week 4) in lectures. The rest of the knowledge will be covered next week in lectures (week 5). No reason you can't start now, however, if you didn't start for a week and a bit you'll be fine.

    Bonus lecture - toolchain

    Chris will be doing a non-assessable bonus lecture on Friday 1pm-3pm this week (week 4). It will cover topics outlined in this piazza post . The link to the zoom call is on the timetable ! It will be recorded so you can always watch later.

    You're not expected to learn anything from his lecture, but many of you have been curious.

  • Assignment 1 late penalty reduction + Other

    Posted by Hayden Smith 🎉 Tuesday 16 June 2020, 01:51:11 PM.

    Hi everyone,

    Assignment 1

    Assignment 1 late penalty has been REDUCED by a factor of 4. 10pm Sunday hard deadline unchanged. The 2% reduction off maximum mark per hour submitted late has been adjusted to 0.5%. Regardless, just like before, after 50 hours (Sunday 10pm) we will still enforce a hard 0.

    If you're struggling or confused about assignment 1, we will spend the last 30 minutes of the Wednesday lecture (tomorrow) discussing it. We will answer questions, talk about ways to solve the problem, as well as help some people overcome any overwhelmed feelings they're having about ranges / abseil etc. We'll also go over gitlab one last time and how to accept merge requests pushed by us if you have conflicting code. If you're someone who didn't feel they'd complete the assignment satisfactorily by Friday 8pm, we'd encourage you to drop in or at least watch the recording later that evening. We will stop and start the recording again, so it may appear as 2 recordings in the link (please check this image out if you don't know what we mean)

    Elaboration on penalty

    We understand that some students are struggling to wrap their head around some parts of C++ for the first assignment. We don't like the idea of extending the deadline so close to due date - mainly because we know that there are students out there who made decisions this week (skipping social gatherings, spending less time with family) to devote to their assignment on the due date they were given. To extend it so late is (in my view) to disrespect those who've already made compromises. HOWEVER, we also want to alleviate pressure off those who are struggling to find the time in these early weeks, those struggling to adjust to online learning, etc. So the compromise is to simply relax the penalties for late submissions.

    Submission time Maximum mark achievable for reduction of 2% per hour off due date
    Maximum mark achievable for reduction of 0.5% per hour off due date
    8pm Friday 100% 100%
    8pm Saturday 52% 88%
    8pm Sunday 4% 76%
    10pm Sunday
    0% 0%

    Our advice with assignment 1 is still to approach it simply to start. Use algorithms and data structures that are basic (e.g. std::vector, std::queue) just to get going until you can nail the logic and get the outputs you expect. Just get it working . You don't have to use the abseil/ranges things to get a great mark, so start with something less intimidating and work your way up. If this just sounds like words to you, come by the last 30 minutes of the Wednesday lecture.

    Other updates

    • There was some confusion with tutorial solutions and the linking on the tutorial page. This page has been fixed up, as tutorial solutions are now pushed DIRECTLY to your tutorial repo (sometimes you might have to accept a merge request).
    • From this point on I won't be posting notices specifically to let you know when lectures and tutes are released. We have a timetable for these that we outlined and hopefully now you're all in the rhythm. If you get confused at any point, just post on the forum. I don't like filling your inbox with emails.

  • End of week 2 updates

    Posted by Hayden Smith 🎉 Saturday 13 June 2020, 05:27:11 PM.

    Hi everyone,

    We hope you've settled into week 2 OK! And I hope life is going well outside of your education too. I'm sure some out there are trudging through their daily battles and hope you're surviving. This notice is a quick update on key parts of the course, some further comments, and also some calming words about assignment 1.


    • Week 4 lecture(s) will be released tomorrow at 10pm as scheduled.
    • Week 2 lectures (s) on libraries is a lot to take on in week 2! Chris did a great job showing some modern tools. If you're feeling overwhelmed by the content, you should find week 3 and 4 potentially more straightforward. So if you're worried you're not taking stuff in, I'd say at least give yourself another week :)
      • If you find yourself struggling you can also check out some of the slides ( here & here ) from last year. They cover maybe more classical approaches to some of these problems. It could be a good stepping stone for those trying to wrap their head around some of the more modern techniques.


    • Week 4 tutorial will be released tomorrow at 10pm as scheduled.
    • Week 2 tutorial solutions were pushed to your repo last night. We wanted to release them early so you can use some of the solutions to potentially help with assignment 1.

    Help Sessions

    • Don't forget to use help sessions if you really need the help. If they're crowded please don't be offended if the tutor asks you to email them or post on the forum. We're all friends here :)
    • Sorry to those few people who were trying to join help sessions with passwords or other technical glitches. If you have them in future just post on the forum and we'll jump on a solution.


    • Thanks so much for using the forum so much! It's a great resource for everyone.
    • Things to remember about forum etiquette:
      • Search for your question before asking your question. Many questions are duplicates.
      • Explain your problem clearly, that includes 1) Small code snippets, 2) What you've used (build via GUI, terminal commands), 3) What errors you're getting, 4) What YOUR hypothesis of the problem is
    • Tutors will assist you in finding a solution proportionally to how much you assist them in describing a problem!
    • Please read more about this HERE .

    Assignment 1

    Please git pull regularly, and please check the "Merge Requests" tab on gitlab to ensure you haven't got any merge requests waiting to merge in! Even though no major changes, we've fixed the odd bug for the occasional student here and there.

    Assignment 1 is due this Friday night! If you haven't started, please start this weekend! Otherwise I can promise you that this week won't be the more fun of weeks.

    Our #1 advice to you is to approach this problem iteratively: Solve it first focusing on 1) Correctness (no bugs), and 2) Using conventions you're familiar with it.

    For (2), the reason for that is that its much better to get something working and then go back and integrate everything you've learned in week 1 and 2 into it. There are probably better ways to do everything you're doing, but you do not need to start with the best solution. Just start with what you know. And by virtue of the fact that you're all where you are in your degree, I'm confident all of you have the ability to at least have a complete a basic version of the assignment that doesn't time out on most tests. Then iterate from there.

    ~ Your intermittent reminder about iterative approaches to software development ~

    Last thing about ass! Many of you had questions about the marking criteria, so let us just reiterate:

    • Correctness should make sense to you.
    • Test design should make enough sense to you. Some questions we can't answer because the problem of approaching testing well without being told the exact tests to write is part of this challenge!
    • C++ best practices for assignment 1 will be marked focusing on 2 big things:
      • 1. Good programming practices generally for any language (clear code intent, no giant unruly functions, keeping it simple, not repeating yourself, etc). We'll be firm on these.
      • 2. Just generally good C++ practices (using references where appropriate, using const where appropriate, not using raw pointers etc). These are things we have pointed out and made the case for, and more importantly are common best-practices around the internet on C++ and have been for many many many years. We'll be firm on these.
      • 3. More modern C++ practices (modern libraries, newer function syntaxes, etc). We'd really like you to do this, but given its the first assignment it's more likely that we'll "flag" where you could do better without taking many marks off. There will be some marks here, but really the first two points will be the bulk of the focus on mark assignment.
    • Clang format should make sense to you.

    If you have any more assignment questions, let's chat about it on Wednesday in the lecture or in the forum.

    That's all!

    If you have any feedback this early please email OR, if you're feeling shy, share it anonymously .

    I'll see you all (30% of you) in the lecture on Wednesday!! :) Have a great weekend and don't forget to go outside, water yourself occasionally, and ensure you have the right nutrients etc.

  • End of week 1 updates

    Posted by Hayden Smith 🎉 Sunday 07 June 2020, 09:54:49 PM.

    Hey everyone,

    Just some updates to bring you all into sync at the end of this week!

    • Tutorial 1 solutions have been released. Tutorial solutions will be pushed to YOUR repo for tut01.
    • Tutorial 2 & Lectures 2 were released* on Friday at 8pm.
      • Tutorial 2 has some setup instructions for certain machines at home (we don't support everything!). See in that tutorial.
    • Tutorial 3 & Lectures 3 have been released*.
      • Future tutorials and lectures will be released about 10 days in advance like Lecture/Tutorial 3, so check out for Lecture 4 / Tutorial 4 next Sunday night at 10pm.
    • Assignment 1 was released on Friday at 8pm. See the spec for due date.
      • In the 48 hours after it was released we made a number of small fixes and clarifications from early student feedback, but any future fixes or clarifications will be recorded in the changelog at the top of the spec.

    * Lecture slides are subject to minor changes up until the day of the lecture. PDFs released later.

    If you have any questions about the above, please check out the forum to see if others have asked, otherwise ask there!

    Also, just wanted to say a big thanks to everyone for spending the time trying to get their environments set up this week. We could have just started of this course getting you to compile with g++ or clang++ on command line, and while that would have a very gentle learning curve.. we wouldn't be doing you the justice to skill you up in some more modern and industry-like practices. Don't forget that we have a lot of tutors on the forums nearly all day every day to help - so we'll all be getting through the next 9+ weeks together!

    Chris will be taking week 2 lectures, and I'll be taking week 3 & 4.

    Have a great rest of your long weekend :)

  • Starting the term

    Posted by Hayden Smith 🎉 Monday 01 June 2020, 01:09:53 AM.

    Hi everyone!

    Welcome to the start of COMP6771.

    Our first lecture is Wednesday 1pm-3pm, and the link to it can be found in the Timetable page. Please don't bookmark these links to lecture vids, they are subject to change right up until the lecture, so always go through the link on timetable. We will cover quite a decent overview of the course during the first lecture, but in the meantime I think it's important to highlight some key changes or facts about the course!

    (A quick apology too for some materials coming out tomorrow - a lot of this course hinges on some upgrades to CSE systems which won't occur until tomorrow).


    A section to the course outline was added highlighting the technologies we'll be using in this course. Many of you will be familiar with Webcms3 already, but three to get more comfortable with:

    • Piazza : A forum tool linked in the sidebar
    • Zoom : A video calling tool that works best if you download their native application
    • Gitlab : It's like github/bitbucket, but is a cse hosted git server that we will be using for everything in the course. If you don't have a basic knowledge in git, you should start learning now .


    Our Thursday lecture time is an hour earlier than on your timetable. It's 3pm-5pm instead of 4pm-6pm. Always refer to the Timetable page to confirm the times of your lectures.

    We're using Zoom for lectures, tutorials, and help sessions in this course. Zoom has a 300 participant cap at UNSW current license, but the course has 380 students enrolled in it. While after the first lecture, I can't imagine 80% of you regularly turning up to lectures (no offence!), it's quite possible for the very first lecture that more than 300 of you try and attend - and in that case there may be a small handful of people who have to watch the first lecture recorded. I know it's not ideal, but we're just trying to keep the technology and platforms as simple as possible to start. If it turns out attendance remains that high then we'll change lecture platforms.

    The release date for lecture slides is shown on the Lectures page. This is also the page that links to the recordings will be linked up.


    To create more resources for online help sessions (consultations), we have merged a number of tutorials together into new larger tutorials. Each of these larger tutorials is given a name (fruit) and has a tutor. The Timetable page shows in detail which tutorial you should attend based on your original enrollment. You are welcome to attend others of course, but we just pre-assign them to help balance students across tutorials.

    If you can no longer attend a tutorial because of this merge, or you can't attend a tutorial in general, the first tutorial of the week (Ryan Fallah's) will be recorded and a link to the recording posted on the Tutorials page.

    The release date for tutorials and their solutions can be seen on the gitlab pages for each tutorial (the links to these gitlab pages are also on the Tutorials page).


    The release date for assignments can be found in the course outline, as well as in the gitlab pages for each assignment (linked in the Assignments section).

    Final Comments

    If you have any questions, you can post in the Piazza forum (see the link in the left sidebar)!

    This is the first time that courses like COMP6771 have run for the entire term completely online, so it's a learning experience for all of us. Everything the team and I are doing here is focused on creating the best experience for you overall, so we'd love your ongoing feedback and thoughts as we get into the course. We're not afraid to change things up and adapt if we need to. You're all mature, intelligent people which is what gives me great confidence we'll have a great term.

    Chris and I will see you on Wednesday!

  • Welcome to COMP6771 in 20T2

    Posted by Hayden Smith 🎉 Saturday 23 May 2020, 01:52:10 AM.

    Hi there!

    A big hello and a big welcome to COMP6771 in 20T2. My name is Hayden and I'll be overseeing the running of this course this term. It's an exciting course about C++ supported by a team of talented tutors and lecturers - but more on that later!

    Our course outline has been public for a while, but we're just in the final stages of making decisions on the arrangement of lecture topics, as well as the delivery methods of teaching during COVID-19. The course outline will be finalised late on this Sunday night. I'll be sending another email at the end of next week (the weekend before the course starts) with some final information and key points just as a reminder.

    However! Until then, we'd really love your feedback and vote on what is the best way to deliver this course online. There are a few options we're looking at (to finalise in the next day or two), and we want to make decisions driven by student's views. As far as we're concerned this is a higher level CSE course and I'm very comfortable treating everyone like adults - especially if we're about to spend the next few months together!

    Check out this poll before 6pm Sunday (if you care enough!)

    We'll be setting up the forum in about a week. If you have urgent questions before then, please check the course outline. If you still have questions after that, email

    Enjoy what's left of your holidays!!

Back to top

COMP6771 20T2 (Advanced C++ Programming) is powered by WebCMS3
CRICOS Provider No. 00098G