ICS 21 Winter 2008
Course Reference

Introduction to Computer Science I
Norman Jacobson, Instructor


Table of Contents

   The Course
   Overview of course structure
   Enrolling in ICS21
   Important information
   About ICS labs
   UCInetID and ICS computer accounts
   Obtaining additional assistance
   Keeping up with course announcements
   Texts
   Additional materials
   Course assignments, exams, and their grading
   Course grade calculation
   About cooperation
   What to do to get started in ICS21
   Good advice and helpful hints

The course

ICS21 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, a fair amount about object oriented programming, using Java as the “language of practice,” and gain experience in working with a partner; working in a team is a common industry practice and often produces better software—and sooner—than when a person works alone.

This course is also known as CSE21; that’s its designation for the CSE major. For simplicity, we’ll refer to this class as ICS21, though it is indeed both ICS21 and CSE21. CSE 21 uses different course codes than ICS21 (and there are two sets of course codes for CSE21, 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 under Important information, below.


Overview of course structure

ICS21 consists of a lecture with associated priority lab sections.

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.

Priority lab is where you work on lab assignments and where you take the lab exams; the assignments prepare you for the exams. The section’s TA and a tutor will be present to answer questions about the course material, the assignments and the exams.

When working on lab assignments, including in lab, 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. The pair produces more high-quality code in less time, by far more than two-to-one. Working in pairs should make you much better prepared for the lab exams than working alone.

You will work with one partner for the first three lab assignments, and a different partner for the last two. For each of the two pairs, we prefer you and your partner chose each other. If you prefer not to choose your own partner, or cannot find a partner, let your TA know this; we will find a partner for you. You and your partner must report the partnerships to your section's TA no later than the dates given in the Course Schedule.

More about pair programming, and some particulars about how we employ it this quarter, are discussed in the ICS 21 Lab Manual (see also Texts, below).

You are guaranteed a seat in the priority lab in which you are enrolled and, subject to the restrictions given below, you and your partner may also attend other ICS21 lab sections. If you are absent from lab, you will not be able to work with your partner at that time, likely reducing your, and your partner's, preparedness for lab exams. So go to lab!


Enrolling in ICS 21

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

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. Also note that you must attend your priority lab at least once during the first two weeks of the quarter or we may require you to drop the course to make room for those trying to add it.


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. & Thur. 2:00 to 3:15 pm & by appointment
Jacobson’s phone 949-824-7300
Jacobson’s email address jacobson@uci.edu
Jacobson’s home page: www.ics.uci.edu/~jacobson
Questions to course staff 21-questions@ics.uci.edu

Click here for Lecture and Priority Lab Meeting Times and Locations

SectionTATA's Email
1 Rabia Nuray-Turan rnuray@uci.edu
2 Pouria Pirzadeh pouria@uci.edu
3 Pouria Pirzadeh pouria@uci.edu

Guest Account

Login: ics-temp
Password: Anteat3r

About ICS labs

The lab rooms (ICS 183, ICS 189, ICS 192, ICS 364): In addition to your priority lab time, you may attend any of the other ICS21 priority lab sections provided there is a vacant seat, the section TA has not prohibited visitors, and there is no lab exam in progress. You must give up your seat if someone who has priority during that time needs it.

You may also use ICS 183, ICS 189 or ICS 192 if the room is open and there is no class meeting in it. You may not use a first-floor lab when a non-ICS21 class is in session.

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 in each lab 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 ICS21 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 Rules 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 Network and Academic Computing Services (NACS) PayPrint system, you'll need to obtain a "PayPrint card." The ICS Lab web site 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 software is in the Orientation to the Lab section of the ICS21 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 ICS21 students need this account: if you have not yet activated your UCInetID, go to the UCInetID Services page. Click on I want to activate my UCInetID 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 (and yourself!) 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 now ready for use. For details on activating ICS accounts, see the Instructions for 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 right before you log out).

The account will be locked about week three of the quarter, so be sure to activate your own account by then. (Adds will be processed well before the account is locked.)

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.

Explicit instructions for activating an ICS account are provided at the ICS Lab web site.


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 gladly make appointments for other times during the week.

You can most easily get course-related questions answered by coming to lecture and lab and asking them! You can also ask questions 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 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 your TA or the instructor directly, or see the appropriate party in person.


Keeping up with course announcements

Throughout the quarter, we post messages of general interest to the ICS21 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 Forwarding UCI E-mail Web page for details.


Texts

Java Concepts, 5th 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-- as a paperback book, available in the bookstore and from various other bookstores and Websites and as an "electronic book" (a series of Web pages) from the WileyPlus web site.

If you buy the paperback book in the UCI bookstore, or the book with the same ISBN elsewhere, it will come with a code that wll allow you free access to the electronic version of the text. Note the electronic version is actually anohter text, Horstmann's Big Java. Not to worry: Big Java is Java Concepts, with additional chapters; all the readings in the course have the same chapter and section numbers in both texts.

You can also purchase a code to access the electronic code book directly, without buying a paperbook copy. The book to which you will obtain access is really Big Java, but again, the readings correspond. (You may also find some of Big Java's extra chapters" useful reading for ICS22.) The cost for the electronic copy is about half of the paperback version--but there is a tradeoff: you can only print out pages a few at a time, and your access is for about six months.

Have a major cedit card handy; you will need it to buy a "registration code" that gives you access to the text.

To get to the electronic version of the text:

To read the text in the future, go back to the WileyPlus ICS 21 screen and enter your email address and password; you'll be taken to the course home page.

You can print out pages of the book by using your browser’s print command.

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

ICS21 Lab Manual, Winter 2008 (“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. It is available via the Course Web page.


Additional materials

We are trying to arrange for the recording of lectures; by the first lecture, we will know if it is feasible. If we can do it, a link to the recordings will appear here. (Yesm, we did record last quarter's ICS 21, but it may be that the lecture room this quarter does not have the necessary hook-ups to record what appears on the boards; it may also be that needed equipment will be in use elsewhere.)

Other materials are available to give you more information, extra practice, or a different perspective on ICS21 topics. Some are available “on line” through the machines in the Lab. We also have books available 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 SecureCRT for access to your UCInetID account, a web browser (e.g., Internet Explorer, Firefox) for Internet browsing, TextPad (a text editor) to enter your programs, and Sun’s Java compiler and “virtual machine,” version 6.0. 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, SecureCRT and TextPad must be licensed (for a fee), and 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, 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.


Course assignments, exams, and their grading

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

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

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

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

See the Course Schedule for the dates of the exams.

During the quarter, 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.)

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, because each is designed to prepare you for a corresponding lab exam (that you take in your priority lab).

Programming assignments always take longer to complete than you think they will. (This phenomenon occurs among professional computer scientists, not just students of computing.) Start each assignment no later than suggested, come to lab, work diligently, ask questions, and plan for significant additional time outside of priority lab to complete your assignments, and 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.

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) until you pass it, up through the last offered “retake session,” which will be during Finals Week. If you do not take an exam when is first offered for your section, you cannot take it later unless you have the instructor’s specific approval.

If you need to retake a test, you must do so during a scheduled retake session.

Your section TA has the responsibility of insuring your lab exam scores are accurate and correctly recorded. So, if you think your exam was scored incorrectly, take the matter up with your TA. 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.

More details about the lab exams and their grading are in the Lab Manual.

To help you study for the miderm and final, we have placed sample exams on the course website; links to them are on the main ICS 21 web page. The TA and instructor will happily discuss the questions (and their answers) ewith 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. (The Enginering Copy Center is located in 203 Engineering Tower; it is open Mon-Fri 8:00 am to noon and 1 to 4 pm, but closed on University holidays.

The instructor keeps 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 recycles them after that time.


Course grade calculation

Determining the final course grades requires several steps:

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

Then 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.

For each of the two evaluations of your programmming partner (see the Lab Manual for details), we add 1 or 2 points to your total points from the exams. You earn 1 point for a cursory evaluation; you will earn 2 for an evaluation that is particularly thorough or insightful (and 0 points if you turn it in late or not at all). So you can earn from 1 to 4 additional points, which are added to your total, thus perhaps raising your provisional course grade.

We may remove up to 4 points from your total (up to two 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.

Then 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
5
A+
4
C-
3
D+
2
D
1
D-
0
F

Two particularly important consequences of the course grading algorithm:

• If you do not pass even one lab exam, your grade in this course will be no higher than a C- —and the more exams you do not pass, the lower your grade in the course.

You can pass all the lab exams and still not get a C in the course. Remember, your letter grade is primarily based on your midterm and final exam scores; if those are low, your grade will be low.

Your TA will grade and post lab exams scores as soon as feasible.

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

As ICS21 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 your 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 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.


What to do to get started in ICS21

• Read this Course Reference, its attached documents, and the World Wide Web documents it references.

• Obtain a memory stick or diskettes, or access other means (e.g., your ICS Unix account) to back up your work.

• Get a copy of the textbook, or sign up for the on-line version.

• Get a print card (if you plan to use lab printers).

• Activate your UCInetID.

• Activate your ICS account.

• Find a pair programming partner.

• As needed, learn about email, our lab set-up, and how to write, compile and run a Java program, as described in the Orientation to the Lab section of the Lab Manual.

• Begin working on Lab 1; begin preparing for Lab Exam #1.


Good advice and helpful hints

Make every effort to attend the lectures; we will make important announcements and often cover material that isn't directly in the textbook. You may audio tape lecture, provided you use it only to study for this course.

Attend your priority lab; it’s where you work with your partner, where you can ask your TA and the tutor about the assignments while you are working on them and, very importantly, it is where you will take the lab exams.

Keep up with the reading; you’ll need it to do your assignments and exams, and the quarter system goes so fast that a few missed pages can quickly become a few chapters if you're not careful. But don't try to memorize everything the first time you read it through. A good strategy is to read for the broad ideas before lecture, listen to lecture carefully, and then refer back to the text for reference as needed.

Start early working with your partner on the lab assignments; computer work always takes longer to complete than you think it will, even if you have previous experience. You want to know each lab assignment’s material cold before you take the lab exam that corresponds to it.

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