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

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 H22, CSE 42, I&C SCI 32, CSE 43, I&C SCI 33, IN4MATX 42, EECS 10, EECS 12, ENGRMAE 10 may be taken for credit. (Design units: 0)

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

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
  • 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:
  • 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:
July 10, 2013
Senate Approved:
May 3, 2013
Approved Effective:
2013 Winter Qtr