Here are some suggestions for a strategy to pass this class:
DO'S (a recipe for success in this course:)
-
Read the textbook. The chapters we will cover are listed in
the course syllabus. The text is entertaining and raises interesting questions
- if you read
over the material before class, you will get more out of the lectures and
be able to ask questions. Come to lecture with questions.
-
Read through the entire homework assignment as soon as it is assigned
so you know what to be looking for in lectures and the readings.
Do not wait until the topic is covered in lecture to
start thinking and working on the assignment.
Lectures will give you a deeper understanding of concepts and go through
examples. Lectures are not your sole source of
information, the discussion/lab sessions are geared toward the assignments.
-
Do your own work. You can discuss the problems with classmates, but then
start over and work them out yourself. Otherwise it is very easy to fool
yourself into thinking that you understand the material well enough to do it
yourself. The exams are worth over 50% of your grade and you will be on your
own in the exams, so learn to work on your own.
(Also remember the strict rules about cheating.)
-
Make effective use of pair programming. For assignment problems
designated as pair programming, use the pair programming technique as a
learning experience. Pair programming is not about dividing the work, but
is a tool to learn from each other.
-
Go to labs. They give you a head start on your homework
and can save you many hours of spinning your wheels on your own.
Lab attendance is required and contributes to a portion of your grade.
-
Ask for help if you are still stumped after you have
made a sincere effort to figure something out.
When you have an idea for solving a homework problem feel free to run it by
the professor
or GTFs. We will try to give you a thumbs-up or thumbs-down on your strategy.
This can save you enormous amounts of wasted time. Again, you want to do this
early, not the night before the due date when we will not be as sympathetic.
-
Document your code with comments. Pay attention to coding style
and strive to make your code neat and easy to read.
Write all software as if it will be seen by
experts and be around for a long time.
Comment your code as you are writing it or even before you write the
actual code. If you can't write meaningful comments, then you probably don't
have a clear understanding of your design.
-
Experiment. If you wonder whether or not
some code is legal or does what you want, try it out.
Learn from the compiler by trying small chunks of code
to see whether it compiles and works the way you think it should.
-
Use the Java API documentation. Become familiar with how to read
the API. The holy grail of software development is re-use, so learn how to
find and use existing classes and methods (except when the assignment asks
you to implement your own version).
-
Aim for elegant solutions. Don't be satisfied with a "quick and dirty"
program to produce the correct results, but refine your work to the best
solution possible. After you think you are done, go back over your code
and double check and polish it.
-
Debugging tips we introduce can save you vast amounts of time and frustration.
Watch for them.
DON'T (Each of these, alone or in combination, usually leads to failing
this course.)
- Do not wait to start homework
- Do not spin your wheels for hours before you get help from 210 staff
- Do not work in groups
One last point: it is possible that this course may not be for you.
If you follow all the suggestions above and still find yourself putting
15+ hours a week just into assignments,
then you should come talk to the professor. There are other options.