To be ready for each lab assignment, be sure to read it thoroughly before you come to lab and to review any material the lab assumes you know. Coming to lab prepared lets you spend your time there working on the assignment instead of getting ready to work on it.
For each lab, you will need the lab assignment. You will also need a way to back up your work; you can use diskettes, your ICS Unix account, a Web-based storage service and/or a ZIP disk (some of our machines have ZIP drives). If additional items are needed for a particular lab, we will list them in that lab assignment. You should have plenty of time to complete a lab assignment when its due, provided you have prepared for it.
You have more time to complete some assignments than others; the due dates appear below. Take the length of time allotted for an assignment as an indication of how long it will take you to do the work: Dont waste the first week of a two-week assignment. As you work on your assignments, we encourage you to seek assistance and advice from the course staff about the best way to do them.
When an assignment is due, you will turn in the work to your TA by sending an electronic copy of your work to your TAs drop box. To get to your sections dropbox, click on the Instructional Files on Masterhit entry on the All Programs menu, then click on the ics-80 shortcut; this takes you to our class folder. In it you will find the Dropboxes folder; inside of that is a drop box for each section, labeled Section 1. To turn in a copy of your assignment, place all its components into a folder, label it as described below, and drag it into the Section 1 drop box. We do not consider your assignment turned in until it is placed into the correct drop box.
Important note: There is a Windows feature that can really mess up your submission. When you drag the folder over the dropbox and release the mouse button, a message may appear that warns you that once the folder is placed in the dropbox it cannot be accessed; it will ask if you wish to continue. Always click Yes. If you say No, Windows may place an empty folder into the drop box! You may be asked this question more than once; if so, answer Yes every time.
To turn in the electronic copy, create a folder with the name ><assignment number>-<your ID number>-S<the submission number>. Copy this folder into the Section 1 drop box. In the folder name, <assignment number> stands for the number of the lab assignment you are submitting (the number is at the top of each assignment); <your ID number> should be replaced with your studentID number; <the submission number> is 1 for the first submission of this lab to the drop box, 2 if you need to submit another version, and so on. We will grade the submission with the highest submission number.
Mislabeling your folder can cause you, and us, major headaches. For example, if your folder name includes certain characters, such as #, our Java interpreter will give an error when any attempt is made to run programs in that folder. Also, correct folder labeling is critical to correctly recording your assignment scores and for your graded work to be made available for your review via LARS, our Web-based assignment return system (discussed below).
If you mislabel a folder once, we will take no action. If you mislabel it more than once, for each subsequent mislabeled folder, we may take 1/2 point off the score for the assignment corresponding to the incorrectly named folder.
There is no need to turn in your class files; we will create them as needed.
We require that you keep your own backup, a computer copy of each assignment, just in case something happens to the copy you turn in. For example, if the server fails (which has yet to happen) we will be coming to you to get another copy of your work. If you do not have work we can grade, you will receive no grade for it!
If you prepare to work on your lab assignments before you come to lab, and work diligently once there, you should have no difficulty finishing the assignments by the due date. Different people work at different speeds, but past experience shows that nearly everybody can complete the assignments if they spend about ten hours a week in lab (provided, again, that they come prepared).You may not use equipment in an ICS lab when no course staff or lab attendant is present, or when a scheduled class is in session. The former case would violate Department security regulations; the latter would be a disruption of a class that has no provision for dealing with your presence.
The scheduled and open hours for all lab rooms are on ICS Lab Hours Web page, and often on the labs doors.
We use Java 2, version 1.4.2 as the language of implementation in this course, as implemented in Sun's Standard Edition. You may complete your lab work anywhere and you can use any Java environment to which you have legitimate access; in particular, you can work at home and you dont have to use Sun's Java implementaqtion. However, to be fair, and to be sure we can check your running program, (to obtain full credit for an assignment) your work must work correctly on the ICS Lab network when we compile and run it using Sun's Java implementation.
Every lab assignment in this manual describes the assignment itself and what needs to be turned in. Here are the labs, the percentage they count towards your total lab grade, and their due dates:
Exam Statistics | 25% | October 22, 2003 |
A List Class | 30% | November 3, 2003 |
Word Substitution | 20% | November 19, 2003 |
Simple Animation | 25% | December 5, 2003 |
All labs are due by 8 pm sharp on the dates given. 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 bonus assignment points by doing this work; how much extra credit you earn will depend upon how much of the extra work you do, and how well you do it. You may also earn bonus points 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 labif 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 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 completenessa 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)
3 points Work of high quality and that is complete and well presentedwith perhaps a few minor errors and/or style problems. The grade for good, solidbut not extraordinarywork.
4 points Work of very high quality that demonstrates a full and complete understanding of the material the lab covers and that is very polished in its presentation. Normally the highest grade awarded in this class.
5 points Work of the highest professional or academic quality; it would earn highest praise from a professional or professor. 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 learning and use, reliability, modifiability, clarity, the reasonableness of your design and on how well they follow the class style standards. A professional-quality program must score highly in all these categoriesand part of what this class is all about is to help you learn how to write professional programs. Thus, you can lose points for poor design or bad programming style, even if your program correctly and completely implements its specification.
If an assignment has specific grading criteria that is in addition to or extends the criteria given here, the assignment will describe them.
Your work will be graded and made available to you a few days after it is turned in via LARS, the Lab Assignment Return System. To review your graded work, follow the Review Graded Assignments link on the course web page. You will be asked your UCInetID and student ID numbers and your section number. If these check out, you will then see a screen showing your graded assignments. Click on them to view or download them (which one will depend upon how the browser is set to handle files).
Note that if you mislabel your assignment folder, LARS may not be able to find your work. In that case, you will need to contact the TA to obtain access to your graded work.
For a lab to be on time, your electronic submittal must be in your sections drop box by that labs due date and time. Any work you submit after that time will incur a penalty of one point for each day or part of a day it is late, whether or not the lab is open that day. For example, if you earn four points and the assignment is two days late, your score will be two points (out of four).
We will not penalize you for a late assignment if it is late because of significant circumstances beyond your control, such as an incapacitating illness or injury or a major emergency. Conflicts with due dates for your other classes or your job are not sufficient cause to lift the penalty. Should you be unable to turn in an assignment when due, it is best to notify the instructor ahead of time and make arrangements for an alternative due date. If you cannot provide advance notice, turn in the assignment as soon after the due date as possible, and, if you think the penalty should be waived, include a written explanation of the unavoidable circumstance that prevented you from turning in the assignment when it was due.
Because of time constraints for turning in course grades to the Registrar and the need for course staff to study for its own finals, you cannot turn in your last assignment late unless it is because of significant circumstances beyond your control. Under all other circumstances, you must turn in the last assignment by its due date, or accept a score of zero for it.
We take cheatingacademic dishonestyvery seriously. Your work in this class, including your lab assignments, is subject to UCIs and ICS academic honesty policies, as well as the policies for this course. See the Course Reference for links to the ICS and UCI policies, and for the general policies for this course.
There are also some course academic honesty policies specific to lab assignments:
Some of you have written code, for some other class or an employer, similar to what you would write to complete our lab exercises. Its quite all right to adapt your own previous class work for use in this class, if you wish. (It is not all right to adapt someone elses work or code from a book without our explicit permissionthat is a violation of academic honesty policies.) You also may reuse work you did for your employer, provided you have that employers permission and our permission to do so.
You can adapt any code course staff gives to you, provided you note in your program whence you received the information. (Not giving others credit for work they did makes it appear as if that work was your own, and that, too, is a violation of academic honesty policies.) You may not use code others give you, including code you received during LARC or CODE tutorial sessions, unless you have our explicit permission to do so.
You may adapt code from a text or other source, provided we have given you explicit permission to do so, such as by a statement to that effect in a lab exercise, an announcement in lecture or lab, or an agreement you reach with the instructor. In any event, you must document that your work is based upon anothers, what work it is, and who gave you permission to use it; anything less is a major violation of academic protocol.
Your work may not contain work done, in whole or in part, by another person, except as allowed under paragraph 3, above.
Your assignment cannot be the result of joint work with another person. In particular, a person cannot work together on an assignment with another person and then turn all or a part of it in as if it was her or his individual work. Turning in the work of another student who completed an assignment during a previous quarter of ICS 23 as if it was your own work is a particularly serious infraction of academic honesty policies.
We compare your work, both by hand and electronically, with the assignment work submitted by students in this and other classes. If we find similarities that appear to indicate that your assignment contains work that is not your own (except as allowed above) we will investigate to see if academic honesty polices were violated. If they were, you could receive a zero for the assignment, an F in the course and, in egregious or repeated cases of academic dishonesty, expulsion from the ICS major or even from UCI.
Keeping style consistent: For assignments that provide code, match the programming style that code uses. A program using inconsistent style is harder to read and understand, and is more likely to confuse the readerall very bad things when ones task is to complete, modify or enhance code without introducing error.
The style used in provided code tends to match, in general terms, the one employed in the class text. We think the books style is reasonable, although, as with all programmers, we would perhaps do things a bit differently here and there if we had the option. So, even in code that you write from scratch, we would like you to stick to a style that follows the text reasonably closely, unless you get permission from course staff to deviate from it. A consistent style, even across assignments, makes them easier to understand, and thus for us to grade accurately.
There are two rules we enforce with particular rigor in this class because violating them indicates either a very poor program design or often causes major, difficult-to-catch, errors:
You may not use a break except to break out of a case of a switch statement.
You may not combine the ++ and -- shortcut operators with any other expression. For example A[++i] = i; is not allowed (it should be ++i; A[i] = i;).
If the TA has specific style requirements, he will let you know. Do follow them!
Remember that a significant violation of style standards could result in a lower score on your lab.
Documentation:
It is crucial that you include comments at the top of each .java file that you write or modify that include your name, your student ID number and your section number. (There is no need to include comments in files we give you that you do not change.)
Every definition, including those for a class, major attribute, method, variable, and the like, should include a comment that describes its purpose. Each method should also document the kinds of parameters it expects and any assumptions about them, and the value it returns. It should also contain in the comments a high-level description of the algorithm it uses if that algorithm isnt obvious from reading the code. Many of the program (parts) you write for this course are complex. Appropriate comments, like a consistent style, help others to read, understand and correctly modify your code.