CSCI-102 Programming II

This course will further develop and expand upon the topics introduced in CSCI‐101. Topics will include object‐oriented concepts such as inheritance, polymorphism and exception handling. Other topics include file I ⁄ O, multithreading and graphical user interfaces. The object‐oriented programing language Java will be used to illustrate these topics. Problem solving, algorithm development, program design, and testing are emphasized. The course contains 3 credit hours of lecture and 2 hours of lab per week.
Prerequisites: CSCI-101


Coding Rules
  1. Indent consistently
  2. Compile often
  3. Save often
  4. Write code for the maintainer

Course Content
Jan 5
No lab

Jan 6: Vehicle.java, Driver model classes, fields, constructors, getters and setters, overriding toString and equals

Jan 9
Programming I Assessment Quiz

Jan 9: SuperClass.java, SubClass.java, InheritanceTest.java ✧ Vehicle.java, VehicleTest.java
Inheritance, extends, overriding methods, dynamic dispatch

Jan 11: A.java, B.java, AB_Test.java ✧ Dynamic dispatch C.java, D.java, CD_Test.java ✧ Abstract classes, dynamic dispatch G.java, H.java, GH_Test.java ✧ An abstract class extending an abstract class Shape.java, Square.java, ShapeTest.java Abstract class exercise

Jan 13: A.java, ATest.java ✧ Calling static method B.java ✧ Cannot override static method C.java, MyInterface.java, MyOtherInterface.java, ATest.java interfaces, default methods, static methods, instance variables

Jan 16

Jan 18: Interface.java, A.java, ✧ interface, instances of interfaces, dynamic displatch LetterGrade.java, LGTest.java ✧ enum classes CardSuit.java, CSTest.java, enum classes, constuctors, fields, methods

Jan 20: Planet.java, PDriver.java ✧ enum classes, constructors, fields, methods LebronJames.java, LJDriver.java ✧ Uninstantiable class - cannot create instances of class StatueOfLiberty.java, StatueDriver.java, Class with exactly one instance

Jan 23

Jan 23: ArrayListTest.java ✧ ArrayList class, autoboxing, unboxing, RuntimeExceptions IllFormedPlayerException.java, Player.java, ExceptionTest.java Custom exception, Exception class, Throwable class, try-catch-finally

Jan 25: FileIO.java, grades.csv, grades.bkup Scanner, File, PrintWriter, useDelimiter(), ArrayList

Jan 27: Vehicle.java, VehicleInterface.java, Car.java ✧ abstract class, interface, inheritance Day.java ✧ enumerated class Driver ArrayList, creating instances, enum valueOf() and values()

Notes: Exceptions

Jan 30
Lab3a ✧ Lab3b

Jan 30: Container.java, Foo.java, Map.java, Stack.java, Driver Generic (aka parameterized) types, Stack data structure

Feb 1: Answered student questions

Feb 3: Continuation of Stack.java

Feb 6
Lab4a ✧ Lab4b

Feb 6: Exam 1

Feb 8: Tiple.java, Stack.java, Driver implementing Iterable and Iterator interfaces

Feb 10: Class is cancelled

Feb 13
Lab5a ✧ Lab5b ✧ Lab5c

Feb 13: Matrix.java, matrix.txt, Driver MatrixIterator, DiagonalIterator

Feb 15: Iterator Quiz Iterator Quiz

Feb 17: Matrix.java, Driver Zig-zag Iterator

Feb 20
Lab6a ✧ Lab6b ✧ Lab6c ✧ Lab6d

Feb 20: Circle.java, Driver Comparable interface, Arrays.sort

Feb 22: Driver, Vehicle.java compareTo recommended properties, comparing char, Character, String, Vehicle

Feb 25: Comparable Quiz Comparable

Mar 6
No labs

Mar 6: Foo.java, Driver Overriding equals and hashCode

Mar 8: Exam II

Mar 10: Foo.java, Driver Overriding equals and hashCode

Mar 13
Lab7a ✧ Lab7b ✧ Lab7c ✧ Lab7d ✧ Lab7e

Mar 13: Foo.java Overriding equals and hashCode

Mar 15: Foo.java, Driver Sorting elms in HashMap & var args


Mar 20
Lab8a ✧ Lab8b ✧ Lab8c ✧ Lab8d ✧ Lab8e

Mar 20: Quiz

Mar 22: Streams Sorting HashMap Map.Entry objects

Mar 24: More Streams Java Streams

Notes: Streams

Mar 27

Mar 27: forEach, filter, sorted

Mar 29: Lab work day


Notes:

Apr 3
No labs

Apr 3: Exam prep

Apr 5: Exam 3

Apr 7: Easter break

Apr 10
Lab10a ✧ Lab10b ✧ Lab10c ✧ Lab10d ✧ Lab10e

Apr 10: Easter break

Apr 12: Pair.java, Exam3.java Exam 3


Apr 17
No labs