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
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 |
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.
- 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
- Reading: required reading from the text
- 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
- Completion of programming assignments evaluated on use of structured design principles, documentation programming style, efficiency, and correctness of output.
- 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.
- 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.
- 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
- Access to a computer with a Java compiler
Examples of Primary Texts and References
Author | Title | Publisher | Date/Edition | ISBN |
---|---|---|---|---|
Tony Gaddis | Starting Out With Java: From Control Structures through Objects | Pearson | 8th Edition, 2021 |
Examples of Supporting Texts and References
Author | Title | Publisher |
---|---|---|
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
- Illustrate the difference between procedural and object-oriented programming.
- Programming language overview.
- Compare and contrast the history of the programming language and the differences between procedural and object-oriented programming.
- Language generations – First to Fifteenth generations.
- Compiled versus interpreted languages.
- Describe steps in software development life-cycle design, development, styles, documentation, testing, and maintenance.
- Flowcharts
- Pseudocode
- Software Development Life Cycle
- Coding conventions
- Documentation
- Explain the Java Runtime Environment (JRE) and Java Software Development Kit (JDK).
- The import directive with java.lang package
- Parts of a Java program and type checking.
- JRE program processing
- Illustrate declaring identifiers of different data types.
- Constants
- Variables
- Class names
- Use data types to declare variables in Java programs.
- Primitive types
- Integer
- Floating point
- Boolean
- Character
- Classes
- Declaring variables
- Identify and describe properties of a variable including associated address, value, scope, persistence and size.
- String and Date classes
- Primitive types
- Apply input and output methods to read data using the keyboard and output data to the screen.
- Scanner
- System.out.println and System.out.printf
- Use expressions, statements, and operators to construct program building blocks that compute values.
- Arithmetic, Assignment, and Unary operators
- Methods in java.lang.Math
- Apply control structures to break up flow of program execution and conditionally execute blocks of code.
- Relational Operators
- Logical operators
- The 'if' statement
- Flags
- Expanding the 'if' with 'else' and 'else if'
- Comparing Strings using equals and compareTo methods
- The 'switch' statement
- Loops
- while loop
- do while loop
- for loop
- Illustrate usage of structured decomposition by implementing functions/methods to improve clarity, quality, and development time of a computer program.
- Writing static method definitions.
- Passing arguments to parameters.
- Pass by value.
- Demonstrate different forms of binding, visibility, scoping, and lifetime management.
- Illustration of type incompatibility and Java's compile-time type-checking of variables to provide abstraction and safety.
- Develop programs using methods that enable input and output from text files.
- Output to a text file.
- Input from a text file.
- Demonstrate the usage of arrays to process a variety of list problems.
- One-dimensional arrays
- Accessing array elements.
- Initialization
- Processing array contents.
- Sequential search
- Selection sort
- One-dimensional arrays
- Demonstrate the usage of the ArrayList class to process a variety of list problems.
- Declare and initialize an ArrayList.
- Process the contents of an ArrayList using predefined ArrayList methods.
Lab Topics
- Debug code and output the results of execution.
- Write and/or debug code with input from keyboard and output to monitor.
- Write and/or debug code implementing arithmetic expressions.
- Write and/or debug code employing decision concepts and selections statements.
- Write and/or debug code employing repetition concepts and for, while, and do while loop structures.
- Write and/or debug code implementing methods.
- Write and/or debug code implementing file I/O.
- Write and/or debug code implementing one-dimensional arrays.
- Write and/or debug code utilizing an ArrayList.