Programming Assignments
CIS22B - Joe Bentley - Fall 2020
Suggestions
The programming assignments are the heart of the course. They
are how you get your real-life experience.
You should definitely not put off the assignments. They will take some
time, especially the later ones. They
will not get
easier.
You should allow enough time to get stuck and be able to seek help. You
should take advantage of the lab time and office hours
to get questions answered from the instructor.
Under no circumstances may you copy someone else's program.
You may get help
from another student, friend, spouse, co-worker, or whomever, providing you can
independently write the code by yourself. If you can't do that, you
don't own
the code, and you may not use it.
Do not hack (or guess) at
a solution. You can't really wear
your compiler down. If you have to
guess (or try this or that), then you don't know what you are doing and
you should have asked for help.
Email Help from the Instructor
- Do not procrastinate. The instructor is most
likely not available during the day that the assignment is due.
The instructor is not usually available after 9 pm.
- If you have a question about a compiler error, include a
copy of your code in your email.
- Don't expect help with lots of compiler errors.
The instructor can probably help you with the first error in
the list. If you compile often, your list of errors is
probably not that long, and it's easier to isolate the error.
- Make sure your questions are specific.
"I don't know where to begin" is not a fair question to ask.
- A fair question is often, "how do I ...?", or "how would I
write a function to ...?".
- Make sure you read the entire assignment description before
you dive in. You should have a pretty good sense of your plan
before you start writing code.
How they are graded
Assignments are worth 20 points each. There are eleven
assignments. Your lowest
grade will be
discarded.
Hence, there is a possible 200 points for the assignments.
Since
your lowest grade is discarded, you may miss
one assignment without penalty, you should save that
assignment for
an illness or an urgent situation.
Unless otherwise stated, all assignments must be submitted by
email with the source code added as an attachment.
The email containing the assignment should be an original
email
and the attachment should be named ass#.cpp (where # is the assignment
number).
Assignments are due at the beginning of the class meeting on the due date
specified. Assignments will be accepted late with a 5-point penalty if
they are received within 24 hours of the due date. After that
time, they will not be accepted.
Assignments
will be tested using either the Code::Blocks or a gnu compiler on Linux or
Windows. Assignments that fail to compile or run on either
compiler will be not be accepted.
Assignments will be graded according to the following
criteria:
- Assignments that do not compile will not be
accepted.
- For multi-part assignments (most are of this type) each
part is given specific point values. Therefore, if you are unable to
complete one (or more) part(s) of the assignment, you should submit it
anyway for partial credit.
- Specific program specifications will be look for. For
example, if you are asked to write a specific function, if it is not
present or does not adhere to the requirements, you will be penalized.
You may know a better way of solving the stated problem, but you will
be
graded on the specific program requirements.
- Specific statements (or functions) will be looked for in
each assignment. These will be worth 1-5 points each.
- Assignments that do not match the sample output provided will be penalized at least 3 points.
- Incorrect syntax errors will be penalized 1 point each.
- Use of non-"standard" C++ code without documentations
will be penalized 1 point.
- Missing header files will be penalized 1 point each.
- Missing file open checks 1 point each.
- Use of C-header files 1 point each.
- Use of C-style casts 1 point each.
- Use of global variables will be penalized 1 point each.
- Sloppiness or inconsistent style will be penalized 1-5
points.
- Use of stringstream classes (istringstream,ostringstream, or stringstream) without permission will be penalized 3 points
- Use of a variable length array will be penalized 1 point each.
Finally
- Be proud of your assignment. If you are not proud
of it, then
you didn't do it correctly.
- You don't really need the instructor to grade your
assignment.
You know how you did. Do not ask the
instructor to
check your assignment unless you are turning it in for a grade.
- Compile and test as you proceed through the assignment.
It is
almost always a mistake to write the whole program, and then expect it
to work as planned.
- In every class, there are students with good assignment
grades, but do
poorly on the midterm and final. The test scores cause the
grade to drop, sometimes one or two letters. When this
happens, there is always the question, why? Why didn't the
student learn with the assignments? Did the student copy
someone else's code?
- If
a student is suspected of copying an assignment, the suspected student
may be interviewed and asked to explain their solution. If
they
are unable to explain the code, the suspected student will receive a 0
grade for the assignment. If the student whose assignment was
copied allowed the copying to occur, that student will also receive a 0
grade for the assignment.