ICS 22

Introduction to Computer Science II

Second of a three-quarter introductory sequence. Covers abstract behavior of classic data structures (lists, stacks, queues, tables, trees), alternative implementations, and analysis of time and space efficiency, recursion, object-oriented programming, and functional programming.

Assessment

Your grade will be assigned according to a curve of each section. Your score will be the sum of weighted scores: 6 quizzes (summing to 40%, after the lowest score is dropped), 9 homework assignments (each worth one ninth of 30% and all count), and a comprehensive final exam worth 30%. Be sure to read my cheating policy here. It also discusses my policy on late homework and partial credit.

Submitting Homework

Each .java file must include a comment template at the top. This comment should have the following form:
// NAME: Your full name
// STUDENT ID: Your UCI student ID
// EMAIL: Your email address
// TA NAME: Your TA's name
// SECTION NUMBER: Your Section Number
All homework must be submitted via paper copy (in your discussion section on the due date) and via electronic submission to your section's NT drop box by the due date (don't wait until the last minute here). Your electronic and paper versions must match except that your electronic version need not have comments (other than the name template above). Use the following ID for each submission: your UCI ID number '_HW' homework number '_S' submission number (starting with 1). E.G., 12345678_HW3_S1. Only your highest numbered submission will be considered for grading although all copies will be checked for plagerism. Please only submit the .java source code files (not your .class files or .vep files or any other files generated by the compiler).

Grading of Programs

Each program you submit (on homework, quiz, or the final exam) will be graded on the following components: Program Design, Algorithmic Correctness, Coding Style, Efficiency (including choice of algorithm - you must use the most efficient one covered in lecture), Correctness of O-Notation for each method you write, and Appropriate Commenting. Each submission will be worth a maximum of 100 points. Programs that do not run will be worth at most 25 points. Each error will cost you 5 points with TA discression for giving smaller penalties for minor errors. You should look at the grading and make changes in your programming to improve each of these components of your programming skill. If you qualify for early submission on a homework, the bonus of 10 points will be added to your homework score after grading upto a maximum of 100 points.

Late Homework

I do not accept late homework. You have a week to schedule your time so plan to finish early. If you run in to problems with a homework and you started early, you have a cushion to get help or to spend more time getting your program to work. If you don't get it done on time, you have only yourself to blame, so learn from this mistake and start earlier next time. There are plenty of homeworks to do.

Making Up a Quiz or the Final Exam

I do not offer a make-up for any quizzes. The reason I drop your lowest quiz is to allow for potential disasters like over-sleeping, getting a visa, automobile accident on the way to school, or grandparent passing away (all excuses I've actually heard!). If all goes well and you take all quizzes, then you will be fortunate to drop the one on which you made the most errors. If you miss the final exam, you get a course grade of NR which turns into an F after one term. There are no make-ups of the final exam.
Course Related Links
Java Instructional Examples
Success Tips
Java Coding Style Rules
TA Evening Lab Hours
Lecture Notes
Homework Assignments
Homework Starts

Text Books

  • Data Structures & Problem Solving Using Java by Mark Allen Weiss
    ISBN: 0201549913
    Check out Data Strutures... at Amazon.com
  • Data Structures & Algorithm Analysis in Java by Mark Allen Weiss
    ISBN: 0201357542
    Check out Data Strutures... at Amazon.com
  • Recommended: Any good Java language text such as "Core Java Volume I"
    ISBN: 0-130-81933-6.
    Check out Core Java at Amazon.com

    Topic and Reading Schedule

    Week Topic Data Structures...
    1,2 Java: Classes, Objects, Arrays, Strings, Inner Classes 1, 2, 3
    3 Foundational Data Structures: arrays and linked-lists 5, 2.4, 6.4, 16.(1-2)
    4 Inheritance and Polymorphism, Interfaces, Exceptions, File I/O 4, 2.(5-6)
    5 Java GUI: Frames, Panels, Buttons, Menus, TextAreas, Graphics Appendix D.(1-3), Core Java
    6 Stacks, Queues, and Deques 6.(2-3), 15
    7 Ordered Lists and Sorted Lists
    (Insertion Sort and Binary Search)
    6.4, 8.(1-3), 16
    8 Hashing and Hash Tables with Separate Chaining 6.7, 19.(all but 3-4)
    9 Trees and Binary Search Trees 6.(5-6), 18.(1-3)
    10 Final Review

    Homework and Quiz Topic Schedule

    Wk 1 2 3 4 5 6 7 8 9 10 Finals
    Lec Java Java Simple Lists Inher. & Poly., Excep. Java GUIs Stacks & Queues Ordered & Sorted Lists Hash Tables Binary Search Trees Review
    HW Bank Accounts MyString Birthday List Zoo & Picture Rolodex QueTest & RPNCalc. CD Coll. Grades Mall
    Qz Simple Lists Inher. & Poly. Stacks & Queues Ordered & Sorted Lists Hash Tables Binary Search Trees Final Exam