Understand the structure of the final exam for units 0-2.
Work through a sample exam in preparation for the final exam.
Review material in units 0-2 as you work through the sample exam.
NOTE: you may be wondering why we've scheduled Exam Preparation
before completing all the remaining material (Modules 2, 3 and 4).
The reason is, we'd like to start down the path of preparing as
we cover the remaining material. Much of the exam will feature
core concepts from all of units 0, 1 and 2. It's best to start
reviewing and practicing instead of waiting until the last minute.
Audio:
About the exam
The exam has two goals, both equally important. Students often
focus on the second one, but the first is the more important.
Goal 1 for the exam: learning.
Research on pedagogy shows that one of the best ways to
learn is to review and prepare with a goal in mind, such
as a final exam. And because the final exam reviews all
the material in units 0-2, there are two added benefits:
Prepping for the exam will help identify any material
you might have forgotten or unintentionally "slipped by".
Because it integrates across units 0-2, it will
help make it all "come together" in your mind.
Goal 2 for the exam: preparation for later units.
Recall: the goal of units 0-2 was to develop the skill of
"programming in the small", that is, to be able to program
with arrays, loops, conditionals and methods.
These core skills are essential for future units because
they are the starting point in those units. This is
why you have to pass the exam with a high enough score to
move on to later units.
Let's say a few words about something we typically avoid
talking about:
failing the exam:
The word "fail" unfortunately
has a strong negative connotation in culture.
We prefer "not yet ready" to "fail". And that's not
being politically correct.
Think about someone trying to join a swim team.
If they don't get in the first time, is that such a bad thing?
Is that "failure"?
We prefer to think ... no, it just means that more time is
needed for practice, that's all. There's absolutely nothing wrong with
needing more practice.
Should we feel bad if we don't pass the exam but others do?
Once again, no. People learn skills differently. Some people
may just have the time and learn elementary skills faster (but
later struggle with advanced skills) while others take a while
to master early skills and then really take off after that.
The exam will have three sections.
Section A: Knowledge test and mental execute
(pen-and-paper). This part
will focus on syntax and convention in the Java language
and will show code samples and ask you to
mentally execute. Since you've done the different exercises on
mental execution,
tracing and "when things go wrong", you are already prepared
for this section.
It may be best to review the module examples,
and just as importantly, re-read those module sections that
seemed a little hazy to you.
Section B: Programming, part I.
This section will feature small programming problems
similar to the ones you've done in the modules and assignments.
Most of these will be minor variations. Thus, if you have
succeeded in the module exercises and assignments AND if
you review your completed work, you will be
well-prepared for this part.
Section C: Programming, part II.
This section will feature programming problems you have likely
not seen before. A few will be short and one or two will be longer.
To help you prepare, see the Section-C programming problems
in the sample exam below. If, in doing those, you find you need
to review some material, that's a good thing because you may
have uncovered a misconception.
Important: The entire exam
will be completely closed (no access to books, materials,
your own notes, your computer or anything).
At no time during the exam is general internet access permitted.
These rules will be strictly enforced: violation could
result in dismissal from the program.
Sample exam
As mentioned, the exam is divided into three sections, A through C: