ICS 45J Fall 2012
Course Reference

Programming in Java
Norman Jacobson, Instructor


Table of Contents

   The Course
   Prerequisites
   Enrolling in ICS45J
   Lecture and Lab
   Important information
   UCInetID and ICS computer accounts
   Obtaining additional assistance
   Keeping up with course announcements
   Readings
   Additional materials
   Course assignments, exams, and their grading
   Course grade calculation
   About cooperation

The course

ICS 45J introduces you to the Java programming language, with a strong emphasis on the design, (stylish) implementation and testing of object-oriented Java programs; we'll look at its basic statements, data structures and libraries, and a few more advanced topics. You'll also gain experience in working with a partner; working in a team is a common industry practice that, when properly done, produces better programs — and faster than when a person works alone.

This course is also listed as ICS 80, Java as a Second Language, to allow students with an alternate prerequisite list to enroll. For simplicity, we’ll refer to this class as ICS 45J, though it is indeed both ICS 45J and ICS 80.


Prerequisites

The prerequisites for ICS 45J is a grade of "C" or better in ICS 33 or CSE 43 or an equivalent course with a grade of "C" or better (or its equivalent) from another educational institution. The Registrar normally drops from ICS 45J any student who enrolled in it but did not complete (or have on record equivalents for) the prerequisites. This quarter, all currently enrolled students have had their prerequisites verified, so you are "cleared" to take this course.

Please be aware that it is an act of academic dishonesty to intentionally add this course without the prerequisites or the instructor’s permission.


Enrolling in ICS 45J

Procedures for dropping the class, petitioning to add the class, changing your grade option and related matters are discussed in Enrollment Information. ICS 45J and ICS80 use different course codes; be sure you use the one for the course in which you are enrolled or wish to add. You can find these codes at the ICS45J/ICS80 WebSoc page.


Lecture and Lab

Lecture: Lecture is where we impart course material and where you take the midterm and final exams.

Lectures and lab assignments for ICS 45J are intimately connected: lectures will present the concepts underlying the lab exercises you are to do; the assignments will give you practice applying some of the ideas presented in lecture. We encourage you to attend each lecture; if you miss one, we suggest that you arrange with your classmates to borrow their notes, and come to office hours to ask any questions about the issed material you still might have. In addition to the usual reasons to attend lecture, note that some course material discussed in lecture is not in the textbook.

Computer Labs: The Bren School provides you acccess to Computer Labs, rooms where computers and software is available to help you complete lab assignments. You may work in any instructional ICS lab (ICS 183, 189 192, 364) any time it is open and not reserved for a particular class or function. The reserved and open hours for all lab rooms are on the ICS Lab hours Web page and often on the labs’ doors.

A lab attendant watches over equipment and can help you with things such as answering questions about your computer account, reviving a “dead computer” or adding paper to a printer. An attendant cannot help you with your ICS45J work.

Lab Use Policies: In order to use our computer equipment and computer accounts, you must agree to abide by UCI’s and ICS’ policies regarding them. The documents that describe these policies are kept on the Web; perhaps the best way to access them is from the ICS Instructional Lab Guidelines web page. Read this page, and follow its links to read the other pertinent ICS and UCI documents.

Additional information about the lab rooms, their equipment, how to print in Labs, and software is in the Orientation to the Lab section of the ICS 45J Lab Manual.

Pair Programming: When working on some of the lab assignments, we have you use the “pair programming” approach. In pair programming, two programmers share one computer. One is the “driver,” who controls the keyboard and mouse. The other is the “navigator,” who observes, asks questions, suggests solutions, and thinks about slightly longer-term strategies. The two programmers switch roles about every 20 minutes. A pair of programmers, working as described here, nearly always beats the stereotypical solitary loner, producing more high-quality code in less than half the time (surprising, perhaps, but true). For some labs, we also have you work alone; being able to program solo is also an important skill.

More about the lab assignments and pair programming are discussed in the Lab Manual.


Important information

Please keep this information at hand; it will likely be quite useful during the quarter!

Jacobson’s office Donald Bren Hall (DBH) 4052
Office hours Mon. & Wed. 3:30 - 4:45 pm, except on school holidays, and by appointment
Jacobson’s phone 949-824-7300
Jacobson’s email address jacobson@uci.edu
Jacobson’s home page: www.ics.uci.edu/~jacobson
Email address for questions about the course and required messages ics45j@ics.uci.edu
ICS 45J WileyPlus Web page (where to find the on-line textbook) http://edugen.wileyplus.com/edugen/domain/dmn54531/
Finding a Pair Programming Partner message board https://eee.uci.edu/toolbox/messageboard/m12963/

Click here for Lecture and Final Exam Times

Guest Account

Login: ics-temp
Password: Anteat3r

UCInetID and ICS computer accounts

UCI provides all its students with basic computing, including electronic mail and Internet services, via a “UCInetID” computer account. You will also need an ICS Windows computer account to use the computers in the lab rooms. If you have not yet activated these accounts, follow the instructions in the Activate your UCInetID and ICS Windows Accounts section of the ICS 45J Lab Manual.


Obtaining additional assistance

During my office hours, course-related matters will have first priority. Of course emergencies may come up, but I’ll try to give advance notice of any changes to my hours. If I’m not immersed in something else, I’ll be glad to answer short questions whenever I’m in my office, so feel free to drop by. I’ll also make appointments for other times during the week, my schedule permitting.

You can most easily get course-related questions answered by coming to lecture and the Help Center and asking them! In-person assistance is by far faster and better than distance communication (such as sending emails back and forth).

You can also get help by sending email to ics45j@ics.uci.edu. (If you do not know how to use UCI's email, see the Lab Manual for some pointers.) We check this email address regularly and will respond to your question within a few hours (somewhat less frequently on weekends and holidays).

If the response to your question would be complex or lengthy, I may provide a short response and ask you to meet me in person for a more in-depth discussion.

Any student who feels s/he may need an accommodation based on the impact of a disability should contact the instructor privately to discuss the specific needs. Also contact the Disability Services Center at (949) 824-7494 as soon as possible to better ensure that such accommodations are implemented in a timely fashion.

If you have a question or comment of a personal or private nature, please email me directly, at jacobson@ics.uci.edu or see me in person.


Keeping up with course announcements

Throughout the quarter, we post important messages of general interest to the ICS 45J announcements Web page. Be sure to read it regularly.

We send urgent or particularly important announcements by email to your UCInetID account, so we require that you check your UCInetID email regularly, once daily during the week at least (and on weekends as well if feasible). If you prefer to read these messages from another account, you need to set your UCI account to forward your UCI email to your preferred account; see the Email Delivery Point and Forwarding Email Web page for details.


Readings

See the Course Schedule for the readings that correspond to each lecture.

Big Java

Big Java, 4th edition, by Cay Horstmann (required). This book discusses introductory programming, and the basics, and some more advanced features of, Java. It is available in three forms: 1) as a paperback book, loose leaf or bound, and with or without an access code to the electronic version of the text, available from various bookstores and Websites, 2) as an “electronic book” from the publisher, Wiley Press, accessible via the Web, and 3) as an download file; you copy the text to your hard drive and read it using special software.

The Web-based version of the text has sections that the printed copy does not, as well as animations, examples and other reference and tutorial material the printed book does not contain. I strongly urge you to obtain access to the electronic copy of the text (whether or not you obtain a hard-copy version) so that you have access to the web-only material.

Lab Manual

ICS 45J Lab Manual, Fall 2012 (“the Lab Manual”). This document contains lab policies and procedures, details about the lab assignments, pair programming, and instructions on evaluating your pair programming partner.


Additional materials

We will use several software packages for lab exercises, including Eclipse for our Java environment, Sun’s Java 7 Runtime Environment to run Java code, SecureCRT for you to access your UCInetID account, a web browser (e.g., Internet Explorer, Firefox) for Internet browsing. You may also find the tools within Microsoft Office useful. All these packages (and others) are available for your use on the machines in the Computer Labs. If you want to obtain any of this software for use on your own machine, please ask me for details. In brief, Office and SecureCRT must be licensed (for a fee), and Eclipse, Internet Explorer, Firefox and Sun’s Java are free.

You will also need a way to back up (make a copy) of your work. You can use a USB memory stick or portable external hard drive, available in several capacities from many sources, including the UCI Computer store. You can store files to the so-called “H drive” of your ICS account; details of using the H drive are in the Orientation to the Lab section of the ICS 45J Lab Manual.


Course assignments, exams, and their grading

The graded work in the course consists of

Lab assignments: The Lab Manual describes these assignments and their grading; 40% of the course grade

One midterm: 30% of the course grade

One final exam: 30% of the course grade

The lab assignments have you design, implement (in Java) and test computer programs.

Pair Programming: You will work on some of the lab assignments using the pair programming approach discussed above. Pair programming almost always enables you to learn more about programming, and to complete the labs much more quickly, than working alone. I expect students to choose their partners. One good way to find a partner is to ask around at lecture; another is to post a note on the course’s Finding a Pair Programming Partner message board on eee. If you cannot find a partner, let me know; I'll assist you in finding a partner. You or your partner must email the names of your team members to ics45j@ics.uci.edu no later than the date given in the Course Schedule.

Details about pair programming and choosing a partner are in the Pair Programming section of the Lab Manual.

Lab assignment due dates are given in the Lab Grading section of the Lab Manual; the midterm and final exam dates are given in the Course Schedule.

Programming assignments always take longer to complete than you think they will (a phenomenon which occurs among professional computer scientists, not just students of computing.) Start each assignment no later than suggested, work diligently, ask questions, and plan for significant additional time outside class to complete your assignments, and you likely do well on them. Students who do not follow this advice typically do poorly.

Your grades will be posted on UCI's Electronic Educational Environment (EEE) web site. (If you have not previously used EEE to look up your grades, it’s quite straight-forward. Just go to EEE, sign in to MyEEE, and follow the instructions for viewing course grades.)

Exams: To help you study for the exams, I've prepared a set of sample exam questions. I'll happily discuss these questions (and their answers) after you have come up with your own answers. Most, if perhaps not quite all, of the topics covered in these question sets will appear on the midterm and final exams (and therei may beno questions on some topics that are on the actual exam; see; see the sample exam document for details).

The midterm and final are multiple-choice exams. You will need to bring to the midterm and the final exam a Scantron answer sheet, Form No. 882-E or 2052 or equivalent (that is, a mark-sense form that is one-half of a regular sheet of paper cut lengthwise that has 50 questions on the front, with five possible responses for each question). Form 882-E is available at the UCI bookstore, among other locales.

I keep your midterm and final exam answer sheets, so that you can review them for any errors you think may be present, for a couple of years after the course is over, and typically recycle them after that time.


Course Grade Calculation

  1. We determine your weighted point total for the midterm and final exams.

  2. We add in your pair programming evaluation score. For each of the two evaluations of your programming partner (see the Lab Manual for details), we add 0, 1 or 2 points to your total points. You also receive one point, added to the total of your weighted point total, for turning in a complete pair programming evaluation on time (and no points for an incomplete evaluation, or for one turned in late or not at all).

  3. We deduct any pair programming adjustment. You may lose up to 2 points from your total if you did not fully participate in pair programming in Lab Assignments 1 to 3 as described in course documents and the relevant documents they reference. If there is not an adjustment, that is a good thing—it means that we were notified, on time, of your partnerships, that you worked in a pair (or otherwise, with the needed permission) and we have no evidence that you were a bad partner. (In the posted scores on eee, the appearance of "--" means there was no adjustment.)

I'll be doing the grading. If you think an assignment or exam was graded incorrectly, contat me to discuss the matter. Please bring us your grading questions to me within a week after the assignment is returned, so we have sufficient time to resolve the matter. In any event, you must contact me before the final; UCI rules prohibit regrading of work once the class ends.

I'll assign final grades on at least the following scale; if the exams turn out to be significantly more difficult than expected, the cutoffs may be lower: Grades in the A range (A–, A, and in exceptional cases, A+), 80% and above; grades in the B range, 70%–69%; grades in the C range, 60%–59%; grades in the D range, 50%–49%; and F grades below that. Using an established point scale means that you are not graded in direct competition with your classmates. Many courses set cut points at 90% for an A, 80% for a B, and so on; these lower cut points reflect the difficulty of this course's exams.

Final course grades, the scores used to compute them, a number of statistics about the class, a discussion of how grades were computed, and related matters, will be available on the course Web page soon after the course is over. Follow the links to Course Grades and A Note on Course Grades to access that information.


About cooperation and using other people's work

ICS 23 students are expected to know and follow UCI and Bren School academic honesty policies; do read them. The ICS policy can be found (among other places) on the ICS undergraduate student policies Web page; the UCI policy is on the UCI Academic Senate site.

In addition to those rules, there are some specific rules regarding student-with-student cooperation in this class:

Acknowledgement. Thanks to Prof. David G. Kay for permission to adapt text from his Fall 2006 Informatics 41 Pair Programming Guidelines.