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, well refer to this class as ICS 45J, though it is indeed both ICS 45J and ICS 80.
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 instructors permission.
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: 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 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 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.
Please keep this information at hand; it will likely be quite useful during the quarter!
Jacobsons office | Donald Bren Hall (DBH) 4052 |
Office hours | Mon. & Wed. 3:30 - 4:45 pm, except on school holidays, and by appointment |
Jacobsons phone | 949-824-7300 |
Jacobsons email address | jacobson@uci.edu |
Jacobsons 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 |
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.
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, 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.
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.
See the Course Schedule for the readings that correspond to each lecture.
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.
The bookstore has a new print copies of the book, loose leaf, with the code, for $94.60, and used copies (which may not have a still-valid code) for $70.95, both plus tax. For comparison, Amazon.com is selling the text, bound, for $86.16 (with free shipping) and in electronic book (Kindle) form for $77.54 (or as a Kindle rental starting at $42.71). You can also rent the text from Barnes & Noble for $37.26 for 90 days, or buy it outright for $85.30 (with free shipping).
A new book (loose leaf) is being offered by Wiley through a UCI-specific web site; from the page //www.wiley.com/WileyCDA/Section/id-406856.html you can purchase the book with an access code for $66.95 plus shipping (from $6.00 to $25.00, depending upon how fast you want the book) and tax.
A new printed text with an access code costs more than the on-line text alone, but you get both a printed book and access to the online version of the text. If you buy a used print copy of the book, from any source, it does not matter whether you buy a version with the online access code: the code, even if present, will likely be invalid.
To get access to the electronic version of the text, go to the Computer Science section of the WileyPlus Courses website and click on Horstmann / Big Java Fourth Edition AND Java Concepts Sixth Edition, WileyPLUS Registration Code. From the dropdown menu next to state; choose CALIFORNIA. Then, click the Search button next to the School Name box; a new School dropdown menu will appear; choose UNIVERSITY OF CALIFORNIA IRVINE and then click the Continue button. A Shopping Cart screen should appear, with the cart containing WileyPLUS eCommerce to accompany Big Java 4e & Java Concepts 6e, for (as of this writing) $55.00.
With your credit card ready, click on CHECKOUT NOW and complete the billing and shipping information. When you are done, you will be shown a registration code: copy it down; you'll need it to get access to the text.
Now, Go to the WileyPlus ICS 45J home page.
Click on the Create Account link.
After reading through the license agreement, click on I agree to these terms.
On the next page, enter your registration code; click Continue.
Provide the requested information to create your WileyPlus Student Account. Upon successfully completion, you will be brought to the ICS 45J home page.
To read the text, click on the Read, Study & Practice link. Links to the text's chapters will appear. Follow them and subsequent links to read the book.
To read the text in the future, go back to the WileyPlus ICS 45J screen and enter your email address and password; youll be taken to the course home page.
You can print out pages of the book by using your browsers print command.
If you prefer to have a complete copy of the text on your hard drive, you can obtain said from vitalsource.com (or from Wiley directly, but it is the same text and process; Wiley uses VitalSource to deliver the text. So we just give instructions here for obtaining the text from vitalsource.com). The book itself is available for $75.50, from the Java Concepts page; add it to the shopping cart and then click on CHECK OUT (it is on the right, under Your Cart). Under Sign In, youll need to click on New user? Register here and complete the requested information and Save it. To complete purchase of the text, enter the School Name where indicated, click on Purchase, and follow the instructions that appear for paying for the text. To read the book, youll need to download a copy of Bookshelf, available at the Bookshelf download page. Be sure your computer meets Bookshelf&146;s system specifications; if it does not, Bookshelf may not run and you will not be able to read the downloaded text.
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.
We will use several software packages for lab exercises, including Eclipse for our Java environment, Suns 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 Suns 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.
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 courses 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, its 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.
We determine your weighted point total for the midterm and final exams.
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).
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 thingit 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.
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 exam 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, if it is a solo assignment, or yours and your progamming partner's work, if it is pair programming assignment. You may not do joint work other than with your programming partner. In particular, you also not have another person write part of your program or let someone plan the detailed strategy you will use to attack the problem, with the exception of your programming partner on pair programming assignments. 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 me:feel free to ask me any question you have (but I may decline to answer it if it means I 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 me, 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.
Acknowledgement. Thanks to Prof. David G. Kay for permission to adapt text from his Fall 2006 Informatics 41 Pair Programming Guidelines.