CSE 22 Introduction to Computer Science II (2012-2013)

CSE 22 Introduction to Computer Science II

(Not required for any major.)
Catalog Data:

CSE 22 Introduction to Computer Science II (Credit Units: 6) Abstract behavior of classic data structures (stacks, queues, sorted and unsorted maps), alternative implementations, analysis of time and space efficiency. Prerequisite: CSE21/ICS 21 or ICS H21 with a grade of C or better. Only one course from CSE22/ICS22, ICS H22, CSE42/ICS32, CSE43/ICS 33, EECS 10, EECS 12, MAE 10 or Informatics 42 may be taken for credit. Same as I&C SCI 22. Only one course from CSE 22, I&C SCI 22, I&C SCI 32, IN4MATX 42, I&C SCI H22, CSE 42, I&C SCI 33 may be taken for credit. (Design units: 0)

Required Textbook:
. Edition, , 1969, ISBN-13 978-0471738848.

Recommended Textbook:
None
References:

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

Coordinator:
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 (1.5 hours)
  • Inheritance and polymorphism (1.5 hours)
  • Interfaces, the Object class (1.5 hours)
  • Exception handling in Java (1.5 hours)
  • Singly-linked lists, iterators, writing a singly-linked list class (1.5 hours)
  • Algorithm analysis and O-notation (3.0 hours)
  • Linear and binary search (1.5 hours)
  • Performance comparison of ArrayLists and linked lists, variations of linked lists (1.5 hours); Stacks and linked/array lists (1.5 hours)
  • Queues and linked/array lists (1.5 hours)
  • MIDTERM
  • Priority queues and trees, tree traversals (1.5 hours)
  • Recursion and recurrence relations (1.5 hours)
  • Programming paradigms and introduction to Scheme (3.0 hours)
  • Maps; binary search trees (1.5 hours)
  • Hash tables with separate chaining, “good” hash functions (1.5 hours)
  • Finite-state automata (1.5 hours)
  • Course review; course evaluations (1.5 hours)
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, The Price You Pay: Write a program that handles some relatively simple payroll-processing tasks for a small business. Students will gain experience with inheritance and polymorphism, the use of the generic ArrayList class in the Java library, enumerations, and using the console to read input and write formatted output.
  • Lab #2, Free to Decide: Build a program to assist a county election board with managing voter registrations and determining which voters will be eligible to vote at which polling places. Students will gain practice with singly-linked lists, reading input from a file, console-mode user interface, and exception handling.
  • Lab #3: What's Simple Is True: Build a Facile interpreter. Students will gain additional practice with inheritance and polymorphism, linked-list stacking, and program design.
  • Lab #4: Gone to the Movies: Build a program that will simulate various arrangements of lines and ticket windows, to facilitate management’s analysis of the amount of time that customers stand in line and find the optimal combinations for its theaters.
  • Lab #5: The Worst Joke Ever: Write a jokegenerating program for the Irvine Comedy Factory. Students will be introduced to the concept of a grammar, which is recurrent in the study of computer science, and gain practice implementing a recursive algorithm in Java
  • Lab #6: Basic Instructions: Write fifteen Scheme procedures according to the specifications provided. The standard Scheme environment used for this lab assignment is DrScheme.
Professional Component

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

Design Content Description
Approach:
  • 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

Prepared:
June 25, 2012
Senate Approved:
April 10, 2012
Approved Effective:
2012 Fall Qtr