The assessment has three components: the programming tasks, workshop participation and the exam components (including quizzes and the final examination). The final mark for the unit will be calculated by combining the marks for all assessment tasks according to the percentage weightings shown in the assessment summary.
The two programming tasks together constitute a hurdle assessment task (see assessment policy for more information on hurdle assessment tasks)
Throughout the semester you will engage in two programming tasks that are assessed individual work. These tasks develop your skills and assess your progress. These programming tasks are to be done in your own time, but you may also use workshop time to work on them and to seek assistance from your workshop tutor. They are due as specified on iLearn for each task.
The programming tasks are designed to be completed over several weeks. Do not leave them until the last week. To encourage you to work throughout the period when the tasks are available, there are progress marks associated with each task. You gain the progress marks by achieving milestones specified for the task by their due dates. Each milestone consists of a specified achievement level in a specified stage of the programming task. If you do not achieve the milestone for a particular progress mark by the due time, then you lose the corresponding progress mark and your total progress mark score is reduced. If you subsequently achieve the missed milestone by the due time of a later progress milestone, then you will be awarded that later progress mark. You can only be awarded each progress mark once. You can earn the progress marks in advance by achieving the milestones early, but you cannot recover lost progress marks by completing the work later.
The two programming tasks are a hurdle in this unit. You must achieve at least 10 marks out of 25 in one of the two of the programming tasks in order to pass the unit. In practice, you are unlikely to pass the unit unless you achieve at least pass marks (12.5 out of 25) in both of the programming tasks.
Programming Tasks are Individual Work
The programming tasks are set as individual work and each one is personalised for a particular student. The University's academic honesty policy will be enforced. You may assist your fellow students with general concepts, pointers to resources and useful tools or commands that are publicly available. You may not become involved in any way in helping a fellow student to find the solution to their particular task, nor may you share with them any aspect of the solution of your particular task. If you decide to develop or modify a tool (including software tools, procedures or methods) to assist you in solving your programming task, you may not provide that tool to your fellow students, nor may you publish it. Each practical task will include additional specific instructions to help you understand what is acceptable and what is not.
Each programming task must be the sole work of the student turning it in. Any cheating will be handled under the University's Academic Honesty Policy.
The following are guidelines on what collaboration is allowed for programming tasks and what is not [adapted from CS:APP website]
What is Cheating?
- Sharing code or other electronic files: either by copying, retyping, looking at, or supplying a copy of a file from this or a previous semester. Be sure to store your work in protected directories, and log off when you leave any lab computer, to prevent others from copying your work without your explicit assistance. Don't use a public repository (such as github) for your programming task files.
- Sharing solutions, quizzes or exams: Looking at, copying, or supplying a programming task solution, quiz or exam.
- Sharing procedures, methods or tools that have been developed to solve challenges of a programming task. If you wish, you may develop your own procedures, methods or tools to assist you in the tasks, but you may not share them with others, publish them or store them in a public repository such as github. If you find someone else's procedures, methods or tools, you may not use them -- if in doubt, ask your tutor or the unit convenor. For example, you may not provide or use somebody else's sequence of steps that can be followed to solve (or partially solve) a programming task. Similarly, you may not provide or use somebody else's program that is designed to solve (or partially solve) a stage of a programming task.
- Using other's code: Using code that you did not write yourself. You may not use code from courses at other institutions, or from any other non-COMP2100 source (e.g., software found on the Internet). You may, however, use Internet and other sources to learn useful concepts, ideas, and programming idioms. If you find helpful ideas on the Internet or in other sources, you should acknowledge them in comments in your code. For Internet sources, a URL is sufficient acknowledgement.
- Looking at other's code. Although mentioned above, it bears repeating. Looking at other students' code or allowing others to look at yours is cheating. There is no notion of looking ''too much,'' since no looking is allowed at all.
What is NOT Cheating?
- Clarifying ambiguities or vague points in class handouts or textbooks.
- Helping others use the computer systems, networks, compilers, debuggers, profilers, or other system facilities.
- Helping others with high-level design issues.
- Helping others with high-level (not code-based) debugging techniques.
- Using code from the CS:APP website or from the COMP2100 iLearn pages.
- Learning programming idioms and techniques from examples.
- Reading Unix manual pages, forums, etc in order to find out how to perform particular tasks (e.g. set a breakpoint in a debugger) or use programming language/library features (such as printf).
- Asking for help from the practical demonstrator, tutor or lecturer.
Be sure to store your work in protected directories, and log off when you leave any lab computer, to prevent others from copying your work without your explicit assistance.
Programming Task Submissions
Submission instructions for programming tasks will be provided on iLearn. The two tasks contain differing forms of automatic assessment and feedback tools that will assist you during the task. The automated feedback will help you identify your mistakes, but does not replace your own analysis of the problem, debugging and testing. The automated assessment contributes strongly to our understanding of your performance in the task.
Each programming task will specify a particular due date. The due time will be 5:00pm on the due date unless otherwise specified.
Submissions in Data File Lab are made through the lab command; submissions in Binary Bomb Lab are made automatically as you progress through the task of analysing and executing the "binary bomb" program. The lab command automatically enforces submission deadlines. However, there is provision for extensions in appropriate circumstances.
Free Extension Days
Throughout the unit, you can claim up to a total of three free extension days for due dates in the programming tasks. Free extension days can be used for any purpose, ranging from a single sick day to a sudden realisation of how to improve your solution. A free extension does not require any formal documentation, and you can use one or more of your free days instantly through the lab command - see the lab command documentation in the Lab Notes section on iLearn.
Free extensions are valuable and you are encouraged to meet the deadlines of the programming tasks whenever possible and conserve your free extension days in case you need them later in the semester. If you have free extension days remaining at the end of the semester, you may apply them to the closing date of the last programming task.
Free extensions can be applied to any due date - task closing dates or progress mark due dates. In the opinion of the convenor, using a free extension for a progress mark due date is probably a waste of the free extension because the remaining progress marks and the final due date for the task will not be changed by the extension of a single progress mark deadline. However, if you believe that extending the progress mark deadline is in your best interests, then please see the lab command documentation for details on how to do this.
If you experience serious and unavoidable difficulties that affect your ability to meet the due dates for progress or the closing date of a programming task, you may apply for special consideration as explained at https://students.mq.edu.au/study/my-study-program/special-consideration. If the request is accepted, the action may be to grant an extension of the relevant due date(s), or it may be to require you to submit an alternative assessment item. Extensions, if granted, are managed through the automated assessment system that you access via the lab command.
If you apply for special consideration, please note:
- Apply promptly. Late applications may make it impossible to sensibly offer an extension, and you may risk having to complete a different assessment task which would mean starting from scratch. For example, if you are ill for two days just before the due date, an extension of two days would be reasonable, but that extension cannot be granted more than two days after the due date since the extension end date would have already passed!
- Email the convenor and unit lecturer to let us know what is happening. This will make it easier for us to respond in a timely manner.
- During weeks 1-6, email firstname.lastname@example.org and also the convenor email@example.com
- During weeks 7-13, email firstname.lastname@example.org
- Use free extension days initially. If you have free extension days available, you can use them to claim a short free extension to enable you to continue working on the programming task and achieve your goal. At the same time, you can lodge a formal special consideration request asking for the consideration that you need. Send an email as above, letting us know that you have used your free extension days for special consideration. If the special consideration is granted as an extension, we will convert your free extension into a formal special consideration extension (the lab command calls this an 'authorised' extension) and your free extension days will be returned to you. However, if the special consideration does not result in an extension, your free extension days will have been used.
Combining Special Consideration and Free Extensions
You can claim a free extension on top of a formal special consideration extension - the two extensions will be added together. If that is not what you want, you should email as discussed above so that if special consideration is granted, your free extension can be converted to an authorised extension.
Workshop tutors will record participation in the workshops, with 1 mark allocated to each week's participation. To obtain full marks, you should participate in at least ten (10) workshops. You can request special consideration if serious and unavoidable difficulties prevent you from participating in workshops. An alternative participation assessment is a likely outcome; for example, participating in online discussion and/or submitting your solutions to the workshop questions.
Weekly Online Quizzes
Short online quizzes will be provided in iLearn relevant to the content of each of weeks 1-12. The quizzes are intended to help you assess your progress in learning and highlight areas that you need to study further. Each quiz will be available for two weeks. You may attempt a quiz multiple times.
The quizzes contribute up to 10% of your final mark, based on a maximum value of 1% for each quiz. You can achieve full marks for the quizzes by earning a total of at least 10 marks in the quizzes.