INF1B: Assessment
Please see the Learn site of this course for information on coursework, including deadlines. Assignment 1 is on STACK (access must go via Learn), Assignments 2 and 3 are submitted to Gradescope via Learn.
Assessment ethos
This document is available below in markdown format which you can view in IntelliJ, any decent editor or IDE, or in a browser for example with the Markdown Viewer Webext plug-in. You can also use pandoc to convert it to another format such as for a word processor. You can IntelliJ to convert it to docx or html format: Tools > Markdown Converter > Export Markdown File To...
The markdown is customisable by editing the <STYLE>
section at the end.
This document exists for transparency and understanding: so Inf1B students know why the assessment is the way it is.
Document version: 2024-01-24
In general
Inf1B is run by a team specialising in Computer Science Education who have structured the course according to pedagogic good practice. This means each Inf1B assessment is more than testing students' knowledge. The assessment is about helping students make more use of feedback, especially during the course. This means Inf1B assessment may be substantially different from "traditional assessment."
The timing of each assessment has been considered carefully. There are three parameters. When to make the assessment available, how long to make it available for, and how much time within that window should be spent doing the assessment.
Release dates are chosen partly to allow for enough material to have been taught to create a meaningful assessment, and partly to help stagger the workload (though one course probably has no influence over the dates on another). Submission deadlines are chosen partly to try to minimise concurrent deadlines across courses, partly to keep students at a desired speed, and partly to allow time for marking. A common misunderstanding among students is thinking that an assessment that has, for example, four weeks from release to submission should take the full four weeks, often at the expense of learning new material or even other courses. This is not true. The amount of hours an assessment is expected to take a student will be smaller, most probably much smaller, than the window from release to submission.
Weekly quizzes
A typical weekly quiz is in two parts: a quick check of recently taught knowledge, and a chance to gather feedback from students to the Inf1B team. The quick knowledge check encourages continual learning of the course: it is easy to fall far behind when there are other demands. The feedback helps us understand how the course is being learnt. This can and does cause changes to subsequent running of the course.
The weekly release of a quiz creates a minimum overall speed for engaging with the material. It takes time to learn the new material well enough to put it into successful practice. Each quiz is open for more than one week, typically 2 working weeks equating to 12 calendar days, so that students need not worry about needing time to do other things or having fatigue or a short illness. There is no time limit on a weekly quiz to reduce any undue pressure. This also means there is time for students to give considered, meaningful feedback back to Inf1B.
A quiz may only be submitted once to make the marks scored meaningful. The marks from one quiz are put into one of three categories (0, 1, and 2) which indicates the percentage contribution to a student's overall course grade for that quiz. This clustering of marks is intended to reduce the pressure of achieving perfection on each question as well as overall. We also did this to avoid punishing small mistakes, misunderstandings, or knowledge-gaps. The ethos of the course is about steadily learning and improving good practice for being a professional programmer. We recognise that this takes time, so we are facilitating your development.
Assignment 1
This assignment tests basic knowledge of the programming language and your ability to put this into practice using a series of online Tests. This differs in style from a typical first programming assignment which is usually implementing a basic but full program. It is essential for students to be able to write complete, correctly functional programs but the minimum size for a typical assignment is usually much more than a typical exercise from a lab class or book. This size increase is often a serious cause of pressure due to a lack of experience at coding this much. While a competent programmer can likely write a 10-line program in 10 minutes, even a highly skilled programmer will struggle to write a 100-line program in 100 minutes.
Inf1B Assignment 1 allows each student to proceed at their own pace (within reasonable limits) because we recognise it is early days for learning programming. Programming is a skill that is not only inherently difficult but also requires learning a programming language and an IDE, both of which require considerable knowledge and practice of their own. Note that learning to program a particular language is additional to learning programming in general because, as we keep pointing out on Inf1B, there is so much more to programming than writing code.
Assignment 1 is released in Week 3 and has a window of about a calendar month. The opening is early to please experienced programmers who just want to get the Assignment done. However beginners are not expected to be able to ace the Assignment when it is first released. The window gives beginners more than enough time to learn and practice the material before taking the Tests. The deadline is generous to give sufficient time to anyone whose learning was inhibited. The deadline is no later because students need to have achieved a certain momentum and amount of learning to tackle Assignment 3.
Each Test has a generous time limit for taking that Test. For each Test, we estimated the time it should take a typical beginner and scaled by a factor between 2 and 3. So a Test limited to 1 hour was expected to take 20 minutes. A test limited to two hours was expected to take 40 to 60 minutes. We feel two hours is the maximum upper limit for comfort: beyond that students can become exhausted or overly stressed. This is also why we are not allowing ETAs per Test to the maximum at 2 hours. Instead of individual ETAs, we have made a mainstream adjustment to the time per Test. We have also applied a mainstream adjustment to the overall Assignment window: you have essentially a calendar month to do a maximum of 7 hours of Tests, though we expect a typical beginner needs only 3 to 4 hours. Moreover, there is no additional learning for this Assignment: it is simply testing the knowledge already covered in lectures, labs, tutorials, and reading; material you must know anyway in order to be a programmer.
A key feature of this assignment is democratisation: you are allowed to choose the relative weighting for three of the Tests to give you some say over your own marks. You are asked to choose before taking those Tests rather than after to force you to consider your own strengths at that stage, which we hope might prompt those who need it to make advancements.
The marks for each Test are withheld until after the Assignment deadline. This allows us to check questions to ensure the question wording or multiple choice answers do not contain any unintended major ambiguities. Adjustments will be applied automatically in those cases before marks are released.
The Assignment 1 Practice Test
There is a Practice Test released a week before the assignment, which students can treat like a past paper. At first it is intended to familiarise you with the question type and to check your equipment works. Later it serves as a yardstick to measure your progress with understanding course material. Perhaps most importantly it provides an opportunity to discuss aspects of Java with other students and, critically, with lab demonstrators. This provides feed-forward rather than feedback.
Feedback is not especially useful for Assignment 1 because even if you knew exactly where you had gone wrong, it is a really specific question: what matters is learning the principle. The likelihood is if you retook Assignment 1 after the end of the course then you would have few if any difficulties with any of it. Thus it was far more important to receive help from the Practice Test when you still had the chance to influence your own marks.