CS G153: Java Programming 1
Item | Value |
---|---|
Curriculum Committee Approval Date | 04/19/2022 |
Top Code | 070710 - Computer Programming |
Units | 3 Total Units |
Hours | 90 Total Hours (Lecture Hours 36; Lab Hours 54) |
Total Outside of Class Hours | 0 |
Course Credit Status | Credit: Degree Applicable (D) |
Material Fee | No |
Basic Skills | Not Basic Skills (N) |
Repeatable | No |
Grading Policy | Standard Letter (S),
|
Course Description
This course covers the fundamentals of software development using the Java programming language. Students learn to design and evaluate solutions and apply computer science to solve problems through the development of algorithms and programs. Lecture and lab content will focus on object-oriented programming, classes, constructors, flow control statements, data types, methods, inheritance, data hiding, abstraction, and the Java library. ADVISORY: CS G102 and course taught at the level of intermediate algebra or appropriate math placement. Transfer Credit: CSU; UC. C-ID: COMP 122. C-ID: COMP 122.
Course Level Student Learning Outcome(s)
- Course Outcomes
- Apply the techniques of structured (functional) decomposition to break a program into smaller pieces.
- Construct error handling routines.
- Create a program that uses object oriented programming constructs.
Course Objectives
- 1. Summarize the evolution of programming languages.
- 2. Design software solutions for business and scientific problems.
- 3. Formulate and document the problem solution.
- 4. Translate mathematical formulas/expressions, and algorithms in the Java language.
- 5. Resolve coding and logic errors using sophisticated debugging tools.
- 6. Apply optimization techniques.
- 7. Develop a large software solution into modules using structured decomposition.
- 8. Analyze static and dynamic memory allocations.
- 9. Modify input, output devices and files.
- 10. Develop applications using Object-Oriented Programming (OOP) paradigms.
Lecture Content
Survey of Programming Languages Binary instructions and low level languages Compiled vs. translated languages Scripting languages Programming languages evolution Programming concepts Compiling and linking Data types Variables and constants Arithmetic and logical expressions Conversion of business and scientific formulas Branching and looping Arrays, vectors, and strings Input/Output (I/O) formatting Modularization using structured decomposition Methods Parameter passing Local and global variables Static variables Default arguments Overloading methods Methods and menu-driven programming Stubs and drivers Memory management Dynamic memory allocation and deallocation Garbage collection References Array references and strings Memory watch for debugging Searching and sorting Linear vs. binary search Sorting algorithms Algorithm complexity analysis Recursion Recursively defined problems Recursive vs. iterative implementations Files and streams Sequential-access for ASCII files Binary files Random-access files Command-line arguments Object-oriented programming (OOP) paradigm Abstract data types Classes and objects Constructors, accessors, and mutators Static members Operator overload UML diagrams Aggregation and composition CRC (Class Responsibility and Collaboration) cards Inheritance Errors and exceptions Input errors Exception handling Programming paradigms Console programming Event-driven programming Software development process Development methodologies Requirements and specifications Designing solution: charts and UML diagrams Coding and unit testing Documenting requirements, specifications, solution options, and user guides Testing and debugging
Lab Content
Introduction to computers and Java programming Java basics More flow of control Procedural abstraction and methods that return a value Methods for all subtasks I/O streams as an introduction to objects and classes Arrays Strings and vectors References and dynamic arrays Defining classes Overloaded operators and arrays in classes Class development and packages References and linked lists Recursion Inheritance Exception handling Generics Parameterized classes and methods
Method(s) of Instruction
- Lecture (02)
- DE Live Online Lecture (02S)
- DE Online Lecture (02X)
- Lab (04)
- DE Live Online Lab (04S)
- DE Online Lab (04X)
Reading Assignments
Textbook and Websites
Writing Assignments
Students will be required to complete software development projects presented to them in the form of business automation problems requiring solution implementation. Students will be required to write documentation for their projects.
Out-of-class Assignments
An optional library research paper will promote further study and research in current Java programming or other related topics selected by the student and approved by the instructor.
Demonstration of Critical Thinking
Students will analyze requirements and select the appropriate programming structures for an efficient solution implementation. Testing and debugging will require students to perform data tracing and error isolation during program execution.
Required Writing, Problem Solving, Skills Demonstration
Students will be required to complete software development projects presented to them in the form of business automation problems requiring solution implementation. Students will be required to write documentation for their projects.
Eligible Disciplines
Computer science: Masters degree in computer science or computer engineering OR bachelors degree in either of the above AND masters degree in mathematics, cybernetics, business administration, accounting or engineering OR bachelors degree in engineering AND masters degree in cybernetics, engineering mathematics, or business administration OR bachelors degree in mathematics AND masters degree in cybernetics, engineering mathematics, or business administration OR bachelors degree in any of the above AND a masters degree in information science, computer information systems, or information systems OR the equivalent. Note: Courses in the use of computer programs for application to a particular discipline may be classified, for the minimum qualification purposes, under the discipline of the application. Masters degree required.
Textbooks Resources
1. Required Liang, Daniel Y. Introduction to Java Programming and Data Structures, Comprehensive Version, 12th ed. Pearson, 2020 Rationale: to be completed by instructor 2. Required Cay Horstmann. Java Concepts: Early Objects, 8th ed. Wiley, 2019 3. Required Eck, D.. Introduction to Programming Using Java, 8th ed. David Eck (OER)(Latest), 2015 Rationale: .
Other Resources
1. Instructor prepared materials.