Skip to main content

CISC 3115 Introduction To Modern Programming Techniques

Fall 2018

by Professor Hui Chen, CUNY Brooklyn College

Section TY3

Class Meeting: 03:40 - 05:20pm, Tuesday and Thursday
Classroom: Room 130 Ingersoll Hall Extension (IA-130)

Course Schedule

Topics: Windows/Unix Command Line; Writing Java programs; Compiling and running Java programs;

Lecture Notes
Assignment
  • Complete In-Class Exercise C02a-1 in a group and on your own.
  • Complete In-Class Exercise C02b-1 on your own
  • Complete In-Class Exercise C02b-2 on your own
  • Complete In-Class Exercise C02b-3 on your own
  • Complete In-Class Exercise C02c-1 on your own
  • Complete In-Class Exercise C02c-2 in your team
Reading
  • Sections 1.1 - 1.10 in the textbook
Resources
Video: Git Basics from GitHub Training & Guides by GitHub Screencast: Github Classroom: Simple Workflow for Individual Assignment Screencast: Github Classroom: Simple Workflow for Team Assignment

Topics: data fields/Instance variables; behavior/instance methods; constructors; primitive types and reference types; accessing objects via reference variables;

Lecture Notes
Assignment
  • Complete In-Class Exercise C03a-1 in a group in class, and on your own to complete and submit it. (Due before the class on 09/13)
Reading
  • Sections 9.1 - 9.5 of the textbook
Resources

Topics: constructors; a few classes in the Java Library; instance and static data fields and methods; constants;

Lecture Notes
Assignment
  • Complete In-Class Exercise C04a-1 in a group in class, and on your own to complete and submit it. (Due before the class on 09/13)
  • CodeLab exercises marked as due by 09/11/2018
Reading
  • Sections 9.5 - 9.7 in the textbook
Resources

Topics: visibility and visibility modifiers; scope; passing objects to methods; arrays of objects

Lecture Notes
Assignment
  • Complete In-Class Exercise C06a-1 in a group in class, and on your own to complete and submit it. (Due before the class on 09/20)
  • Complete In-Class Exercise C06b-1 in a group in class, and on your own to complete and submit it. (Due before the class on 09/20)
Reading
  • Sections 9.8 - 9.14 in the textbook
Resources

Topics: class abstraction and encapsulation; aggregation; UML; copying objects; wrapper classes; StringBuilder and StringBuffer Classes

Lecture Notes
Assignment
  • Complete In-Class Exercise C08a-1 in a group in class, and on your own to complete and submit it. (Due before the class on 09/27)
Reading
  • Chapters 3 and 10 of the textbook
Resources

Topics: Superclasses and Subclasses; Overriding and Overloading methods; constructor chaining;

Lecture Notes
Assignment
  • Complete In-Class Exercise C09a-1 in a group in class, and on your own to complete and submit it. (Due before the class on 10/02)
  • Complete the CodeLab exercise marked as due by 10/04/2018.
Reading
  • Sections 11.1 - 11.6 of the textbook
Resources

Topics: Concept of polymorphism

Lecture Notes
Assignment
  • Complete the CodeLab exercise marked as due by 10/11/2018.
Reading
  • Sections 11.7 of the textbook
Resources

Topics: Dynamic binding and plymorphism

Lecture Notes
Assignment
  • Complete In-Class Exercise C11a-1 in a group in class, and on your own to complete and submit it. (Due before the class on 10/09)
  • Prepare for the online quiz to be released on Thursday (10/04/2018).
Reading
  • Sections 11.7 - 11.9 of the textbook
Resources

Topics: Object class, .equals and .toString; arrays of objects with polymorphic method calls

Lecture Notes
Assignment
  • Complete in-class exercise C12d-1 in a group in class, and on your own to complete and submit it. (due before the class on 10/11)
  • Complete the CodeLab exercise marked as due by 10/18/2018.
Reading
  • Sections 11.6, 11.10 - 11.14 of the textbook
Resources

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

Lecture Notes
Assignment
  • Complete the CodeLab exercise marked as due by 10/25/2018.
  • Prepare for the online quiz on Chapter 10
Reading
  • Sections 12.1 - 12.6 of the textbook
Resources

Topics: try-catch blocks; throwing exceptions; exception types (including checked vs unchecked); stack trace; defining custom exception types

Lecture Notes
Assignment
  • Study the review tests to be released on Blackboard by 10/15/2018
Reading
  • Sections 12.6 - 12.11 of the textbook
Resources

Topics: Review topics discussed in Chapters 9 - 12; Q&A

Lecture Notes
Assignment
  • Review quizzes (Quizzes 1 - 4)
  • Review review tests (Review Tests 1 - 2)
  • Review CodeLab exercises
  • Review weekly programming exsercises
  • Review Chapters 9, 10, 11, and 12 in the textbook
Reading
  • Review relevant sections in Chapters 9-12 in the textbook.
Resources

Topics: Midterm Examination (03:40 - 05:20PM, IA 130)

Topics: polymorphism and dynamic binding with exceptions; exceptions and text file I/O

Lecture Notes
Assignment
  • Complete in-class exercise C17a-1 in a group in class, and on your own to complete and submit it. (due before the class on 10/25)
  • Complete in-class exercise C17a-2 in a group in class, and on your own to complete and submit it. (due before the class on 10/25)
  • Project: a Personal Directory Application: Analysis, Design and Implementation (Analysis and Preliminary Design due: 10/30; Final Design and Implementation due: 11/08)
Reading
  • Section 12.10 of the textbook
Resources

Topics: Abstract class; abstract method

Lecture Notes
Assignment
  • Complete in-class exercise C18a-1 in a group in class, and on your own to complete and submit it. (due before the class on 11/01)
  • Complete in-class exercise C18a-2 in a group in class, and on your own to complete and submit it. (due before the class on 11/01)
  • Complete in-class exercise C18a-3 in a group in class, and on your own to complete and submit it. (due before the class on 11/01)
  • Continue to work the Project: a Personal Directory Application: Analysis, Design and Implementation (Analysis and Preliminary Design due: 10/30; Final Design and Implementation due: 11/08)
Reading
  • Sections 13.1 - 13.4 of the textbook
Resources

Topics: Interface; class design guidelines

Lecture Notes
Assignment
  • Continue to work the Project: a Personal Directory Application: Analysis, Design and Implementation (Analysis and Preliminary Design due: 10/30; Final Design and Implementation due: 11/08)
Reading
  • Sections 13.5 of the textbook
Resources

Topics: Interface; selected interfaces in Java API; class design guidelines

Lecture Notes
Assignment
  • Complete in-class exercise C20c-1 in a group in class, and on your own to complete and submit it. (due before the class on 11/08)
  • Complete in-class exercise C20c-2 in a group in class, and on your own to complete and submit it. (due before the class on 11/08)
  • Complete in-class exercise C20c-3 in a group in class, and on your own to complete and submit it. (due before the class on 11/08)
  • (Optional) Complete in-class exercise C20c-4 in a group in class, and on your own to complete and submit it. (due before the class on 11/08)
  • (Optional) Complete in-class exercise C20c-5 in a group in class, and on your own to complete and submit it. (due before the class on 11/08)
  • continue to work the project: a personal directory application: analysis, design and implementation (analysis and preliminary design due: 10/30; final design and implementation due: 11/08)
Reading
  • Sections 13.6 - 13.10 of the textbook
Resources

Topics: Recursion, including Mathematical recursive functions (e.g. divide, factorial, Fibonacci numbers)

Lecture Notes
Assignment
  • Complete in-class exercise C21b-1 in a group in class, and on your own to complete and submit it. (due before the class on 11/13)
  • Complete in-class exercise C21b-2 in a group in class, and on your own to complete and submit it. (due before the class on 11/13)
  • Continue to work the Project: a Personal Directory Application: Analysis, Design and Implementation (Analysis and Preliminary Design due: 10/30; Final Design and Implementation due: 11/08)
Reading
  • Sections 18.1 - 18.4 of the textbook
Resources

Topics: Recursion used for array processing, e.g., linear and binary search; recursive sorts. Time permitting: others examples including Tower of Hanoi and tail recursion.

Lecture Notes
Assignment
  • Complete in-class exercise C21b-2 in a group in class, and on your own to complete and submit it. (due before the class on 11/15)
  • Complete in-class exercise C22b-1 in a group in class, and on your own to complete and submit it. (due before the class on 11/15)
  • (Due) Project: a Personal Directory Application: Analysis, Design and Implementation (Analysis and Preliminary Design due: 10/30; Final Design and Implementation due: 11/08)
Reading
  • Sections 18.4 - 18.9
Resources

Topics: Generics (including the Comparable<> interface) ArrayList and stacks

Lecture Notes
Assignment
  • Complete in-class exercise C23c-1 in a group in class, and on your own to complete and submit it. (due before the class on 11/20)
  • (Optional) Complete in-class exercise C23c-2 in a group in class, and on your own to complete and submit it. (due before the class on 11/20)
Reading
  • Chapters 19 of the textbook
Resources

Topics: ArrayList, LinkedList, Iterator; Enhanced for loop; Generics (including the Comparable<> interface)

Lecture Notes
Assignment
  • Complete in-class exercise C24b-1 in a group in class, and on your own to complete and submit it. (due before the class on 11/29)
  • Complete in-class exercise C24b-2 in a group in class, and on your own to complete and submit it. (due before the class on 11/29)
Reading
  • Sections 20.1 - 20.7, and 20.9 of the textbook
Resources

Topics: Sorting and Searching

Lecture Notes
assignment
  • Continue to work on and complete in-class exercise C24b-1 in a group in class, and on your own to complete and submit it. (due before the class on 11/29)
  • Continue to work on and complete in-class exercise C24b-2 in a group in class, and on your own to complete and submit it. (due before the class on 11/29)
Reading
  • Sections 19.6 and 20.9 in the textbook
Resources

Topics: Stack, Queue, and PriorityQueue

Lecture Notes
Assignment
  • Complete in-class exercise c27b-1 in a group in class, and on your own to complete and submit it. (due before the class on 12/04)
  • (Optional) complete in-class exercise c27b-2 in a group in class, and on your own to complete and submit it. (due before the class on 12/04)
  • (Optional) complete in-class exercise c27b-3 in a group in class, and on your own to complete and submit it. (due before the class on 12/04)
  • Complete online quiz (to be released on blackboard)
  • Project: an (improved) personal directory application: analysis, design and implementation (analysis and preliminary design due: 11/29; final design and implementation due: 12/11) (to be released on blackboard)
Reading
  • Sections 19.6, 20.9, 20.10, and 20.11 in the textbook
Resources

Topics: Set (Hash and Tree), Map (Hash and Tree);

Lecture Notes
Assignment
  • Complete online quiz (released on blackboard)
  • Continue to work on project: an (improved) personal directory application: analysis, design and implementation (analysis and preliminary design due: 12/06; final design and implementation due: 12/11) (to be released on blackboard)
Reading
  • Chapter 21 of the textbook
Resources

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

Lecture Notes
Assignment
  • Review sample applications
  • Complete online quiz (released on blackboard)
  • Continue to work on project: an (improved) personal directory application: analysis, design and implementation (analysis and preliminary design due: 12/06; final design and implementation due: 12/11) (to be released on blackboard)
Reading
  • Sections 15.1 and 15.2 of the textbook
Resources

Topics: Handling Events (e.g. ActionEvent) with EventHandler<> classes; Inner Classes; Anonymous Inner Classes and Lambdas;

Lecture Notes
Assignment
  • Review sample applications
  • Complete online quiz (released on blackboard)
  • Continue to work on project: an (improved) personal directory application: analysis, design and implementation (analysis and preliminary design due: 12/06; final design and implementation due: 12/11) (to be released on blackboard)
Reading
  • Chapter 15 of the textbook
Resources

3:30 - 5:30pm, Tuesday, December 18 according to the College's the Final Examination Schedule