How to Succeed in CSS 162
- Read (and follow the instructions and guidelines in) the syllabus! Your grade counts on it.
There are no excuses for not adhering to the instructions or
advice in the syllabus.
- Familiarize yourself with the course
web site. Read all the local materials. Read the entire
syllabus. Every word. Failure to follow instructions (for
example, neglecting coding or documentation standards, trying to
turn an assignment in the wrong way or after a deadline)
will adversely impact your grade.
- Get to work on your homework right away -- the very
day it is assigned. Students who wait a couple days before
starting get significantly worse grades because they have
significantly less time to think.
- Some simple steps to approaching a programming assignment:
- Read the assignment to make sure you understand what you are
supposed to do. You can't write a program if you're not 100% clear
about exactly what it should do. You should be able to
answer questions such as: What is the program's input and output?
Do they have any special formats? Are there any limits on their
size or amount? How will the program know when it has reached
the end of its input? Are there any special input values that
will cause problems in computing the output? Is it clear what
algorithm(s) should be used to implement the program?
- Decide how you will test your program. Yes, you want to
think this out before you start coding. Can you
identify a strategy for testing basic functionality, then moving
on to progressively more complex or difficult cases? Are there
ranges of input values that should all get handled the same way?
Are there special values that produce special results? For
example, a tax program might use one method for positive values,
another for negative values, and a third for zero.
- Use your test plan to develop an incremental
implementation plan. Your goal is to always have a working
version of your program. It might not be fully operational,
but it should compile and run correctly for some kinds of input
or at least implement part of what is required. Archive these
working versions as you get the next part of the program working
and tested. This way, when you run out of time, you will be able
to submit a program that compiles and does something that will
get you partial credit. I do not assign points for effort, only
results.
- A simple strategy for getting the most out of the textbooks
and class/lab times:
- Prepare for class time by reading the relevant section(s) of
the textbook before class, taking notes. Your notes
should include whatever questions you have. If necessary, use
different colored pens to distinguish between notes about
concepts, notes about code, and questions. You want to
understand as much as you can, but you also what to use this as
an opportunity to plan out what you want to get from class.
- True, you will also want to take notes in class, but your
main goal should be to ensure that you get what you need -- that
you get all of your questions answered, so that you now have some
comfort level with the material.
- After class, consolidate what you've learned. Spread out the
textbook and your notes from your reading and class
time. Produce a final set of notes. Get copies of the code from
the textbook: compile and run it, play with it by making
modifications, using the debugger to explore its operation. This
is the time to double-check that you're ready to move
onward.
- Get the Savitch source
code and play with it. Compile it, step through it with a
debugger, use println or printf statements to output
variable values while it runs, modify it, trace it by hand. There's no
substitute for working through someone else's code if you really want
to understand things and grow as a software developer.
- The typical UW course is expected to demand approximately 2-3
hours per week of your time, on average, outside of class for
each credit hour. This translates into 10-15 hours/week for a
5-credit course. However, programming-intensive courses take
significantly more time, especially when you're relatively new to
programming. Plan to average more than 15 hours/week outside
of class.
- Get a Java reference book.
- Make use of the Quantitative Skills
Center.
- Poorly written documents (and comments) reflect poorly on your
apparent understanding of the material and the importance you
place on this course. In the working world, they reflect poorly on
your qualifications, professionalism, and the importance you place
on your work; they will almost certainly influence your
performance evaluations. Make use of the Writing Center to
help you write better.