Fall 2020 (08/26/2020 - 12/20/2020)

The semester has 28 class meetings including a midterm exam but excluding the final exam. Clicking on a class day below, you should find the class module for the day including lecture notes, assignments, and others. The instructor releases the content for a class generally on the Monday before the class. However, the instructor often makes update to the module content after the initial release. You should check this page often for up-to-date content.

In case you encounter a problem when viewing class content, such as, a broken link, please report it to the instructor immediately.

Topics: overview of class organization (syllabus); preparing programming environment (JRE and JDK); preparing for synchronous online lecturing (process, CUNY Blackboard, Class Portal Site)

Course Objectives

to design and implement applications with multiple Java classes, interfaces, and objects;
(Module) to set up Java programming environment
(Module) to review the process of authoring a Java program
to use basic Unix command line operators to support Java programming;
(Module) to use basic UNIX and Windows command line operations

Lecture Notes

Exercises

Reading

Reviewing topics in CISC 1115

On Blackboard

Topics: Installing Git and Atom; Introduction to CodeLab; Introduction to journal submission method; UNIX command line operations; Authoring Java program from command line;

Course Objectives

to design and implement applications with multiple Java classes, interfaces, and objects;
(Module) to set up Java programming and working environment for the class
(Module) to review the process of authoring a Java program
to use basic Unix command line operators to support Java programming;
(Module) to use basic UNIX and Windows command line operations

Lecture Notes

CodeLab

Exercises

Reading

Reviewing topics in CISC 3115

On Blackboard

Topics: classes and data types; data fields (Instance and class variables); behavior (instance methods and class methods); constructors; default constructor; primitive types and reference types; accessing objects via reference variables; passing objects to methods; immutable objects; the this reference variable; Java package concept; visibility modifiers;

Course Objectives

to understand Java class definition, including the use of constructors and static members;
(Module) to define Java class with instance and class variables
(Module) to define Java class with instance and class methods
to understand Java objects, the concepts of state and behavior, and their realization in the Java programming language;
(Module) to use and override the default constructor
(Module) to create non-default constructors
(Module) to create and access Java objects
to design and implement applications with multiple Java classes, interfaces, and objects;
(Module) to design Java applications with multiple classes in multiple files

Lecture Notes

CodeLab

Exercises

Reading

Sections 9.1 - 9.5 of the textbook
Sections 9.6 - 9.9 of the textbook

On Blackboard

Topics: classes and data types; data fields (Instance and class variables); behavior (instance methods and class methods); constructors; default constructor; primitive types and reference types; accessing objects via reference variables; passing objects to methods; immutable objects; the this reference variable; Java package concept; visibility modifiers;

Course Objectives

to understand Java class definition, including the use of constructors and static members;
(Module) to define Java class with instance and class variables
(Module) to define Java class with instance and class methods
to understand Java objects, the concepts of state and behavior, and their realization in the Java programming language;
(Module) to use and override the default constructor
(Module) to create non-default constructors
(Module) to create and access Java objects
to design and implement applications with multiple Java classes, interfaces, and objects;
(Module) to design Java applications with multiple classes in multiple files

Lecture Notes

CodeLab

Exercises

Reading

Sections 9.1 - 9.5 of the textbook
Sections 9.6 - 9.9 of the textbook

On Blackboard

Topics: class versus object; class abstraction and encapsulation; relationship among classes and objects (message passing, client-server, UML class and sequence diagrams); aggregation; copying objects; wrapper classes; immutable objects; String, StringBuilder, and StringBuffer Classes; Java unit tests (on command line);

Lecture Notes

Recorded Video Lectures on Zoom

CodeLab

Individual Programming Assignment

Exercises

Reading

Sections 9.10 - 9.14 of the textbook
Section 3.9 of the textbook
Sections 10.1 - 10.3 of the textbook
Sections 10.4 - 10.6 of the textbook
Sections 10.7 - 10.11 of the textbook

On Blackboard

Topics: class versus object; class abstraction and encapsulation; relationship among classes and objects (message passing, client-server, UML class and sequence diagrams); aggregation; copying objects; wrapper classes; immutable objects; String, StringBuilder, and StringBuffer Classes; Java unit tests (on command line);

Lecture Notes

Recorded Video Lectures on Zoom

CodeLab

Individual Programming Assignment

Exercises

Reading

Sections 9.10 - 9.14 of the textbook
Section 3.9 of the textbook
Sections 10.1 - 10.3 of the textbook
Sections 10.4 - 10.6 of the textbook
Sections 10.7 - 10.11 of the textbook

On Blackboard

Topics: class versus object; class abstraction and encapsulation; relationship among classes and objects (message passing, client-server, UML class and sequence diagrams); aggregation; copying objects; wrapper classes; immutable objects; String, StringBuilder, and StringBuffer Classes; Java unit tests (on command line);

Lecture Notes

Recorded Video Lectures on Zoom

CodeLab

Individual Programming Assignment

Exercises

Reading

Sections 9.10 - 9.14 of the textbook
Section 3.9 of the textbook
Sections 10.1 - 10.3 of the textbook
Sections 10.4 - 10.6 of the textbook
Sections 10.7 - 10.11 of the textbook

On Blackboard

Topics: Inheritance; superclasses and subclasses (supertypes and subtypes); overriding and Overloading methods; constructors and default constructor; constructor chaining; polymorphism and polymorphism via inheritance; dynamic binding and polymorphism; visibility modifier (public, protected, no visibility modifier); the final modifier and inheritance;

Lecture Notes

Recorded Video Lectures on Zoom

CodeLab

Group Project

Exercises

Reading

Sections 11.1 - 11.5 of the textbook
Section 11.6 of the textbook
Sections 11.7 - 11.8 of the textbook
Sections 11.9 - 11.10 of the textbook
Sections 11.11 of the textbook

On Blackboard

Topics: Inheritance; superclasses and subclasses (supertypes and subtypes); overriding and Overloading methods; constructors and default constructor; constructor chaining; polymorphism and polymorphism via inheritance; dynamic binding and polymorphism; visibility modifier (public, protected, no visibility modifier); the final modifier and inheritance;

Lecture Notes

Recorded Video Lectures on Zoom

CodeLab

Group Project

Exercises

Reading

Sections 11.1 - 11.5 of the textbook
Section 11.6 of the textbook
Sections 11.7 - 11.8 of the textbook
Sections 11.9 - 11.10 of the textbook
Sections 11.11 of the textbook

On Blackboard

Notice: Classes follow Monday schedule

Topics: Inheritance; superclasses and subclasses (supertypes and subtypes); overriding and Overloading methods; constructors and default constructor; constructor chaining; polymorphism and polymorphism via inheritance; dynamic binding and polymorphism; visibility modifier (public, protected, no visibility modifier); the final modifier and inheritance;

Lecture Notes

Recorded Video Lectures on Zoom

CodeLab

Group Project

Exercises

Reading

Sections 11.1 - 11.5 of the textbook
Section 11.6 of the textbook
Sections 11.7 - 11.8 of the textbook
Sections 11.9 - 11.10 of the textbook
Sections 11.11 of the textbook

On Blackboard

Topics: Inheritance; superclasses and subclasses (supertypes and subtypes); overriding and Overloading methods; constructors and default constructor; constructor chaining; polymorphism and polymorphism via inheritance; dynamic binding and polymorphism; visibility modifier (public, protected, no visibility modifier); the final modifier and inheritance;

Lecture Notes

Recorded Video Lectures on Zoom

CodeLab

Group Project

Exercises

Reading

Sections 11.1 - 11.5 of the textbook
Section 11.6 of the textbook
Sections 11.7 - 11.8 of the textbook
Sections 11.9 - 11.10 of the textbook
Sections 11.11 of the textbook

On Blackboard

Topics: Inheritance; superclasses and subclasses (supertypes and subtypes); overriding and Overloading methods; constructors and default constructor; constructor chaining; polymorphism and polymorphism via inheritance; dynamic binding and polymorphism; visibility modifier (public, protected, no visibility modifier); the final modifier and inheritance;

Lecture Notes

Recorded Video Lectures on Zoom

CodeLab

Group Project

Exercises

Reading

Sections 11.1 - 11.5 of the textbook
Section 11.6 of the textbook
Sections 11.7 - 11.8 of the textbook
Sections 11.9 - 11.10 of the textbook
Sections 11.11 of the textbook

On Blackboard

Topics: Q & A for Midterm Exam.

Lecture Notes

Reading

all chapters discussed

Topics: The instructor will hold a midterm exam in class (via an online proctoring software if available).

Topics: Design with exceptions; try-catch blocks; throwing exceptions; exception types (including checked vs unchecked); polymorphism and dynamic binding with exceptions; stack trace; defining custom exception types; exceptions and text file I/O;

Lecture Notes

Recorded Video Lectures on Zoom

CodeLab

Group Project

Exercises

Reading

Sections 12.1 - 12.3 of the textbook
Section 12.4 of the textbook
Section 12.5 of the textbook
Section 12.6 of the textbook
Sections 12.7 - 12.8 of the textbook
Sections 12.9 - 12.10 of the textbook
Sections 12.11 - 12.13 of the textbook

Topics: Design with exceptions; try-catch blocks; throwing exceptions; exception types (including checked vs unchecked); polymorphism and dynamic binding with exceptions; stack trace; defining custom exception types; exceptions and text file I/O;

Lecture Notes

Recorded Video Lectures on Zoom

CodeLab

Group Project

Exercises

Reading

Sections 12.1 - 12.3 of the textbook
Section 12.4 of the textbook
Section 12.5 of the textbook
Section 12.6 of the textbook
Sections 12.7 - 12.8 of the textbook
Sections 12.9 - 12.10 of the textbook
Sections 12.11 - 12.13 of the textbook

Topics: abstract class; abstract method; inheritance and abstract class;

Lecture Notes

CodeLab

Exercises

TBA (Due: )

Reading

Sections 13.1 - 13.4 of the textbook

Topics: interface; interface and hieritance; interface and polymorphism; designing with class and interface; selected interfaces in Java API;

Lecture Notes

CodeLab

Exercises

TBA (Due: )

Reading

Chapter 13 of the textbook

Topics: interface; interface and hieritance; interface and polymorphism; designing with class and interface; selected interfaces in Java API;

Lecture Notes

CodeLab

Exercises

TBA (Due: )

Reading

Chapter 13 of the textbook

Topics: Recursion; Designing for mathematical recursive functions (e.g. divide, factorial, Fibonacci numbers); Designing for problem solving using recursion

Lecture Notes

CodeLab

Exercises

TBA (Due: )

Reading

Chapter 18 of the textbook

Topics: Recursion; Designing for mathematical recursive functions (e.g. divide, factorial, Fibonacci numbers); Designing for problem solving using recursion

Lecture Notes

CodeLab

Exercises

TBA (Due: )

Reading

Chapter 18 of the textbook

Topics: Generics (including the Comparable<> interface)

Lecture Notes

Exercises

TBA (Due: )

Reading

Chapter 19 of the textbook

Topics: Java Collections API; list (ArrayList, LinkedList); stack; queue; set; map; iterator; enhanced for loop; sorting and searching;

Lecture Notes

CodeLab

Exercises

TBA (Due: )

Reading

Chapters 19, 20, and 21 of the textbook

Topics: Java Collections API; list (ArrayList, LinkedList); stack; queue; set; map; iterator; enhanced for loop; sorting and searching;

Lecture Notes

CodeLab

Exercises

TBA (Due: )

Reading

Chapters 19, 20, and 21 of the textbook

Topics: Java Collections API; list (ArrayList, LinkedList); stack; queue; set; map; iterator; enhanced for loop; sorting and searching;

Lecture Notes

CodeLab

Exercises

TBA (Due: )

Reading

Chapters 19, 20, and 21 of the textbook

Notice: College Closed

Topics: Java Collections API; list (ArrayList, LinkedList); stack; queue; set; map; iterator; enhanced for loop; sorting and searching;

Lecture Notes

CodeLab

Exercises

TBA (Due: )

Reading

Chapters 19, 20, and 21 of the textbook

Topics: User interfaces (CLI vs GUI); concurrency and event-driven programming; event-driven programming and GUI; nested class; JavaFX Applications; Basic JavaFX GUI components (e.g. Button, Circle, Image) and their placement using Panes, Scenes, Stage.

Lecture Notes

CodeLab

Exercises

TBA (Due: )

Reading

TBA

Topics: Selected topics on file systems and mass storage; Q & A for Final Exam.

Lecture Notes

Reading

Relevant chapters in the textbook; lecture notes; all quizes; review guides and tests