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 provides good core information - 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 the entire homework assignment as soon as it is assigned, even if
it's confusing. Do not wait until the topic is covered in lecture to
start working.
Lectures will give you a deeper understanding of concepts and go through
examples. However, if you attempt to use lectures as your sole source of
information, you will be sunk on the homework.
-
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 70% of your grade. You will be on your own in
the exams, so learn to work on your own. (Also remember our strict rules about
cheating.)
-
Go to labs. They give you a head start on your homework and can save you
many hours.
Lab attendance is required and contributes to a portion of your grade.
-
Ask for help 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.
-
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.
-
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.
-
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.
-
Debugging skills 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.