Hi all,
I'll discuss the upcoming mid-semester test and the project a bit more in tomorrow's lecture, but here is some basic information about them.
Mid-sem test
The test will have mostly multi choice and short answer questions, similar to the week 4 quiz, but also several long answer (English or coding questions) at the end. (Typically I include 3-4 long-form questions.)
For long answer questions, you can get partial marks for a partly correct attempt (unlike multi choice, which are "all or nothing") - so make sure you plan your time, and at least attempt them.
For coding questions - if you can't get your code to compile, it's generally better to comment out any non-compiling parts, and explain in comments what you were trying to do, than to leave compilation errors in your code.
As with all tests, the assessable content is everything up to the end of the prior week (i.e. this week).
The best guide to what sort of coding questions you might be asked is to look at C code from the labs and Moodle.
Project
For the project, we'll be implementing a cryptographic cipher, the Vigenère cipher. It's actually an extremely old cipher (16th century), but variations of it were still being used well into the 20th century – and if used with a long enough random key, it's equivalent to a one-time pad and thus would still offer effective security today.
However, the main point of the project is really to demonstrate that you can apply good practices from the labs and lectures – like static and dynamic analysis (which we'll look at in the next few labs) and running tests.
I'm aiming to have the project out by early week 8, so that there are 4 weeks to complete it in (it's due week 11). For a student with a pretty good knowledge of C (i.e. at least a credit in CITS2002), then as long as they've kept up with labs, then an afternoon or two's work each week should be enough to complete it to a reasonable standard. If you have more or less familiarity than that, it might take you more or less time.
Make sure you start early and ask lab facilitators for feedback – it's not intended to be super difficult, but trying to cram the work into the last week is likely to leave you with subtle bugs that will lose marks.
Happy to answer questions about either the test or the project, but unless they're particularly urgent, maybe hold off until after tomorrow's lecture, as they may be answered then.
Cheers!
Arran