Computer Science 126 |
Submitting Assignments · Late Policy · Collaboration Policy
Be sure to read the Assignment checklists before you turn in the assignment. The checklists are a recent experiment, and may be subject to frequent updating.
You can get your scores and ranking automatically in the email from the ScoreBot.
0. | Hello World | due 9/22 | checklist |
1. | Stock Market | due 9/29 | correct output |
2. | Mandelbrot Set | due 10/6 | checklist |
3. | Rational Arithmetic | due 10/13 | checklist |
4. | Linked-list TSP | due 10/27 | checklist |
5. | TOY Simulator | due 11/10 | checklist |
6. | Recursive Graphics | due 11/17 | checklist |
7. | Cracking the Genetic Code | due 12/1 | checklist |
8. | Text Indexing | due 12/8 | checklist |
9. | Bouncing ball warmup | checklist | |
N-body Simulation | due 1/6 | checklist | |
Any changes or corrections to the assignments will be noted in the course announcements. You are responsible for the information in the (most up to date) electronic version of each assignment. Feel free to look ahead at any future assignments that appear online, but be warned that some changes are possible.
Submit your solutions to the programming assignments electronically using the command
/u/cs126/bin/submit
number files
number is the assignment number and files is the list of files for that assignment. For example,
/u/cs126/bin/submit 0 readme hello.c
submits the files readme
and hello.c
for
assignment 0.
The submit
command copies your files to the directory
/u/cs126/submit/
login/
number and
lists all the files that you have submitted for assignment number.
login is your user account name. If you execute submit
after the assignment deadline, your files are placed in directory number-late
.
You can run submit
more than once, and you can submit partial
lists of files.
Submit the C source code file, e.g., hello.c
, and written
documentation in a file named "readme
", as suggested
above. Include your name and precept number in every file you submit.
The purpose of the documentation is to help the graders determine how well
your code solves the assigned problem. Your grade depends on both the code and
its documentation. Computer programs can be incomprehensible, even to the person
who wrote it (wait until this happens to you). Your documentation should be a
brief narrative (no more than 2 pages) that explains what the various parts of
the program do, and how.
/u/cs126/examples/readme
is an example. Preparing this documentation needn't take a lot of time, but it
should be done with care. Writing good documentation is an acquired skill, whose
usefulness you will appreciate more and more as you write and maintain large
programs.
In addition, your code should contain comments and be indented consistently for easy reading, but don't get carried away commenting your code. Don't comment the trivial or obvious; for example,
i = i + 1; /* increment variable i by 1 */
isn't much help. If you use code from elsewhere, identify it and acknowledge
its source in your readme
file or in comments.
Programming assignments are due at 11:59pm on the date specified.
Assignments submitted late will be graded according to the following
formula: S = .9 R exp(-t/3), where S is the grade given, R is the grade
the work would have gotten if turned in on time and t is the amount of
time (in days) the work was late. Thus,
the value of a late assignment decays exponentially, with a half-life
of just over two days. Examples: work turned in five minutes late
gets 89.9% credit, one hour late gets 88.7% credit, six hours late
gets 82.8% credit, one day late gets 71.7% credit, three days late
gets 33.1%, and one week late gets 8.7%.
The date and time of the most recently submitted file is
taken as the date and time of the entire program. This includes nonprogram
files, like readme
files. Programs that are submitted late
may not be graded in a timely fashion.
Penalties are waived only for unforeseen circumstances, like illness, and then
only with an appropriate written excuse.
It is better to submit an incomplete program than to submit nothing.
No additional time will be given for unannounced interruptions in computer service. Don't wait until the last minute to write your programs!
Every student enrolled in COS 126 has a computer account on the CIT UNIX
machines, known collectively as arizona
. This account enables you
to use of the computers in Rooms 101 and 001 in the Computer Science Bldg., and
those in other public computing clusters around campus. Your login
identification is in the campus telephone directory; your password is your PAC
(Phone Access Code) or the last eight digits of your social security number. You
can change your password by typing passwd
and following
instructions. Change it regularly.
Programming is an individual creative process much like composition. You must reach your own understanding of the problem and discover a path to its solution. During this time, discussions with friends are encouraged. However, when the time comes to write code that solves the problem, such discussions are no longer appropriate the program must be your own work. If you have a question about how to use some feature of C, UNIX, etc., you can certainly ask your friends or the teaching assistants, but do not, under any circumstances, copy another person's program. Writing code for use by another or using someone else's code in any form is a violation of academic regulations. "Using someone else's code" includes using solutions or partial solutions to assignments provided by instructors or teaching assistants from any previous offering of this course or any other course.
You may, however, use any code from the COS 126 lectures
or from the course texts,
providing that you explain what code you use and cite its source in your readme
file or in comments. An example citation appears in
/u/cs126/examples/pattern.c
and in /u/cs126/examples/random.c
.
Other examples, including source code that appears in the lecture notes,
is available in the directory
/u/cs126/examples
.
Protect Your Files! You are responsible for
keeping your solutions to the COS 126 programming assignments away
from prying eyes. If someone else copies your program, we have no way
to determine who's the owner and who's the copier; the Discipline
Committee gets to decide. Read pages 615-623 in Hahn's Student
Guide to UNIX to learn about file permissions. If you execute
the command "chmod 700 .
" once the
next time you log in, your files will be protected. Also, if you add
the line "umask 077
" to your
.cshrc
file, only you will be able to access files you
create.