We're having our first quiz soon, timing and logistics details on the course page. The quiz will be short, 25 minutes, and the format will involve writing solution code to little coding problems as seen below. We're going to use a system where you type code on your computer, but the format is the same as the paper-style questions below. We will grade the problems by hand, giving partial credit etc., just as with a paper exam.
The quiz will concentrate on coding problems very similar to the functions you have seen:
Topics on quiz-1: Bit code, 2-d image loop code, basic int and string functions, Doctests of those functions (Basically, hw1, hw2, and through first half of lecture-8)
Not on the quiz: Grid, decomposing a problem into functions, code style, using the command line, using PyCharm. Either we have not done enough of these yet, or they are more naturally homework topics than quiz topics.
The quiz problems will use the same sorts of patterns you have seen on the lecture examples and homework problems. So studying and practicing with those examples is a good way to study for the quiz.
The exam grading will focus on getting the correct output, so if you use a 'for/range' to get the right output, and our solution uses a 'while' .. either solution can get full credit so long as it works correctly. Sometimes the problem statement will indicate a particular code structure we want you to use.
What are we trying to accomplish with CS106A? We want everyone to pick up core coding knowledge and skills. These core skills are what we do in lecture, and section, and then on the homeworks. The exams are .. the exact same topics. The exams, lectures etc. .. all resemble each other. The topics on the exam are predictable. Predictable = studying will pay off.
Three levels of working a code concept...
1. See a code concept in lecture
2. Write code in section or on homework while looking at lecture examples
3. Write code on blank sheet of paper exam
These 3 are very different. It's a trap to get stuck at step 2. Your brain will just say "oh yeah, I see how to do that." The blank sheet of paper has a way of emptying out all that stuff you thought you knew. The good news..
(1) You can repeatedly practice these code patterns so you really know them. (2) The lecture examples and homework and section problems provide a lot of practice problems. (3) We will be extremely forgiving about wrong syntax when grading. We want the right algorithmic ideas, and we give partial credit for partially correct code (unlike the autograder!).
How to study:
During the exam, you are free to look at any of our published examples or your own work or any resource on the internet. You are not allowed to collaborate with other people, either during the exam, or sharing information about the exam afterwards. There is some older "do not look at the internet" text in the Bluebook software which you can ignore. Bluebook has not been updated for Covid times, but it works well otherwise so we are happy to use it.