Skip to content

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:

  1. Process data using files and two-dimensional arrays.
  2. Recognize object-oriented concepts using classes and class hierarchies to promote code reuse.
  3. Solve software development problems using inheritance, abstract classes, encapsulation, polymorphism, and interfaces.
  4. Apply Java Collection Framework structures such as lists, array lists, maps, sets, linked lists, hash sets, hash maps, and priority queues.
  5. Develop and use generic classes and methods to promote software reuse.
  6. Develop recursive programs to solve iterative-style problems.
  7. 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

  1. Review CS101 topics, especially arrays, methods, files, and tracing code.
  2. Study class design and encapsulation before inheritance.
  3. Practice inheritance, polymorphism, interfaces, casting, and type checking together.
  4. Learn the Java Collection Framework by comparing when each structure is useful.
  5. Study generics and recursion with small examples before larger problems.
  6. Use the project to connect class design, reuse, collections, and teamwork.

Source

This overview was updated from the CS102 course syllabus.