ICS 23 Spring 2012
Course Reference

Fundamental Data Structures
Norman Jacobson, Instructor

Table of Contents

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

The course

ICS 23 is the third of a three-course sequence that introduces you to computer science. ICS 23 is primarily concerned with the topic of fundamental data structures and algorithms: what various ones are, how they are used, and the pros and cons, in terms of execution time and memory usage, of choosing one over another. See the Course Schedule for more detail about the topics we will cover.

The approach to the material is the same that was taken in ICS 21 and ICS 22--combining theory with practice, lectures and readings with exercises on a computer. We strongly believe that such an integrated approach is best; not only are you exposed to the theory and concepts, but you also obtain practice in applying these ideas to solve actual problems.

This course is also known as CSE 23; that’s its designation for the CSE major. For simplicity, we’ll refer to this class as ICS 23, though it is indeed both ICS 23 and CSE 23. CSE 23 uses different course codes than ICS 23 (and there are two sets of course codes for CSE 23, one for CSE majors within the Samueli School of Engineering and another for CSE majors in the Bren School of ICS). You can find these codes under Important information, below.

Course structure

ICS 23 is has a lecture and a Help Center. Refer to the Course Schedule to learn what is to be covered in lecture, and what you should read to be prepared for it.

Lectures and lab assignments for ICS 23 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: the instructor and TAs will not repeat lecture material you missed, though of course they will answer questions about it. In addition to the usual reasons to attend lecture, note that some course material discussed in lecture is not in the textbook.

The Help Center is where you can work on lab assignments with a TA present to answer questions about them, and about lecture material as well.

We cannot stress enough the importance of going to the Help Center: it is where you will have the equipment, software, and in-person assistance helpful in completing your assignments.

You will have enrolled in a lab section as part of enrolling in this course. Lab sections are used simply as an enrollment mechanism, to be sure we have enough lab time to acommodate the number of students in lecture and to make sure you have reserved time to attend the Help Center. The lab section meeting times, taken together, comprise the hours of the Help Center. You may visit the Help Center any time it is open; in particular, you can go at times other than your scheduled lab time.

Important information

Please keep this information at hand; it likely will come in very handy during the quarter!

Instructor Information and Course email Address

Jacobson’s office DBH 4052
Office Hours Tues. & Thurs. 3:30 - 4:45 pm & by appointment, except for
  Finals Week: by appointment
  University holidays: none
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 ICS 183, Wednesdays and Fridays, 9:30 am to 4:50 pm, but closed on University holidays
Questions to course staff 23-questions@ics.uci.edu

Lecture and Lab Section Times, Locations and Course Codes

TAs, their email addresses, times in Help Center, and students they grade

Stylianos ("Stelios") Doudalis sdoudali@uci.edu Wed., 9:30 to 2:00; Fri., 2:00 to 2:50, 4:00 to 4:50 Last names starting with A - H
Chowdury ("Sharif") Hasan hasanc@uci.edu Wed., 2:00 to 4:50; Fri., 9:30 to 10:50, noon to 2:00 Last names starting with I - P
Laleh ("Lily") Jalali lalehj@uci.edu none Last names starting with Q - Z

Guest Account

Login: ics-temp
Password: Anteat3r


The prerequisite for ICS 23 is a grade of "C" or better in ICS/CSE 22 or Informatics 42. Equivalent courses from other educational institutions are also acceptable. The Registrar normally drops from ICS 23 any student who enrolled in it but did not complete (or have on record equivalents for) the prerequisites.

Please be aware that you may not be allowed to pass this course if you somehow became enrolled in it but do not have the prerequisites. It is an act of academic dishonesty to intentionally add this course without the prerequisites or the instructor’s permission.

Enrolling in ICS 23

To be enrolled in ICS 23, you must be enrolled in lecture and one (and only one) of its lab sections.

Procedures for adding and dropping the class, changing your grade option and related matters are discussed in Enrollment Information.

About ICS labs

The lab rooms (ICS 183, ICS 189, ICS 192, ICS 364): You may attend the Help Center any of the times it is open.

You may also work in ICS 183, ICS 189 or ICS 192 if the room is open and there is no class meeting in it.

You may also use the computers in ICS 364. 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 ICS 364.

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 toner or paper to a printer. An attendant cannot help you with your ICS 23 work.

Times reserved for classes and open-acess hours for all lab rooms are posted on the ICS Lab hours web page, and often on the labs’ doors.

The language of practice in the class is Java; in particular, we provide on our lab machines, and require you to use, Sun Java SDK 6 or 7 (for compiling running Java programs) and provide and presume you will use the Eclipse development environment (though you can use other Java development tools; see the Lab Manual for details). Microsoft Office (word processing, spreadsheet and database tools), Internet browsers, secureCRT and other packages are also available to you. The software suite is the same in any of these lab rooms.

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 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, which are part of the Office of Information Technology (OIT) PayPrint system, you’ll need to obtain a “PayPrint card.” The Printing in the labs ICS web page explains how to get one (and gives other details about the PayPrint system). 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 their 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 worldwide Internet services, via a “UCInetID” computer account. All ICS 23 students need this account: if you have not yet activated your UCInetID, go to the UCInetID Activation page. Under UCInetID Activation, click on Faculty, Staff and Students and follow the instructions. Be sure to have your student ID and social security number handy; you’ll need them to complete the activation process.

You will also need an ICS computer account to use the computers in the lab rooms. If you are already enrolled in the course, or an ICS major, the School has already created your account. If you are petitioning to add the class (and are not an ICS major), your account will be created a day or two after you enroll. You need to activate your ICS account to use it: Bring your UCI student ID card to the lab attendant in ICS 364. Your ID will be verified; you then take an on-the-computer quiz about the rules regarding use of ICS computer resources and provide a password. Your account is then ready for use. For details on activating ICS accounts, see the Account Activation Web page.

While you are waiting to add the class, you can use our “guest account”; the user name and password are in the table above. Obviously, the account is public, so don’t store any personal information or work there (copy it to a memory stick or elsewhere and delete it from the hard drive before you log out).

The guest account is typically locked about week three of the quarter, so be sure to activate your own account by then.

Your ICS account also provides you access to a Unix account that has the same login name and password. We won’t use that account for this class, but it is a good place to store a backup of your computer work.

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 when I am on campus.

You can most easily get course-related questions answered by coming to lecture and the Help Center and asking them. You can also ask questions by sending email to 23-questions@ics.uci.edu. (If you do not know how to use UCI's email, see the Email section of the Orientation to the Lab part of the ICS 21 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 the instructor or a TA 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 the instructor directly, or arrange to see me in person.

Keeping up with course announcements

Throughout the quarter, we post messages of general interest to the ICS 23 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 email to your preferred account; see the Email Delivery and Forwarding Email Web page for details.


Data Structures and Algorithms in Java, fifth edition, by Goodrich and Tamassia.

ICS 23 Lab Manual Spring 2012 by Jacobson and others. This booklet of your lab exercises and related information is on the course web page. Lab exercises change at least a bit, and sometimes a lot, every quarter, so do not use a previous quarter’s lab manual.

Additional materials

If you would like a different perspective on, or some practice with, the concepts presented in lecture, take a look at the texts we have made available in the Reserve Room of the Science Library. Reserve books can be checked out for 2 hours at a time. Of course, there are many Web-based discussions of data structures and algorithms you can access.

We will use several software packages for lab exercises, including SecureCRT for access to your UCInetID account, a web browser (e.g., Internet Explorer, Firefox) for Internet browsing, Eclipse to write and organize your programs, and Sun’s Java, coupled with Eclipse, to run them. 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 Internet Explorer, Firefox, Eclipse and Sun’s Java are free.

You will also need a way to back up (make a copy) of your work. Perhaps the best and easiest method is to use a USB memory stick or mini USB hard drive, available in several capacities from many sources, including the UCI Computer store.

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

Lab assignment due dates are given in 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, come to the Help Center, work diligently, ask questions, and plan for significant additional time outside of the Help Center 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.)

To help you study for the exams, we have prepared a set of midterm preparation questions and a set of final exam preparation questions. The TA and instructor will happily discuss these questions (and their answers) after you have come up with your own answers. We guarantee that most, if perhaps not quite all, of the topics covered in these question sets will appear on the midterm and final exams.

One of the course staff is responsible for grading all your assignments; to learn which person grades yours, see the chart under Important Information, above. If you think an assignment was graded incorrectly, discuss your concerns with the grader. If you have questions about how your exams were graded, see the instructor. Please bring us your grading questions within a week after the item is returned, so we have sufficient time to resolve the matter. In any event, you must contact us before the final; UCI rules prohibit regrading of work once the class ends.

To compensate for differences in grading that can occur when different people grade, we examine each grader’s scores statistically and increase proportionally the scores of students whose grader averages were lower than the grader with the highest average. The result will be that the average number of assignment points lost for each grader will be the same.

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 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 a couple of years after the course is over, and typically recycle them after that time.

We will 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+), 70% and above; grades in the B range, 60%–69%; grades in the C range, 50%–59%; grades in the D range, 40%–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 much 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: