Course Description

The object-oriented approach to programming with Java is developed in full. Topics include: practical object design, object-oriented principles (interfaces, composition, inheritance, polymorphism, and encapsulation), and container/collection objects (including arrays) and associated algorithms. As exemplars of these topics, the basis of GUI interfaces, event-driven programming, and graphics are examined. Exceptions and file access are introduced as well. The emphasis is on developing good software craftsmanship along with an awareness of the implications for the user of software design choices. Lecture: 3 hours per week. Lab: 2 hours per week.

Prerequisite: “C” or better in CS 120 Programming I.

Required Texts

In lieu of a traditional textbook, this course will make use of Open Educational Resources (OERs). During the first week of class, we will make accounts and register for the learning platforms we will be using.

  • Develop stand-alone Java applications.
  • Draw a complete UML diagram (an approach to modeling object-oriented systems) for any programming assignment.
  • Process data stored in one and two-dimensional arrays.
  • Recognize and demonstrate OOP concepts such as encapsulation and information hiding.
  • Practice and build applications using OOP key technologies such as polymorphism (inheritance and interfaces).
  • Create applications that employ user-friendly graphical user interfaces and handle events, using Swing and/or other Java library’s GUI packages.
  • Construct code to handle exceptions.
  • Write programs that create, read, write and update files.
  • Apply debugging and testing skills and use them effectively and consistently.
  • Week 1: Syllabus Review, Reintroducing Java