Active Outline

General Information


Course ID (CB01A and CB01B)
CISD036A
Course Title (CB02)
Introduction to Computer Programming Using Java
Course Credit Status
Credit - Degree Applicable
Effective Term
Fall 2023
Course Description
This course is an introduction to computer programming. The primary objective is to teach problem-solving using the Java programming language. Emphasis will be placed on structured procedural programming with an introduction to object-oriented programming. This course is designed primarily for computer science and related transfer majors.
Faculty Requirements
Course Family
Not Applicable

Course Justification


This course is a major preparation requirement in the discipline of computer science for at least one CSU or UC. This course belongs on the Systems Programming A.A. degree. This course teaches the fundamentals of programming in Java and is the first course in a sequence that is compliant with the standards of the Association for Computing Machinery.

Foothill Equivalency


Does the course have a Foothill equivalent?
No
Foothill Course ID

Course Philosophy


Formerly Statement


Course Development Options


Basic Skill Status (CB08)
Course is not a basic skills course.
Grade Options
  • Letter Grade
  • Pass/No Pass
Repeat Limit
0

Transferability & Gen. Ed. Options


Transferability
Transferable to both UC and CSU
C-IDArea(s)StatusDetails
COMPComputer ScienceApprovedC-ID COMP 122

Units and Hours


Summary

Minimum Credit Units
4.5
Maximum Credit Units
4.5

Weekly Student Hours

TypeIn ClassOut of Class
Lecture Hours4.08.0
Laboratory Hours1.50.0

Course Student Hours

Course Duration (Weeks)
12.0
Hours per unit divisor
36.0
Course In-Class (Contact) Hours
Lecture
48.0
Laboratory
18.0
Total
66.0
Course Out-of-Class Hours
Lecture
96.0
Laboratory
0.0
NA
0.0
Total
96.0

Prerequisite(s)


Corequisite(s)


Advisory(ies)


  • ESL D272. and ESL D273., or ESL D472. and ESL D473., or eligibility for EWRT D001A or EWRT D01AH or ESL D005.
  • Intermediate algebra or equivalent (or higher), or appropriate placement beyond intermediate algebra

Limitation(s) on Enrollment


(Students may receive credit for either (CIS D036A and CIS D036B) or CIS D035A.)

Entrance Skill(s)


General Course Statement(s)


Methods of Instruction


Lecture including discussion of assigned reading,

Demonstration of developing solutions to programming problems,

In-class review as test preparation

Discussion of solutions to assigned lab assignment projects, and test problems,

Collaborative projects,

On-line tutorial

Assignments


  1. Reading: required reading from the text
  2. Programs: 8-12 programming homework assignments pertaining to the topics listed in X as Lab Topics, including several of more than 200 lines and several which use 5 or more methods. Some of these labs can be done in teams.

Methods of Evaluation


  1. Completion of programming assignments evaluated on use of structured design principles, documentation programming style, efficiency, and correctness of output.
  2. One or more examinations requiring some programming demonstrating ability to develop an algorithm and/or write code using specific programming constructs presented in the course. Code is evaluated on correctness.
  3. In-class lab problems, group collaborative problems, exam questions, and/or online assignments or tutorials demonstrating the ability to read and analyze code through debugging and/or writing snippets of code.
  4. A final examination requiring some programming demonstrating ability to develop an algorithm and/or write code using specific programming constructs presented in the course. Code is evaluated on correctness.

Essential Student Materials/Essential College Facilities


Essential Student Materials: 
  • None
Essential College Facilities:
  • Access to a computer with a Java compiler

Examples of Primary Texts and References


AuthorTitlePublisherDate/EditionISBN
Tony GaddisStarting Out With Java: From Control Structures through ObjectsPearson8th Edition, 2021

Examples of Supporting Texts and References


AuthorTitlePublisher
Introduction to Java Programming, Comprehensive Version
Core Java(TM), Volume I--Fundamentals

Learning Outcomes and Objectives


Course Objectives

  • Illustrate the difference between procedural and object oriented programming.
  • Describe steps in software development life-cycle design, development, styles, documentation, testing, and maintenance.
  • Explain the Java Runtime Environment (JRE) and Java Software Development Kit (JDK).
  • Illustrate declaring identifiers of different data types.
  • Use data types to declare variables in Java programs.
  • Apply input and output methods to read data using the keyboard and output data to the screen.
  • Use expressions, statements and operators to construct program building blocks that compute values.
  • Apply control structures to break up flow of program execution and conditionally execute blocks of code.
  • Illustrate usage of structured decomposition by implementing functions/methods to improve clarity, quality and development time of a computer program.
  • Develop programs using methods that enable input and output from text files.
  • Demonstrate the usage of arrays to process a variety of list problems.
  • Demonstrate the usage of the ArrayList class to process a variety of list problems.

CSLOs

  • Create algorithms, code, document, debug, and test introductory level Java programs incorporating elementary programming constructs.

  • Read, analyze and explain introductory level Java programs.

Outline


  1. Illustrate the difference between procedural and object-oriented programming.
    1. Programming language overview.
    2. Compare and contrast the history of the programming language and the differences between procedural and object-oriented programming.
    3. Language generations – First to Fifteenth generations.
    4. Compiled versus interpreted languages.
  2. Describe steps in software development life-cycle design, development, styles, documentation, testing, and maintenance.
    1. Flowcharts
    2. Pseudocode
    3. Software Development Life Cycle
    4. Coding conventions
    5. Documentation
  3. Explain the Java Runtime Environment (JRE) and Java Software Development Kit (JDK).
    1. The import directive with java.lang package
    2. Parts of a Java program and type checking.
    3. JRE program processing
  4. Illustrate declaring identifiers of different data types.
    1. Constants
    2. Variables
    3. Class names
  5. Use data types to declare variables in Java programs.
    1. Primitive types
      1. Integer
      2. Floating point
      3. Boolean
      4. Character
    2. Classes
    3. Declaring variables
    4. Identify and describe properties of a variable including associated address, value, scope, persistence and size.
    5. String and Date classes
  6. Apply input and output methods to read data using the keyboard and output data to the screen.
    1. Scanner
    2. System.out.println and System.out.printf
  7. Use expressions, statements, and operators to construct program building blocks that compute values.
    1. Arithmetic, Assignment, and Unary operators
    2. Methods in java.lang.Math
  8. Apply control structures to break up flow of program execution and conditionally execute blocks of code.
    1. Relational Operators
    2. Logical operators
    3. The 'if' statement
    4. Flags
    5. Expanding the 'if' with 'else' and 'else if'
    6. Comparing Strings using equals and compareTo methods
    7. The 'switch' statement
    8. Loops
      1. while loop
      2. do while loop
      3. for loop
  9. Illustrate usage of structured decomposition by implementing functions/methods to improve clarity, quality, and development time of a computer program.
    1. Writing static method definitions.
    2. Passing arguments to parameters.
    3. Pass by value.
    4. Demonstrate different forms of binding, visibility, scoping, and lifetime management.
    5. Illustration of type incompatibility and Java's compile-time type-checking of variables to provide abstraction and safety.
  10. Develop programs using methods that enable input and output from text files.
    1. Output to a text file.
    2. Input from a text file.
  11. Demonstrate the usage of arrays to process a variety of list problems.
    1. One-dimensional arrays
      1. Accessing array elements.
      2. Initialization
      3. Processing array contents.
    2. Sequential search
    3. Selection sort
  12. Demonstrate the usage of the ArrayList class to process a variety of list problems.
    1. Declare and initialize an ArrayList.
    2. Process the contents of an ArrayList using predefined ArrayList methods.

Lab Topics


  1. Debug code and output the results of execution.
  2. Write and/or debug code with input from keyboard and output to monitor.
  3. Write and/or debug code implementing arithmetic expressions.
  4. Write and/or debug code employing decision concepts and selections statements.
  5. Write and/or debug code employing repetition concepts and for, while, and do while loop structures.
  6. Write and/or debug code implementing methods.
  7. Write and/or debug code implementing file I/O.
  8. Write and/or debug code implementing one-dimensional arrays.
  9. Write and/or debug code utilizing an ArrayList.
Back to Top