ICS 23 / CSE 23 - Lab Manual
Winter 2010
Lab Announcements
Announcements or corrections concerning the lab assignments
will be posted here.
Evaluation of Projects
All labs will be posted
with a given time and date that they are due.
If a lab is turned in later than due, it incurs a late penalty, as
discussed below.
Some of the exercises have optional work included.
You may earn up to an additional assignment point by doing this work, depending
upon how much of the extra work you do, and how well you do it. You may also
earn an
additional point for doing an amazing job on a lab (see below). These points
are added to your total, but not to the total possible number of points; thus,
not undertaking this work will not hurt the lab portion of your course grade.
(Note that lab assignment points do not “spill over” into exam points; even if
optional points put you over 100% of the lab points, only 100% of the lab
points will be counted when computing your course grade.) You cannot get points
for optional work unless all the required work is complete and correct.
We will grade your programs using the following five-point scale. Note that if
you get four points, we consider that full credit for the lab: if you get four
points on every assignment, you will have 100% of the possible lab points.
Notice that your grade depends on issues of programming design and style as
well as those of correctness (Does the program function as it should?) and
completeness (Does the program contain exactly the features required?):
0 points You did not turn in any work.
1 point Work that it is meager and poorly done. It would not be considered at all acceptable in academic or professional circles.
2 points Work of reasonable quality and completeness—a program that runs and implements at least the main requirements of the assignment. Shows a basic understanding of the material, but not a complete one. Presentation may be lacking (e.g., written work shows poor composition, a spreadsheet is hard to read, a database is poorly organized, a program& is hard to follow or has a design that is cumbersome).
3 points Work of high quality that is complete and well presented—with perhaps a few minor errors and/or design or style problems. The grade for good, solid—but not extraordinary—work.
4 points Work of very high quality that demonstrates a full and complete understanding of the material the lab covers with a very polished presentation; any programming component of the assignment is complete (contains exactly the features specified) and correct (functions as it should, with no errors). Normally the highest grade awarded.
5 points Work of the highest professional or academic quality. Expect this grade to be very rarely awarded.
If it is difficult to determine whether your work
is best represented by a score of x or x + 1 points (x ranging from 0 to 4), we
may award a grade of x + 0.5 (that is, half points may be awarded). Expect this
to be an unusual event.
Your programs will be graded mostly on their
correctness and completeness, but will also depend on other qualities of your
program, such as efficiency, ease of use, reliability, modifiability, clarity,
how quickly and easily your code can be understood, the reasonableness of your
design and how well the programs follow the class style standards. A
professional-quality program must score highly in all these categories—and part
of what this class is all about is to help you learn how to write professional
programs. In particular, you can lose points for poor design or bad
programming style, even if your program correctly and completely implements the
functional requreiments.
If an assignment has specific grading criteria
that add to or extend the criteria given here, the assignment will describe
them.
If you submit a program that does not compile, we
will not be able to execute it and, thus, will not be able to evaluate its
correctness. It is your responsibility to turn in code that compiles.
Partial and late assignments
This course moves forward at a rapid pace, as
there is a project due roughly every other week. Therefore, late submissions of
projects is strongly discouraged. You are generally better off turning in what
you have and moving on to the next assignment.
For a lab to be on time, your assignment must be
submitted to Checkmate by the due date and time. Any assignment submitted after
that time will incur a penalty of one point for each day or part of a day it is
late. For example, if you earn three points and the assignment is two days
late, your score will be one point (out of four). We count a weekend (Saturday
plus Sunday) as a single day. As an example, suppose your assignment is due at
6:59 on Thursday. If you turn it in late but before 6:59 on Friday, you lose 1
point. If you turn it in after that but before 6:59 on Sunday you lose 2
points.
In the special case of the three day weekend
beginning January 16, we count that as a single day. Lab Assignment 1 is due at
6:59 on Friday January 15. If you turn it in late but before 6:59 on Monday January
18 you lose 1 point. If you turn it in after that but before 6:59 on Tuesday January
19 you lose 2 points.
We grade the latest version of an assignment
submitted. For instance, if you turn in an assignment on January 14 and again on
January 15, we will grade the assignment submitted on January 15. In particular, you
cannot split your assignment into two parts and turn in the parts at different
times. For example, suppose you submit part of an assignment on January 14 and the
rest on January 15. We will only grade the January 15 submission and treat it as your
entire assignment.
Style standards
Wondering what constitutes an acceptable coding
style? Check out the course style
standards, which explain how your code should look.
Submitting your projects
When you complete each project, you must submit it
to us electronically. Follow this
link for a detailed description of how to submit your projects. Understand
that we will only accept projects submitted using the procedure described
there; we do not accept printed copies of your projects, nor do we
accept them via email.
Development environment
The officially-supported development environment
for ICS 23 is a text editor, such as TextPad, the command-line compiler javac,
and the command-line virtual machine java. Your TA's will use javac
and java when compiling and testing your programs. The machines in the
ICS lab, by default, use the compiler that comes with Sun Java 2 Standard
Edition SDK.
While I encourage you to work on your projects in the
labs as much as you can, so that help will be available for you when you need
it, I also understand the reality that many of you will want to work from home
at least part of the time. You're responsible for obtaining and installing
this software on your machines; we realistically cannot and will not support
each of your home installations. You'll need the following software, all of
which can be obtained free of charge.
You might also want to obtain a full-fledged
integrated development environment (IDE). IDE's generally provide an editor, a
compiler, and a virtual machine, as well as other integrated tools, such as a
debugger. This flexibility generally comes at the cost of complexity. Also, IDE's
are generally much more expensive than the free alternatives listed above. I do
all of my development using a text editor and a command-line compiler and
virtual machine.
Java is a cross-platform language, so the code you
write should execute correctly, regardless of your operating system or what
compiler you're using. Still, subtle bugs and differences do exist. If you feel
that you've been graded unfairly on account of such a bug, let us know, and
we'll make sure that your grade is not adversely affected by incompatibilities
between virtual machines.
How do I set up Java at home?
Here
is a document that describes how to set up J2SE on your Windows-based machine.
Java Links
Wondering how a particular class in the Java
library works? Sun's Java 2
documentation is exactly what you need! When I'm writing Java code, I spend
a lot of time there. After all, who can remember all the parameters to all of
the methods in the Java library? Besides, learning how to look things up in
documentation is an invaluable skill, so it's best if you start developing it
now.
Looking for a good on-line Java tutorial? Start at
Sun's Java Web site (java.sun.com), and
click the "Java Tutorial" link somewhere on the page. (They rearrange
their pages fairly often, so I didn't provide a direct link.) The tutorial is
organized into "trails" that lead you through various topics, from
simple to advanced.
Academic honesty
As ICS 23 students, you are expected to know and
follow the academic dishonesty policies of both the ICS School and the
University as a whole. Please take a few minutes to read the policies, which
can be found at this
link.
All of your lab work is expected to be completed solely
by you. Group work and/or sharing of code between students is not
permitted. Note that "high-level discussion of course material for better
understanding" is permitted and encouraged, but when it comes time to sit
down and write code, that is expected to be done by you and you alone. All
submissions are compared to one another using an automated plagiarism detection
system. This system is extraordinarily good at finding similarities between
submissions, even when there are superficial differences. (Note that we also
compare your submissions to those submitted during previous quarters whenever
one of these assignments was given during a previous quarter, so it is an
exceedingly bad idea to turn in, or even refer to, code written by a friend of
yours who took the course already.)
Since all of your work is expected to be completed
solely by you, you will be held responsible even if you plagiarize only a small
portion of someone else's project.
Academic dishonesty is a two-way street. Providing
your code to other students for them to turn in as their own is not permitted
anymore than turning in someone else's code. Resist the temptation to give code
to your friends "for reference." Based on my experience, I can say
that your "friends" may very well betray you and turn it in, anyway.
Violators of academic dishonesty policies are
subject to the penalties described in the ICS School's policy. They are also
subject to an immediate course grade of F, and you will not be allowed to drop
the course to avoid the grade. Also be aware that a single documented case of
academic dishonesty may preclude you from switching into the ICS major,
registering for the ICS minor, joining the ICS Honors Program, and graduating
from ICS with honors.
·
Adapted from the ICS 22
Spring 2003 Lab Manual, with quite a bit of text from the previous ICS 23 Lab
Manual merged in.