A Study Guide--- edited by A. Heddaya

This document is intended primarily for undergraduate Computer Science students, although others---especially CS grad students---may find it useful. If you would like to pitch in, please do so.
Teaching or Learning?

The teacher teaches, the student learns, then the teacher certifies the success of this joint enterprise. The three activities of teaching, learning and evaluation, compete for the attention of students and faculty, often distracting students away from the centrality of their own learning process. For example, certain artifacts of the school organisation, such as the classroom setting, or the fact that the teacher is also the evaluator, seem to put teaching and the teacher in the central role. Students often respond by asking "what does the teacher want me to do [in order to give me the grade]?" instead of "how can I use the teacher to help me learn".

Problem solving


The community trusts its members to honor the notion of giving credit where credit is due: so, please acknowledge any sources you use in your course work. This requires proper citation of the source, and clear delineation of the material (e.g., code, algorithm, design idea, paraphrase, quotation, etc.) obtained from it.


Students are usually encouraged to collaborate in studying and on homeworks. To avoid gaining an unfair advantage (i.e., cheating or plagiarism) the rule is simple: produce the actual solution in isolation from others' work. That is, what you submit should be entirely your original expression, except for what you specifically credit to other sources. For example, copying without attribution any part, however small, of someone else's program constitutes plagiarism---even if you modify it, and even if the source is a textbook.


(((Weekly, at midterm, and at final.)))


  1. Read all questions before answering any. If anything is unclear, ask the examiner.
  2. Address the easy questions first.
  3. Read each question twice before answering it. Identify what's required, and ask the examiner if unsure.
  4. When stumped or out of time on a question, sketch your approach to the answer, then revisit the question at the end of the exam.
  5. At end of exam, check your answer by applying it to simple examples.
  6. If you discover an error or an inconsistency in your answer, and you don't have time to fix it, then report your error.
  7. Never leave an exam early.
  8. Stretch before you read the questions, then again every 15 minutes, surveying the whole room to rest your eyes from constant focus at short range.


If the grader can easily fix it, then you get most of the credit. You receive non-zero (usually 10-20%) grade for any serious attempt.

[ Click here to email me. || Contents page ]