CS99: Exams
Information
Prelim 1
Prelim 2
Advice
The following tidbits adapt typical test-taking advice for CS99 and CS100(J,M).
We have given these suggestions and instructions to many students in past
semesters:
-
Study in advance! Do not cram because programming is a skill that you must
practice.
-
Seek help to clarify whatever you do not understand. Anything that is slightly
vague now does not usually become more clear during a test.
-
Practice solving problems on paper because you will not have a computer
during your exam!
-
Simulate your testing conditions. Take past prelim problems by practicing
on paper in place where you not be distracted. Give yourself about 30 minutes
per problem without using a computer.
-
Try to predict output from a program before running it. In fact, you might
wish to insert output statements or use a debugger to trace variable values.
If you cannot trace the code by hand, then you have missed something crucial.
-
Find extra practice problems from the following sources: old prelims and
projects, websites, solved problems from your textbook, problems from other
books, Schaum's Outlines (the C and C++ versions have great problems),
and problems that you invent, which will add further motivation to study.
-
Read each problem completely before starting it! We tend to leave hints
and point you in the right direction on most problems.
-
Write out a brief algorithm on scrap paper before jumping into the problem.
Even under time constraints, you need to know how to solve a problem before
writing out the code!
-
Never leave a problem blank. After solving the rest of the exam, write
out a description or algorithm that explains how you might solve the problem,
which might earn you some points. The writing process might even trigger
your brain into solving the problem!
-
Maintain conciseness and clarity. Being concise means avoiding redundant
code. Being clear means using descriptive variables, avoiding global variables
(except for constants), declaring named constants, showing indentation,
avoiding breaking out of loops, and maintaining other tenets of programming
philosophy.
-
Comment each control structure, major variable, and method/function briefly.
Beside demonstrating when you should comment your code, the comments will
help us to understand your solution.
-
Keep your solutions general for full credit. Do not solve for just the
specific result we have given.
-
Modularize your code with methods/functions, especially for repetitive
tasks.
-
Raise your hand if have any questions.
-
Do not dwell on a problem if you get stuck. Do the other problems first!