CSE 21 Introduction to Computer Science I (2012-2013)

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. May not be taken for credit 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 may be taken for credit. (Design units: 0)

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

Recommended Textbook:
None
References:

Additional reference materials are on reserve in the Science Library.

Coordinator:
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

NONE.

Lecture Topics:
  • Introduction to the course; compiling, linking and executing Java programs (1.5 hours)
  • 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 (4.5 hours)
  • Java basics in detail (1.5 hours)
  • Decision statements (1.5 hours)
  • Loops and simple loop algorithms (1.5 hours)
  • Interclass communication; value and reference parameters; introduction to testing (1.5 hours)
  • Basic ArrayLists (1.5 hours)
  • Exception handling (1.5 hours)
  • File handling (3.0 hours)
  • Parallel and nested ArrayLists (3.0 hours)
  • Recursion (1.5 hours)
  • Inheritance and polymorphism (1.5 hours)
  • Interfaces; introduction to applets and graphics (1.5 hours)
  • Introduction to event handling and graphical user interfaces (GUIs) (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:

Windows XP, Textpad, Java

Laboratory Projects:
  • Lab #1. Write a Java program that 1) accepts some test scores from the user, 2) computes some statistics from these scores and 3) displays the entered scores and the computed statistics on the console window.
  • Lab #2. Enhance the test program to make it more useful, and to check input data for (some kinds of) errors; along the way, you apply a number of important Java concepts and get practice with several Java statements.
  • Lab #3. A serious collector of early recorded music has left his collection to a music archive. You've been hired to create a title index and some "media counts" for the collection from a file that lists the donated items. The archive needs the title index to easily find items; it needs the counts to determine how many storage shelves it needs for each kind of media.
  • Lab #4. Users of your music archive program (the one you wrote for Lab #3) have noticed that it takes a fair amount of time to produce the index file. You've been directed to speed up the program. Use a List ADT and implement it using linked lists with iterators.
  • Lab #5. Recall that you were directed to modify your music archive program so that it produces the music index file more quickly. This requirement was to be met by using a linked list (instead of an ArrayList) to store music items. The list class was written in Lab #4; revise your music program (Lab #3) to use it.
Professional Component

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

Design Content Description
Approach:

NONE.

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

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