CS 111: Test 5 info

Table of Contents

Notes sheet

You are permitted one 8.5 x 11 handwritten notes sheet (both sides) for use as a reference during the exam.

How to study

Lots of research has shown that just reading over material isn't enough to prepare for exams. That's a fine way to help familiarize yourself with what's there, but to be able to do well on a test you then need to additionally practice what you will do on the test. Reading about how to swing a baseball bat or how to cross-country ski will give you some good ideas on how to get better the next time you try it, but you then need to get out there and swing a bat or ski in the Arb to actually get better.

How can you practice? One thing you can do is try the exercises at the end of each chapter, for which the solutions are available online. Practice these under test conditions and see how you do.

Make sure to do all of your practicing on paper, not at a keyboard, so as to simulate the exam conditions.

Exam content

Listed below is the material that I have in mind that you should know for the exam. It's what's in my head when creating it. That said, this isn't a contract. I may have inadvertently left something off this list that ends up on an exam question. I make no guarantees that the exam will be 100% limited to items listed below. Moreover, I will not be able to test all of this material given the time limitations of the exam. I will have to pick and choose some subset of it.

Ultimately, the content that I will be drawing from for the exam is material that we have talked about in class, and material that you have used on assignments. The textbook does have a variety of things mentioned in passing that are worth knowing, but if we haven't discussed it in class and/or if it hasn't been part of an assignment, I won't test on it.

Students should be able to…

Be able to write a recursive method correctly. Be able to determine the output of a recursive function.

Show how insertion sort, selection sort, merge sort, linear search, and binary search work by demonstrating on lists of data.

Demonstrate capability to write Python code that sorts or searches. Asking a question that says "write the Python code for insertion sort," or "write the Python code for binary search" is pointless because of the reference sheets, but I could describe a new sorting or searching algorithm and ask you to code it.

Count the number of comparisons in a sorting or searching algorithm for purposes of evaluating its efficiency. I could present a new sorting or searching algorithm that has some of the same flavor as the others that we have done and ask about how many comparisons the algorithm makes in the worst case, and what its general behavior is (in terms of n).

Continue to be able to use important programming skills from previous portions of the course. Exam questions won't be written with the explicit purpose of testing these items, but could easily include them as part of a problem designed to test a more recent idea.

NOT INCLUDED ON THE TEST: pygame and the halting problem.

Author: Dave Musicant

Emacs 24.5.1 (Org mode 8.2.10)

Validate