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
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-ID | Area(s) | Status | Details |
---|---|---|---|
COMP | Computer Science | Approved | C-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
Type | In Class | Out of Class |
---|---|---|
Lecture Hours | 4.0 | 8.0 |
Laboratory Hours | 1.5 | 0.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
- Readings from Text
- 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
- 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.
- 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.
- Evaluation of programming assignments, based on correctness, documentation, code quality, and test plan executions.
Essential Student Materials/Essential College Facilities
Essential Student Materials:
- None.
- Access to a computer system with the Java SDK, or an Integrated Development Environment tool supporting Java
Examples of Primary Texts and References
Author | Title | Publisher | Date/Edition | ISBN |
---|---|---|---|---|
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
Author | Title | Publisher |
---|---|---|
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
- Identify the computing basics and Java as a programming language.
- Hardware
- Networking
- Software
- Summarize the development of programming languages.
- History of programming languages.
- Compare and contrast procedural versus object oriented programming languages.
- Principles of object-oriented analysis and design.
- Java as a programming language
- Java Installation
- Java and the Internet
- Third-Party Java Tools
- Java Application, Applets and Java Virtual Machine
- Garbage Collection in Java versus other object-oriented languages
- Demonstrate the software life-cycle steps including design, development, styles, documentation, testing, and maintenance in the creation of program.
- Flowcharts
- Pseudocode
- Documentation
- Software Development Life Cycle
- Coding conventions
- Principles of testing and designing test data
- Apply datatypes, expressions in basic Java programs.
- Integers
- Floating Types
- Boolean
- Variables – scope, visibility, binding, and lifetime
- Assignments
- Constants
- Comments, Casting, Precedence and Associativity.
- Identify Input/Output functions and formatting techniques.
- For reading Strings, numbers - integers and double.
- Formatting Numbers, Strings
- Build Simple Program using operators in expressions.
- Unary
- Conditional
- Assignment
- Arithmetic
- Relational
- Logical
- Bitwise
- Operator Precedence
- Operators used with Strings
- Demonstrate Flow of Control concepts in Java programs.
- if, if else and else if
- while
- do while
- for, for each
- switch
- break and continue statements
- Recursion
- Apply the techniques of structured decomposition through implementation of functions/methods to separate Java program into simple and interactive modules.
- static method definition
- Calling a method in Java
- Parameter passing
- Apply the concepts of Arrays in Java programs.
- Single-dimensional and multidimensional arrays
- Searching algorithm (Binary and Sequential Search)
- Sorting algorithm (Insertion, Bubble and Selection Sort)
- Identify Object Theory concepts including Overloading and Containment
- Features, benefits, applications of Object-Oriented programming
- Encapsulation and information-hiding
- Separation of behavior and implementation
- Unified Modeling Language (UML)
- Objects and classes
- Class variables and methods
- Constructors
- Overloading and Containment
- Strings, usage of this, super and scope resolution
- Features, benefits, applications of Object-Oriented programming
- Apply the concepts of Inheritance in Object Oriented Java programs.
- Subclasses
- protected, private, public and default
- super
- this
- Object Class
- Inner classes
- Polymorphism
- Apply abstract classes and interfaces in java programs
- Abstract methods and classes
- Final Classes
- Interfaces
- Basic Java Packages
- Write programs to demonstrate the usage of File I/O API in Java.
- Definition of Stream, Buffer and Filters
- Text Stream - FileReader, FileWriter, BufferedReader, BufferedWriter
- Binary Streams - FileInputStream, FileOutputStream, BufferedInputStream, BufferedOutputStream
- Filters - DataInputStream, DataOutputStream
- ObjectStreams ObjectInputStream and ObjectOutputStream and Serialization
- Demonstrate usage of data structures in Java.
- Generic type in Java
- List and collection Interface including Iterator and ListIterator interface type.
- Stacks and Queues
- Sets and Set Interface
- Maps and Map Interface
- Tree implementations
- Hash Tables
- Comparable interface
- Demonstrate the basics of Exception Handling in Java.
- try
- throw
- throws
- finally
Lab Topics
- Design solution, write code, and debug code implementing Java language basics.
- Design solution, write code, and debug code implementing object theory basics.
- Design solution, write code, and debug code implementing object relationships.
- Design solution, write code, and debug code implementing interfaces and abstract classes.
- Design solution, write code, and debug code implementing Java Collections.
- Design solution, write code, and debug code implementing Exception Handling.
- Design solution, write code, and debug code implementing file input and output.