CS010
-- Introduction to Computer Science I
Fall, 2007
Extremely Important Information
(last updated 9/6/2008)
Working Together:
In
general, learning takes place best within a
community. I encourage you work together; in fact, I expect you to
participate in study groups for all of your classes. However, when
learning to write programs, there is
a
strong
temptation to give and receive 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.
This topic also raises the issue of academic honesty. As
specified in the syllabus, I expect you to submit only your own work
with appropriate citations and acknowledgments. Unless explicitly
instructed to do so, you should never share electronic copies of your
work or portions thereof. From the syllabus:
As in every area of life, I
expect that you will conduct yourself honestly within the context of
this class. You are expected to have read and agreed to the Academic
Dishonesty policy as part of the general Westmont Academic Policies,
as well as the specifics of the policy on Plagiarism. Do not attempt
to receive credit for work that is not your own without properly
acknowledging sources via appropriate citations or references. You
are encouraged to get help from your peers, but you must acknowledge
such help (both received and given) and that you understand the issue
on which help was received. Except where explicitly provided or
allowed by the instructor, you must not use electronic copies of any
portion of code for the exercises or project (unless distributed by
me). The consequences of violating the trust I implicitly extend to
you will be according to the Westmont policy.
In all cases, document that you gave or received
help. (Even if no help is given or received, you must include the acknowledgments header described below.) Make sure you understand the help you receive at a
level
that you could help someone else with the same problem you were having.
Submitting Assignments:
(These instructions apply to homework exercises, project deliverables,
and online exams.) Apart from solving the assignment, you should attend
to two details
when preparing your work for submission. First, make sure you
include and complete(!) this standardized header
at the top of your file. Failure to include and complete this
header will result in a zero grade for that assignment. Second,
save your submission in a file that specifies your Westmont email
address and the assignment id. For example, Eva Bailey would submit a
file "ebaileyHW1.scm" for her first assignment. (Do not submit a file called "homework" or "project1".) 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
case,
add a postfix to the names in order to distinguish them. For
example, one question may ask you to write a function "cube-me", while
another asks you to write the same function in a different manner; in
this case, define the second function as "cube-me-2". On
rare occasions,
there may be no way for a single file contain all your work.
In such a
case, put all your files in a directory named with your email and the
homework assignment. For example, "ebaileyHW1". Then, create
either a tar or
a zip file of the folder. Note, I want the folder with your
email-name
to
be created when I unpack your file. Do not use any package
format
other than tar or zip. If
you encounter problems with Eureka, email your submission to iba@westmont.edu.
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 announced. In this way,
you
encounter the obstacles early and you have a chance to think about them
and seek help.
- Take a deep breath and let it out slowly. Remember to seek the joy in challenges.
- 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 after 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.
- Ask
for help. Formulate a concrete question, the answer to which will get
you past your immediate obstacle. I am here to help you -- it is one of
the things I love to do. However, do not wait until the last minute to
ask for help.