COS 226 Final Information, Spring 2018
This document is intended to help you use your study time effectively. Please
view it as a guide, not a contract.
You may also view the exam archive to study old questions.
While this page is accurate, changes are still being made. Those changes will be listed in red.
Time and location:
Programming Exam Rules:
-
In-class exams are governed by the Undergraduate Honor System.
- Sit one one seat apart from other students and avoid sitting near
students with whom you've studied.
- Bring a fully charged laptop for programming exam. Be sure to restart your computer before the exam so that you are sure all windows are closed that you should not be using.
- At the end of the exam we will say "Time's Up". That means every one uploads the zip file as is.
- Your program may use anything in the algs4 library, or in java.util or java.lang. No other libraries are allowed.
- You may use the textbook, any handwritten notes, and the booksite for the programming exam. You may use any code from the booksite, course web site, your programming assignments or any code you have written yourself. You are also allowed to go to the link java oracle link above.
- During the exam, you may post questions privately on piazza.
- If you have been approved for extra testing time, have a scheduling conflict or need an outlet or a cluster computer for the programming exam, then please fill out the form below before Thursday 4/26 midnight:
Programming exam special accommodations form. The written exam form can be found below; if you need to fill out both.
Note that exam make ups are granted only with a written recommendation from a Dean or Director of Studies.
- If you need to use a cluster computer, go a day or two before the exam and try out the following instructions.
- Download algs4.jar and
- Add it to the class path using DrJava.
- If you wish to compile/run through the terminal, set the class path.
Written Exam Rules:
-
In-class exams are governed by the Undergraduate Honor System.
- Closed book, closed note.
- You may bring one 8.5-by-11 sheet (two sides) with notes in your own
handwriting to the exam.
- Calculators, and electronic communication devices are forbidden.
Headphones attached to audio devices are also prohibited. Computers are not allowed for the written exam only.
- Sit one one seat apart from other students and avoid sitting near
students with whom you've studied.
- Bring a pencil (with eraser) and write darkly and legibly (for written).
- If you have been approved for extra testing time or have a scheduling conflict for the written exam, then please fill out the form below before Thursday 4/26 midnight:
Written exam special accommodations form.
Office Hours for 4/28 - 5/1. No office hours from 5/2-5/6 (after the exams)
DATE |
TIME |
ROOM |
PERSON |
Sat 4/28 | 8:00-10:00 pm |
Friend 010 |
Yushan |
Sun 4/29 | 3:00 -5:00 pm |
Lewis 122 |
Maia |
Mon 4/30 | 2:00-4:00 pm |
221 Nassau St |
Ibrahim |
Mon 4/30 | 6:30-8:30 pm |
Friend 010 |
Tosin |
Tue 5/1 | 12:30-2:30 pm |
Friend 010 |
Shayan |
Tue 5/1 | 2:30-4:30 pm |
Friend 010 |
Charlie |
Tues 5/1 | 4:30-6:30 pm |
Friend 010 |
Lauren |
Tues 5/1 | 6:30-8:30 pm |
Friend 010 |
Nayana |
(Optional) Practice Programming Exam Preparation
(Optional) Written Exam Preparation
Class meeting (design questions) April 25 in Friend 101.
Exam review session April 30 at 4:30pm in CS104.
Quizzera review
Material Covered
We have covered a large body of material this semester, but the exam can only
contain questions about a small fraction of it.
When you study, you should focus on understanding basic
issues, not memorizing details. For each algorithm, you should make sure that
you understand how it works on typical input and then ask yourself some
basic questions: Why do we care about this algorithm? How is it different from
other algorithms for the same problem? When is it effective?
The programming exam is cumulative but will not include string algorithms.
The written exam will stress material covered since the midterm,
including the following components.
- Lectures 1–12.
- Algorithms in Java, 4th edition, Chapters 4–6, and Section 3.4.
- Quizzes 0–11.
- Programming assignments 1–3.
The midterm itself is fair game (did you take the time to understand
questions that you missed on that exam?).
Also, some material before the midterm is also relevant to
putting new algorithms in context. For example, you
might see a question on sorting/searching that covers both
standard and string algorithms.
Partial list of topics covered since the midterm
KdTrees
| Linear Probing Hashtables
| Separate Chaining Hashtables
|
Depth-first search
| Breadth-first search
| Topological sort
|
Prim's algorithm
| Kruskal's algorithm
| Dijkstra's algorithm
| Bellman-Ford algorithm
|
Ford-Fulkerson algorithm
| Knuth-Morris-Pratt substring search
| Boyer-Moore substring search
|
RE to NFA
| R-way tries
| Ternary search tries
|
Key-indexed counting
| LSD radix sort
| MSD radix sort
| 3-way radix quicksort
|
Run-length coding
| Huffman coding
| LZW compression
|
Questions that show awareness of advanced topics that were covered in lecture
are also fair game.