I&C SCI 22 Introduction to Computer Science II (2013-2014)

I&C SCI 22 Introduction to Computer Science II

(Not required for any major.)
Catalog Data:

I&C SCI 22 Introduction to Computer Science II (Credit Units: 6) Abstract behavior of classic data structures (stacks, queues, sorted and unsorted), alternative implementations, analysis of time, and space efficiency. Recusion. Object-oriented and functional programming. Prerequisite: ICS 21 or CSE 21 or ICS H21 with a grade of C or better. Same as CSE 22. Only one course from I&C SCI 22, CSE 22, I&C SCI H22, CSE 42, I&C SCI 32, I&C SCI 33, CSE 43, EECS 10, EECS 12, ENGRMAE 10, IN4MATX 42 may be taken for credit. (Design units: 0)

Required Textbook:
Recommended Textbook:
. Edition, , 1969, ISBN-13 978-0470383261.


Horstmann, Cay. Java Concepts, 4th Edition, Wiley & Sons, 2005 and other Java references as needed.

Richard Eric Pattis
Relationship to Student Outcomes
This course relates to Student Outcomes: CAC a, CAC b, EAC a.
Course Learning Outcomes. Students will:

1. Analyze algorithms for time and space efficiency. (CAC a, CAC b, EAC a)

2. Be familiar with a recurrence relation describing the execution time of simple recursive code. (CAC a, EAC a)

3. Describe the abstract behavior of classic data structures. (CAC a)

4. Be familiar with recursion, sorting, object-oriented programming, Java programming, and alternative approaches to program design. (CAC a)

Prerequisites by Topic
  • Mastery of ICS/CSE 21 material, as demonstrated by C or better:
  • Java programming using:
  • Basic statements (assignment, I/O)
  • Basic data types (int, long, double, boolean)
  • Selection (if, switch)
  • Loops and loop control (for, while, do; the dangers of break)
  • Methods/functions (defining, calling, parameter passing)
  • Exception handling as applied to files and scoping rules.
  • Identify the appropriate uses of data structures and be able to read code to determine whether they are properly and reasonably implemented.
  • Write code to implement conventional algorithms.
  • Understand the fundamental concepts of Object Oriented Programming
Lecture Topics:
  • Enumerations in Java
  • Exception handling in Java
  • Singly-linked lists, generic classes, iterations and iterators
  • Importance of automated testing, test-driven development, unit testing using JUnit
  • Inheritance and polymorphism
  • The Object class
  • Algorithm analysis and O-notation
  • Linear and binary search, ArrayLists and arrays
  • Performance comparison of ArrayLists and linked lists, variations of linked lists;
  • The need for "classic data structures", Stacks, Implementing stacks using linked lists and ArrayLists
  • Queues, implementing queues using linked lists and arrays
  • Maps, the case for non-linear data structures, binary search trees, hash tables
  • Interfaces, the AutoClosable interface, comparability and natural orderings, distinction between abstract classes and interfaces
  • Programming paradigms, introduction to functional programming in Racket
  • Introduction to sorting problem, insertion sort and selection sort, generalizing sorting with comparability
Class Schedule:

Meets for 3 hours of lecture, 2 hours of discussion and 6 hours of laboratory each week for 10 weeks.

Computer Usage:

An editor, such as TextPad, Sun Java 2 Standard Edition JDK (J2SE 5.0), DrScheme on a windows platform.

Laboratory Projects:
  • Lab #1-Perfect Candidate
  • Lab #2-You Won't Find Me There
  • Lab #3-What's Simple Is True
  • Lab #4-Gone to the Movies
  • Lab #5-Signal to Noise
  • Lab #6-Espresso Love
Professional Component

Contributes towards the Computer Science and Engineering major requirements for Engineering and Computer Topics courses.

Design Content Description
  • Approach:
  • Lectures:
  • Laboratory Portion:
Lectures: 0%
Laboratory Portion: 0%
Grading Criteria:
  • Six programming projects: 40% (weighted equally at approx. 6.7% each)
  • Midterm Exam: 25%
  • Final Exam: 35%
  • 100%
Estimated ABET Category Content:

Mathematics and Basic Science: 0.0 credit units

Computing: 6.0 credit units

Engineering Topics: 6.0 credit units

Engineering Science: 6.0 credit units

Engineering Design: 0.0 credit units

July 10, 2013
Senate Approved:
May 3, 2013
Approved Effective:
2013 Winter Qtr