CS99 --> Exams --> Exam
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 (see Notes-->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 tenants 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!