ICS 21 Fall 2011
Course Reference

Introduction to Computer Science I
Norman Jacobson, Instructor

Table of Contents

   The Course
   Overview of course structure
   Enrolling in ICS 21
   Important information
   About ICS labs
   UCInetID and ICS computer accounts
   Obtaining additional assistance
   Keeping up with course announcements
   Additional materials
   Course assignments, exams, and their grading
   Course grade calculation
   About cooperation

The course

ICS 21 is the first of three courses that introduce you to fundamental concepts and principles of computer science; its primary objective is to teach you the basics of designing, implementing and testing computer programs. You will also learn a bit about object oriented design and a fair amount about object oriented programming, using Java as the “language of practice.” You 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 known as CSE 21; that’s its designation for the CSE major. For simplicity, we’ll refer to this class as ICS 21, though it is indeed both ICS 21 and CSE 21. CSE 21 uses different course codes than ICS 21 (and there are two sets of course codes for CSE 21, one for CSE majors within the Samueli School of Engineering and another set for those CSE majors in the Bren School of ICS). You can find these codes at the ICS 21/CSE21 WebSoc page.

Overview of course structure

ICS 21 consists of a lecture, lab exams sections and the ICS 21 Help Center.

Lecture is where we impart course material and where you take the midterm and final exams. If you miss lecture, we suggest that you arrange with your classmates to borrow their notes: the instructor and TAs will not repeat lecture material you missed, though of course they will answer questions about it.

The ICS 21 Help Center is a computer lab, with TAs and tutors on duty, where you can—and should—work on lab assignments and get help with them and other course material. TAs can answer questions on any aspect of the course, including Java programming, lecture material and grading issues. Tutors can (only) help you with your Java and programming questions. This quarter, the Help Center gets to use two rooms during the afternoon and evening hours, an often particularly busy time (see Important Information, below, for details).

When working on 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). You will work with one partner for the first three labs, and another for the last two labs. Working in pairs should prepare you much more thoroughly for the lab exams than working alone.

The assignments prepare you for the lab exams, five computer-based exams to test your knowledge of programming. You take these tests on lab exam days in the Help Center.

More about the lab assignments, lab exams, the Help Center and pair programming are discussed in the Lab Manual.

Enrolling in ICS 21

To be enrolled in ICS 21, you must be enrolled in lecture and one (and only one) of its lab sections; the (first hour) of your lab section is when you have a guaranteed seat to take your lab exams.

Procedures for dropping the class, changing your lab section, petitioning to add the class, changing your grade option and related matters are discussed in Enrollment Information.

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 Tues. 2:00 - 3:30 pm & Thur. 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
ICS 21 Help Center Location and Hours ICS183, Mondays and Wednesdays, 8 am to 10:00 pm and ICS192, Mondays and Wednesdays, 2 to 6 pm, but closed on University holidays
Questions to course staff 21-questions@ics.uci.edu
Engineering Copy Center 203 Engineering Tower; Mon-Fri 8:00 to noon and 1 to 4 pm, closed University holidays
ICS 21 WileyPlus Web page http://edugen.wileyplus.com/edugen/class/cls204651/
Finding a Pair Programming Partner message board https://eee.uci.edu/toolbox/messageboard/m11641/f31850/

Click here for Lecture and Lab Exam Section Times

Course Staff
NamePositionemailGrades Last NamesHours in Help Center (in ICS183 unless otherwise noted)
Stylianos Doudalis TA sdoudali@uci.edu
D - K
Mon & Wed, 6 - 9:50 pm
Sharif Hasan TA hasanc@uci.edu
O - S
Mon & Wed, noon - 5 pm; all in ICS192
William Lam TA willmlam@ics.uci.edu
L - N
Mon, 2 - 5:50 pm,; Wed, 8 - 11:50 am
Shih-Hsien Yang TA shihhsy@ics.uci.edu
T - Z
Mon, 8 - 11:50 am; Wed, 2 - 5:50 pm
Santanu Sarma Reader; Retake Coordinator santanus@uci.edu
A - C
variable; present as other duties permit

Guest Account

Login: ics-temp
Password: Anteat3r

About ICS labs

Using our lab rooms (ICS183, ICS189, ICS192, ICS364): In addition to the ICS 21 Help Center, you may use ICS183, ICS189 or ICS192 if the room is open and there is no class meeting in it. You may not use a lab room when a non-ICS 21 class is in session in that room.

You may also use the computers in ICS364. This is a first-come, first-served open-to-all-students lab. The same computers and software that are available in the first-floor labs are available in ICS364.

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 ICS 21 work.

The scheduled lab hours and open hours times for all lab rooms are posted on the ICS Lab hours web page, and often on the labs’ doors.

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.

Printing: We do not require printouts in this class, so you only need a printout if you wish one for your own purposes. To use the printers in the ICS labs, see the Printing section of the Orientation to the Lab section of the ICS 21 Lab Manual. You are free, of course, to use any other printers to which you have legitimate access.

If you find a piece of lab equipment that is broken or otherwise needs attention, or you think someone is trying to steal or damage software or equipment, tell the lab attendant on duty.

Additional information about the lab rooms, their equipment and software is in the Orientation to the Lab section of the ICS 21 Lab Manual.

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 21 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 communications (such as sending emails back and forth).

You can also get help by sending email to 21-questions@ics.uci.edu. (If you do not know how to use UCI's email, see the Lab Manual for some pointers.) Course staff checks 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, we may provide a short response and ask you to meet with a staff member 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 your TA or the instructor directly, or see the appropriate party in person.

Keeping up with course announcements

Throughout the quarter, we post important messages of general interest to the ICS 21 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.


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

Java Concepts

Java Concepts, 6th edition, by Cay Horstmann (required). This book discusses introductory programming and the basics of Java, the programming language we will be using to practice programming concepts. It is available in two 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, in particular, a number of “special topics,” some of which we cover in this course. (And it has a number of additional chapters. The on-line text is actually a copy of the text Big Java, a book that has all that is in Java Concepts and then some. We do not cover the chapters that are in Big Java but not in Java Concepts.) 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 can read the special topics.

Lab Manual

ICS 21 Lab Manual, Fall 2011 (“the Lab Manual”) by Jacobson and other ICS faculty. This document contains lab policies and procedures, details about the lab assignments, pair programming, taking and scoring of lab exams, and instructions on evaluating your pair programming partner.

Additional materials

Additional materials are available to give you more information, extra practice, or a different perspective on ICS 21 topics. Some are available on line, some in the Reserve Room of the Science Library, available for two-hour loan. Be aware that copyright law and, in the case of software, license agreements apply to these materials.

We will use several software packages for lab exercises, including Eclipse for our Java environment, Sun’s Java 6 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 ICS labs. If you want to obtain any of this software for use on your own machine, please ask the instructor 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 also use diskettes, though they are getting harder to find and not all of our computers accept them. And 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 21 Lab Manual.

Course assignments, exams, and their grading

Lab assignments: The Lab Manual contains them (0% of the course grade!)

The lab assignments have you design, implement (in Java) and test computer programs. Perhaps surprisingly, they are not graded—but you are well advised to do them, as each prepares you for a corresponding lab exam.

You will work on the lab assignments uising 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. You will work with one partner for the first three assignments, and a different partner for the last two. For each of these two pairings, we expect students to choose their partners. One good way to find a partner is to go to the Help Center and ask around; another is to post a note on the course’s Finding a Pair Programming Partner message board on eee. If you prefer not to choose your own partner, or cannot find a partner, let a TA know; she or he will assist you in finding a partner. You or your partner must email the names of your team members to 21-questions@ics.uci.edu no later than the dates given in the Course Schedule.

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

Programming assignments always take longer to complete than you think they will. (This phenomenon occurs among professional computer scientists, not just students of computing.) If you start each assignment no later than suggested, spend significant time in the Help Center completing assignments with your partner—working diligently and asking questions while there—and spend time as needed outside the Help Center's hours with your partner thinking through and working on your assignments, you will be ready to take the lab exams. Students who do not follow this advice typically have a much harder time passing the lab exams.

Lab exams: Five tests you take in the lab exam section to demonstrate programming competence (a minimum performance requirement)

You take each of the lab exams at the Help Center, on the days indicated in the Course Schedule.

Each lab exam is scored as “not taken,” “not passing” or “passing”.

You must pass every lab exam to obtain a grade of C or better in the course. If you fail to pass a lab exam, you can take that test again (and again and again and...) at a scheduled “retake session,” until you pass it, up through the last one offered, which will be during Finals Week. The place and times when retake sessions will be offered will be posted on the ICS 21 Web page by the time the first lab exam is given.

Much more detail about the lab exams and their grading is in the Lab Manual.

One midterm: (40 points, 40% of the base course grade)

One final exam: (60 points, 60% of the base course grade)

To help you study for the miderm and final, we have a sample exam for each; links to them are on the ICS 21 Web page. TAs and the instructor will happily discuss the questions (and their answers) with you after you have come up with your own answers. Most, but perhaps not all, of the topics covered by the questions in a sample exam will appear in the respective actual exam.

You will need to bring to the midterm and final exams 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 and the Engineering Copy Center, 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 about a year after the course is over, and typically recycle them after that time.

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

If you think a lab exam was scored incorrectly, contact the staff member who grades your work; email often works best: Who grades your work, and that person's email address, is given in the “Important information” section, above.) We’ll look into the matter and fix any error we find. If that does not resolve the issue, see the instructor. If you have a question about the grading of your midterm or final, contact the instructor directly.

Course grade calculation

Determining the final course grades requires several steps:

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

  2. We add in your pair programming evaluation scores. 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 earn 1 point for a cursory evaluation, 2 for an evaluation that is particularly thoughful or insightful, or 0 points if you turn it in late or not at all. So you can earn from 0 to 4 additional points, which are added to your point total, thus perhaps raising your provisional course grade.

  3. We deduct any pair programming adjustments. You may lose up to 4 points from your total (up to 2 points for each of the two pairs of which you are a part) if you did not fully participate in pair programming 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.)

  4. We assign provisional course grades using the following scale, though the cutoffs may be, and often have been, lower: Grades in the A range (A–, A, A+), 80% and above; grades in the B range, 70%–79%; grades in the C range, 60%–69%; grades in the D range, 50%–59%; and F grades below that. A+ grades are reserved for the top scoring student or two, and are awarded only if those scores are significantly higher than the next highest scores.

    This is not a curve. If it were, the cut points would be based on the distribution of scores in the class, rather than fixed cut points. Using an established point scale means that you are not graded in direct competition with your classmates.

  5. We determine how many exams you passed:

    If you passed this # of exams Your course letter grade is the lower of the provisional letter grade and a grade of

    Please note two particularly important consequences of the course grading algorithm:

We will post scores on the course eee grade sheet as soon as is feasible; it typically takes a few days. Monitor these postings: if you do not see a score for a particular lab exam or evaluation you turned when scores for the class are posted, promptly contact the person who grades your work—see the Important Information section above; promptly contact the instructor if you do not see your score for the midterm or final. We’ll work with you to determine what has happened. Often, a missing score means you did not turn in your work, or email it to, the right place, or it was lableled improperly to the extent we could not figure out whose work it was. If we can find the item, we’ll grade it; if we cannot, you’ll need to contact the instructor to determine what can be done.

Final course grades, the scores used to compute them, a number of statistics about the class and and discussion of how grades were computed 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 Grade Calculation to access that information.

About cooperation

As ICS 21 students, you 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 web site; 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:

You may cooperate on the assignments to any degree you wish, including, of course, asking questions of your partner and course staff.

While taking exams, you must do your own work. Among other things, this means you cannot memorize someone else's code —particularly mine or a TA's—and just repeat it on the exam. The tests are closed book (and closed neighbor!), except that for the midterm and final you can use a dictionary and a non-programmable calculator. Lab and retake exams must be taken at the times and in the rooms in which they are scheduled. A violation of these rules will be considered cheating, and dealt with accordingly.

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