CSE 21 Introduction to Computer Science I (2014-2015)

CSE 21 Introduction to Computer Science I

(Not required for any major.)
Catalog Data:

CSE 21 Introduction to Computer Science I (Credit Units: 6) Introduces fundamental concepts related to computer software design and construction. Develops initial design and programming skills using a high-level language. Fundamental concepts of control structures, data structures, object-oriented programming. CSE 21 or I&C SCI 21 may not be taken for credit if taken after IN4MATX 42. Same as I&C SCI 21. Only one course from CSE 21, I&C SCI 21, I&C SCI H21, CSE 41, I&C SCI 31, EECS 12, EECS 10, ENGRMAE 10 may be taken for credit. (Design units: 0)

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

Recommended Textbook:

Additional reference materials are on reserve in the Science Library.

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

1. Write programs in Java 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/function (defining, calling, parameter passing) (CAC a, EAC a)

2. Demonstrate proficiency in exception handling as applied to files and scoping rules (CAC a, EAC a)

3. Identify the appropriate uses of data structures and be able to read code to determine whether they are properly and reasonably implemented. (CAC a, EAC a)

4. Write code to implement conventional algorithms in that context. (CAC a, EAC a)

5. Understand the fundamental concepts of Object Oriented Programming. (CAC a, EAC a)

Prerequisites by Topic


Lecture Topics:
  • Compiling and executing Java programs
  • A simple Jave program: data abstraction; classes and fields; objects; defining and calling methods; public vs. private; assignment and print statements; importing; parameter passing; return values; local variables
  • Testing programs, print statements
  • Java basics in detail
  • Random number generation
  • Decision statements
  • Loops and simple loop algorithms, nested statements
  • The List ADT; ArrayLists: basics, classic algorithms, using generics
  • More on ArrayLists: as parameter and return types, clone(), shallow vs. deep copying, enhanced for loop; the class Object
  • Nested data structures, particularly involving ArrayLists; Introduction to fixed-size arrays
  • Exception handling: basic concepts and approaches
  • File handling: basic concepts and approaches, text files
  • File handling: character encodings and end-of-line issues; .format(); Scanner
  • Introduction to inheritance
  • Polymorphism; Reference and value parameters; Introduction to recursion
  • Access control; Abstract classes and methods; Interfaces
  • Introduction to graphics programming: applets, GUIs, event handling
Class Schedule:

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

Computer Usage:

Windows XP, Textpad, Java

Laboratory Projects:
  • Lab #1: Smiley faces
  • Lab #2: Animated smiley
  • Lab #3: Smileys at the Races
  • Lab #4: A Donation to the Music Archive
  • Lab #5: Revising the Music Archive Program
Professional Component

Contributes toward Computer Science and Engineering major Requirement for Engineering and Computer Topics

Design Content Description


Lectures: 0%
Laboratory Portion: 0%
Grading Criteria:
  • Midterm exam: 40%
  • Final exam: 60%
  • Total: 100%
  • Lab Assignments (Pass/Fail but each lab must be passed in order to pass the class)
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

April 15, 2014
Senate Approved:
May 3, 2013
Approved Effective:
2013 Winter Qtr