CSCI 161 Computer Science II Quizzes and Exams
(M23N01)
Quizzes and lab exam
There will be four quizzes and one lab exam.
The quizzes will each be worth 5% of the final grade, while the lab exam will be worth 15%.
- The quizzes and lab exam will be held in labs using the VIULearn quiz tool.
Quizzes must be taken in person in the lab room (315#102) at the designated time
unless prior permission is explicitly obtained from the instructor.
The lab exam must be taken in person without exception: if a student is unable to
attend the lab exam due to a documented illness or emergency then they will be
permitted to write an in-person makeup exam at a later date.
- The quizzes and lab exam are open book, open notes, and the student is
permitted to use the relevant compilation tools to experiment with code segments
during the quiz, and to access online notes, but not to communicate with other individuals
or with ai-supported tools (such as github's copilot or chatGPT)
to obtain or provide help on the quiz/lab exam.
- In general, you will be given 40 minutes to complete
a quiz and 2 hours to complete a lab exam.
- The lab exam mark can be used to substitute for one quiz mark.
Individual work: as with all work in this course, quizzes and exams must
be strictly individual efforts. The student is not permitted to seek or accept
assistance from other individuals in completing any portion of the quiz.
Similarly, students are not permitted to provide assistance to other students
in completing any portion of the quiz/exam. Note that VIU policies consider
both parties to be committing academic misconduct in such situations,
and both parties may incur the resulting penalties.
Quiz | Date (in lab) | Key question topics |
Quiz 1 | May 24 | gdb, git, strings |
Quiz 2 | June 14 | pointers/arrays, new/delete[], sorting theory |
Quiz 3 | July 5 | lists, stacks, queues |
Quiz 4 | July 19 | binary search trees, copy/move constructors, operator overloading |
Lab exam | Aug 2 | Comprehensive |
Final exam
The final exam will be worth 25% of your total grade and will be a 90-minute
paper/pencil exam held
in building 315, room 216 (our regular lecture room) during
the final scheduled lecture of the semester (Aug. 3).
The exam must be written at the time/location specified.
Exceptions will only be made for officially documented illnesses or
emergencies, in which case the student is expected to contact their
instructor as soon as they are able return to university and arrange
for a make-up exam to be taken as soon as possible. Note that the
make-up exam will NOT be the same exam given to the rest of
the class.
The final exam is closed notes, closed book, no dictionaries,
calculators or electronics permitted. The use of earplugs/protection is permitted,
but the use of headphones/headsets (with or without connected devices) is not.
EDIT: students will be permitted to bring one 8.5x11" double sided sheet
of notes for the final exam.
The final exam will consist of a variety of question forms,
generally chosen from formats similar to:
- a set of short answer questions on Linux
- show the precise output from the following C++ program...
- given a set of compiler error messages,
identify all the syntax errors in the following C++ program...
- write a complete and correct C++ program to do the following...
- write a C++ function to do the following...
- modify the following program or function to do the following...
- given the prototypes for a set of functions, write a function that
uses them to do ...
- explain the benefits and drawbacks of the following language feature...
- discuss the appropriate use of the following language feature...
A review session will be held prior to the final exam, and the material covered
will consist of course all material up to and including the review session,
including all lectures, lab exercises, quizzes, project, etc.
You will be expected to understand, debug, and write logically
and syntactically correct C++ programs or code segments using
the language features discussed in labs and lectures to that point.
The best way to prepare is to hone your fluency in C++,
i.e. by doing the labs and assignment and writing lots of small practice
programs.
PRACTICE EXAM AND OLD EXAMS
Practice questions and copies of old exams are posted below,
but those were based on a 3-hour exam (so ours will be roughly half
as long), and the old exams are from course
offerings around 2012/2013: the nature/content of the course has
changed considerably since then so the relevant topics and questions
will also be somewhat different this semester.
Practice final exam #1
Practice final exam #2
Very old (not very representative) past finals:
from 2013
from 2012
Thoughts on additional practice:
This was in response to a question about possible ways to practice
before the final:
I'd definitely start with the two posted practice exams:
First writing them "exam style" then actually coding and
debugging your solutions.
If you've still got time and are looking for more practice
after that, I'd suggest starting with questions/problems from
the latter half of 160, but now implementing your solutions
using classes, and experimenting with the use of try/throw/catch
for error handling.
After that (again, if you still have time), I'd try reworking
some of our list problems, but this time using the standard
template library lists instead of coding them as a linked list
from scratch.