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; thats its designation for the CSE major. For simplicity, well 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.
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.
Please keep this information at hand; it likely will come in very handy during the quarter!
Jacobsons office | DBH 4052 |
Office Hours | Tues. & Thurs. 3:30 - 4:45 pm & by appointment, except for
Finals Week: by appointment University holidays: none |
Jacobsons phone | 949-824-7300 |
Jacobsons email address | jacobson@uci.edu |
Jacobsons 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
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 instructors permission.
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.
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 UCIs 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, youll 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.
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; youll 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 dont 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 wont use that account for this class, but it is a good place to store a backup of your computer work.
During my office hours, course-related matters will have first priority. Of course emergencies may come up, but Ill try to give advance notice of any changes to my hours. If Im not immersed in something else, Ill be glad to answer short questions whenever Im in my office, so feel free to drop by. Ill 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.
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.
The text is available at the UCI bookstore ($133.80 new, $100.35 used) and other book sellers and directly from the publisher via the Web at http://http://www.wiley.com/WileyCDA/WileyTitle/productCd-EHEP001602.html"($140.95 new).
For $41.87, the UCI bookstore will rent you the book for 90 days. The Bookstore ships the book to you; you ship it back by the end of the rental period. You can extend your rental in 90-day blocks for as long as you like. See the UCI Bookstore Textbook Rentals page for more information.
The text is also available via the Web as an "e-book," a file that you download to your computer and that can be read via an e-book reader. There are many formats for e-books (no real standards yet!) and different readers can read certain formats and not others.The ebook is available at http://www.wiley.com/WileyCDA/WileyTitle/productCd-EHEP001602.html for $84.50. (See the bottom of the page.)
To read the e-book version of our text, you must first install VitalSource BookShelf, availabel free at http://www.vitalsource.com/index/bookshelf, before you try to download the book: Bookshelf is used to download the text.
Note the Bookshelf works only on certain operating systems, so be sure there's a version that works on yours, and that you install the right version. And do ensure that BookShelf works before buying the text. The easiest way to do that is to download one of the free Wiley books from VitalSource and get it working with BookShelf; you can find a freebie on the http://store.vitalsource.com/search?q=wiley&search.x=0&search.y=0&search=search page. Once you are sure BookShelf is working and you're comfortable using it, then buy and download the course text.
See the Course Schedule for the readings that correspond to each lecture.
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 quarters lab manual.
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 Suns 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 Suns 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.
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, its 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 graders 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.
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:
You may cooperate on the sample test question sets to any degree you wish, as well as make use of course staff and other resources.
On programming assignments, the work you turn in must be your own; in particular, you may not do joint work. You also may not have another person write part of your program or let someone plan the detailed strategy you will use to attack the problem. You may ask other students for help on technical matters, such as how to use Java or interpret a Java error message. You may, of course, get help from a TA or the instructor: We know what sort of help is allowable, so feel free to ask us any question you have (but we may decline to answer it if it means we will be doing your work for you). You may also use data and programs we provide to you.
You may not copy code from any textbookincluding the text for this courseor any other source unless you have specific permission from the TA or the instructor, or when a lab assignment specifically allows you to do so. When you are allowed to adapt code from another source for use in your program code, you must credit the source of that code in your programs comments and any related write-ups.
Note that we compare submitted lab work to other work done this quarter and done in previous quarters, and will consider it strong evidence of academic dishonesty if any assignments are inappropriately similar.
More detail about appropriate code reuse is given in the Lab Manual.
On exams, you must do your own work: Using answers from another source, such as a student sitting near you at the exam, is a particularly serious infraction of academic honesty rules.
If you are unsure whether certain behavior is acceptable, ask before you engage in it.