Active Outline

General Information


Course ID (CB01A and CB01B)
CISD035A
Course Title (CB02)
Java Programming
Effective Term
Fall 2023
Course Description
Introduction to Java programming, computing context, primitive types, flow of control constructs, operators, file I/O, objects and classes, inheritance, interfaces, packages, data structures and exceptions.
Course Family
Not Applicable

Course Justification


This course is required for transfer for many majors of the California State Universities (CSUs), and is transferable to all CSUs and UCs. Java Programming is a required or suggested course in several De Anza programs including Systems Programming Degree. This course provides students who are already programmers in another computer language a foundation to program in Java using basic language constructs, Object Oriented Programming, and Object Oriented applications.

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 CIS D035A & (CIS D022C or CIS D22CH) required for C-ID COMP 132

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.

CIS D022B, CIS D22BH, CIS D026A or CIS D027.

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 and visual aids

Discussion and problem solving performed in class

Quiz and examination review performed in class

Homework and extended projects

Laboratory discussion sessions and quizzes that evaluate the proceedings weekly laboratory exercises

Assignments


  1. Readings from Text
  2. Documenting, coding, testing and debugging six to ten programs guided with clearly documented design, covering the Lab Topics specified in X. below, half completed in the computer lab, half completed as homework.

Methods of Evaluation


  1. One or two midterm examinations requiring students to write code applying topics covered in the lectures and reading. Responses are evaluated on implementation of stated constructs and correctness of code.
  2. Final Examination requiring students to write code applying topics covered in the lectures and reading. Responses are evaluated on implementation of stated constructs and correctness of code.
  3. Evaluation of programming assignments, based on correctness, documentation, code quality, and test plan executions.

Essential Student Materials/Essential College Facilities


Essential Student Materials: 
  • None.
Essential College Facilities:
  • Access to a computer system with the Java SDK, or an Integrated Development Environment tool supporting Java

Examples of Primary Texts and References


AuthorTitlePublisherDate/EditionISBN
Liang, Daniel, "Introduction to Java Programming and Data Structures, Comprehensive Version", 11th Edition Prentice Hall: (2018)
Horstmann Cay. "Core Java(TM), Volume I--Fundamentals." 10th Edition, Prentice Hall: (2016)

Examples of Supporting Texts and References


AuthorTitlePublisher
Eckel, Bruce, "Thinking in Java" 4th Ed. Prentice Hall: (Feb 10, 2006)

Learning Outcomes and Objectives


Course Objectives

  • Identify the computing basics and Java as a programming language.
  • Summarize the development of programming languages.
  • Demonstrate the software life-cycle steps including design, development, styles, documentation, testing, and maintenance in the creation of program.
  • Apply datatypes, expressions in basic Java programs.
  • Identify Input/Output functions and formatting techniques.
  • Build Simple Program using operators in expressions.
  • Demonstrate Flow of Control concepts in Java programs.
  • Apply the techniques of structured decomposition through implementation of functions/methods to separate Java program into simple and interactive modules.
  • Apply the concepts of Arrays in Java programs.
  • Identify Object Theory concepts including Overloading and Containment
  • Apply the concepts of Inheritance in Object Oriented Java programs.
  • Apply abstract classes and interfaces in java programs
  • Write programs to demonstrate the usage of File I/O API in Java.
  • Demonstrate usage of data structures in Java.
  • Demonstrate the basics of Exception Handling in Java.

CSLOs

  • Read, analyze and explain intermediate level Java programs.

  • Create algorithms, code, document, debug, and test intermediate level Java programs.

Outline


  1. Identify the computing basics and Java as a programming language.
    1. Hardware
    2. Networking
    3. Software
  2. Summarize the development of programming languages.
    1. History of programming languages.
    2. Compare and contrast procedural versus object oriented programming languages.
    3. Principles of object-oriented analysis and design.
    4. Java as a programming language
      1. Java Installation
      2. Java and the Internet
      3. Third-Party Java Tools
      4. Java Application, Applets and Java Virtual Machine
      5. Garbage Collection in Java versus other object-oriented languages
  3. Demonstrate the software life-cycle steps including design, development, styles, documentation, testing, and maintenance in the creation of program.
    1. Flowcharts
    2. Pseudocode
    3. Documentation
    4. Software Development Life Cycle
    5. Coding conventions
    6. Principles of testing and designing test data
  4. Apply datatypes, expressions in basic Java programs.
    1. Integers
    2. Floating Types
    3. Boolean
    4. Variables – scope, visibility, binding, and lifetime
    5. Assignments
    6. Constants
    7. Comments, Casting, Precedence and Associativity.
  5. Identify Input/Output functions and formatting techniques.
    1. For reading Strings, numbers - integers and double.
    2. Formatting Numbers, Strings
  6. Build Simple Program using operators in expressions.
    1. Unary
    2. Conditional
    3. Assignment
    4. Arithmetic
    5. Relational
    6. Logical
    7. Bitwise
    8. Operator Precedence
    9. Operators used with Strings
  7. Demonstrate Flow of Control concepts in Java programs.
    1. if, if else and else if
    2. while
    3. do while
    4. for, for each
    5. switch
    6. break and continue statements
    7. Recursion
  8. Apply the techniques of structured decomposition through implementation of functions/methods to separate Java program into simple and interactive modules.
    1. static method definition
    2. Calling a method in Java
    3. Parameter passing
  9. Apply the concepts of Arrays in Java programs.
    1. Single-dimensional and multidimensional arrays
    2. Searching algorithm (Binary and Sequential Search)
    3. Sorting algorithm (Insertion, Bubble and Selection Sort)
  10. Identify Object Theory concepts including Overloading and Containment
    1. Features, benefits, applications of Object-Oriented programming
      1. Encapsulation and information-hiding
      2. Separation of behavior and implementation
      3. Unified Modeling Language (UML)
    2. Objects and classes
    3. Class variables and methods
    4. Constructors
    5. Overloading and Containment
    6. Strings, usage of this, super and scope resolution
  11. Apply the concepts of Inheritance in Object Oriented Java programs.
    1. Subclasses
    2. protected, private, public and default
    3. super
    4. this
    5. Object Class
    6. Inner classes
    7. Polymorphism
  12. Apply abstract classes and interfaces in java programs
    1. Abstract methods and classes
    2. Final Classes
    3. Interfaces
    4. Basic Java Packages
  13. Write programs to demonstrate the usage of File I/O API in Java.
    1. Definition of Stream, Buffer and Filters
    2. Text Stream - FileReader, FileWriter, BufferedReader, BufferedWriter
    3. Binary Streams - FileInputStream, FileOutputStream, BufferedInputStream, BufferedOutputStream
    4. Filters - DataInputStream, DataOutputStream
    5. ObjectStreams ObjectInputStream and ObjectOutputStream and Serialization
  14. Demonstrate usage of data structures in Java.
    1. Generic type in Java
    2. List and collection Interface including Iterator and ListIterator interface type.
    3. Stacks and Queues
    4. Sets and Set Interface
    5. Maps and Map Interface
    6. Tree implementations
    7. Hash Tables
    8. Comparable interface
  15. Demonstrate the basics of Exception Handling in Java.
    1. try
    2. throw
    3. throws
    4. finally

Lab Topics


  1. Design solution, write code, and debug code implementing Java language basics.
  2. Design solution, write code, and debug code implementing object theory basics.
  3. Design solution, write code, and debug code implementing object relationships.
  4. Design solution, write code, and debug code implementing interfaces and abstract classes.
  5. Design solution, write code, and debug code implementing Java Collections.
  6. Design solution, write code, and debug code implementing Exception Handling.
  7. Design solution, write code, and debug code implementing file input and output.
Back to Top