In this paper we will learn about algorithms and data structures – the key building blocks of effective, well-designed, and scalable software.
- Lectures: Brendan McCane
- Labs: Chris Edwards
Brendan is the lecturer and course coordinator and also responsible for setting the assignments, quizzes and exams. Chris is the teaching fellow in charge of the labs. We try to keep our responsibilities largely separate.
- Lectures
- Monday 0800-0850 (Quad 4)
- Wednesday 0800-0850 (Quad 4)
- Tutorial
- Thursday 1100-1150 (TG07)
Labs are scheduled as per your timetable. There is some flexibility in lab streams depending on demand - if you need to make a change to your lab stream please contact Chris Edwards.
Brendan will be available in his office (room 2.54 of the Owheo building) at:
- 11am Monday
- 10am Thursday.
When you successfully complete this paper, you will be able to demonstrate:
- An ability to analyse algorithmic complexity using big-O and related notations
- An understanding of the fundamental structural properties of algorithms including:
- A knowledge of, and ability to use, fundamental data structures used in sorting and searching, graph, tree and network representations
- An ability to solve practical computational problems including the choice of an appropriate algorithm and/or data structure for the context
- An understanding of how the computational overheads and scalability of algorithms or data structures affect their suitability in applications
- An increased proficiency in programming
- Quizzes = 10%
- Assignments = 20%
- Labs = 10%
- Final exam = 60%
Labs will be assessed during labs and assignments will be handed in via blackboard and git.
There will be a short quiz during each lecture (except the first) worth 0.5%. In total there will be 24 or 25 quizzes, each worth 0.5%. The maximum marks you can get for the quizzes is 10%, so this leaves a few couldn’t make it lectures in case you couldn’t make it to a lecture (e.g. you were sick). Unless there are extremely good reasons (e.g. you’ve been in a coma for a month), there won’t be any way to make up a missed quiz other than the spares already on offer. Quizzes will be administered on blackboard during the lecture, so please bring along a device to access blackboard (a mobile phone should suffice). If you don’t have an appropriate device, then you can submit an answer on paper during the lecture.
You must achieve a mark of at least 40% on the final exam to pass the course. The final exam typically will have 100 marks and therefore you must get at least 40/100 on the final exam.
In a paper such as COSC201 maintaining the standards of academic integrity is vitally important. General information on the standards and procedures connected with academic integrity and academic misconduct are available at the University’s pages on academic integrity and academic misconduct.
Some of the discussion on those pages is more appropriate for traditional essay-based assessment and doesn’t map perfectly to the kind of things you’ll be asked to do in this paper (and other computer science papers) so further details can be found at the academic integrity section of this site.
There is a repository on altitude called cosc201code2025
that contains the source code we use in lectures and labs. Assignment base code will be released in separate repositories. You will need to log into altitude (https://altitude.otago.ac.nz) to access these repositories. Altitude is only accessible from on-campus or through a VPN. Note that the code will be added in a just in time fashion - but if you think there’s something missing please let me know!
A big thank you to the following volunteers:
- Patrick Gray grapa814@student.otago.ac.nz;
- Simon Geertsema geesi172@student.otago.ac.nz;
- Jack Taylor tayja826@student.otago.ac.nz;
- Sam Hostad hossa533@student.otago.ac.nz