-- Introduction to Computer Science I
(last updated 1/10/2007)
Working Together: In
general, learning takes place best within a
community. However, when learning to write programs, there is a
temptation to give and recieve help at a level of detail that prevents
one of the parties from actually learning the skill. If you are
asked to give help, try to offer help by asking questions and leading
your peers to discover the solution for themselves. If you think
you need help, first make sure you have followed the "other tips"
below. In all cases, document that you gave or received
help. Make sure you understand the help you receive at a level
that you could help someone else with the same problem you were having.
Whenever possible, submit a single file containing your solutions to
all the assigned problems. Identify each solution by exercise
number. I am providing a sample
solution as a possible model. Sometimes two different
questions will ask you to write
different versions of a function with the same name. In such a
add a postfix to the names in order to distinguish them. On
there may be no way for a single file contain all your work. In
case, put all your files in a directory named with your email and the
homework assignment. For example, "cjonesHW1". Create
either a tar or
a zip file of the folder. Note, I want the folder with your email
be created when I unpack your file. Do not use any package format
other than tar or zip.
you encounter problems with Eureka, email your scheme (.scm) file or a
tar or zip file as
Other Tips: Most people
find that they cannot write a program as a stream of
consciousness. This is especially true of students first learning
to design programs. You will save yourself significant
frustration if you follow several guidelines.
Do not wait until the last minute to begin. Instead, start
working on the problem as soon as it is given. In this way, you
encounter the obstacles early and you have a chance to think about them
and seek help.
Follow the design recipe. Don't side-step the recipe on the
easy problems thinking you'll apply it when the problems get more
difficult. Incorporate the steps of the design recipe into your
standard operating procedure.
If you find yourself stumped having followed the design recipe,
try breaking the problem into smaller parts. Think about
sub-tasks that you do know how to tackle and write a function to do
so. Now return to the remaining problem that was previously
stumping you and try again. Repeat breaking off small bits until
the entire problem can be solved.