CS102 - Computer Programming II¶
CS102 develops intermediate object-oriented programming skills in Java. The course builds on CS101 and focuses on class design, inheritance, polymorphism, interfaces, Java collections, generics, recursion, files, two-dimensional arrays, and object-oriented project work.
Course project
I created and documented a CS102 school course enrollment system for this course. You can view the portfolio entry and open the project here: Project portfolio · Project site · Repository
Course Information¶
| Item | Details |
|---|---|
| Course code | CS102 |
| Course title | Computer Programming II |
| Credit hours | 3 credits |
| Contact format | 3 lecture hours and 1 tutorial hour |
| Prerequisite | CS101 Computer Programming I |
| Main textbook | Y. Daniel Liang, Introduction to Java Programming and Data Structures, Comprehensive Version, Global Edition, 11th ed. |
| Course role | Required core course |
Course Learning Outcomes¶
By the end of CS102, students should be able to:
- Process data using files and two-dimensional arrays.
- Recognize object-oriented concepts using classes and class hierarchies to promote code reuse.
- Solve software development problems using inheritance, abstract classes, encapsulation, polymorphism, and interfaces.
- Apply Java Collection Framework structures such as lists, array lists, maps, sets, linked lists, hash sets, hash maps, and priority queues.
- Develop and use generic classes and methods to promote software reuse.
- Develop recursive programs to solve iterative-style problems.
- Work effectively in a team to design, develop, and present an object-oriented project.
Course Content¶
-
CS101 Review, Files, and Two-Dimensional Arrays
Review of earlier Java programming concepts, file processing, and 2D arrays.
-
Class Design
Fields, methods, constructors, constructor overloading,
this, setters, getters,toString,equals, encapsulation, privacy, objects, classes, abstract classes, access modifiers, and class members. -
Inheritance
Object,extends, single inheritance, interface-based multiple inheritance,super, superclass/subclass relationships, UML inheritance, superclass references,instanceof, protected access, and type checking. -
Polymorphism and Interfaces
Superclass references, upcasting, downcasting,
getClass, interfaces, abstract methods, and single abstract method interfaces. -
Java Collection Framework
Dynamic arrays,
ArrayList,Arrays,LinkedList,HashSet,HashMap,PriorityQueue, searching, sorting, and iterators. -
Generics
Generic types, generic methods, generic interfaces, and generic classes.
-
Recursion
Recursive methods, base cases, recursive calls, and stack overflow risks.
-
Final Project
Team-based object-oriented design, implementation, and presentation.
Assessments¶
| Assessment | Weight |
|---|---|
| Weekly lab assignments | 7% |
| Computer-based quizzes | 8% |
| Attendance | 5% |
| Two major exams | 30% |
| Project | 10% |
| Computer-based final exam | 40% |
Study Path¶
- Review CS101 topics, especially arrays, methods, files, and tracing code.
- Study class design and encapsulation before inheritance.
- Practice inheritance, polymorphism, interfaces, casting, and type checking together.
- Learn the Java Collection Framework by comparing when each structure is useful.
- Study generics and recursion with small examples before larger problems.
- Use the project to connect class design, reuse, collections, and teamwork.
Source
This overview was updated from the CS102 course syllabus.