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.javaVehicle.java, VehicleTest.java
Inheritance, extends, overriding methods, dynamic dispatch

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

Jan 13: A.java, ATest.javaCalling static method B.javaCannot 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.javaenum classes CardSuit.java, CSTest.java, enum classes, constuctors, fields, methods

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

Jan 23

Jan 23: ArrayListTest.javaArrayList 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.javaabstract class, interface, inheritance Day.javaenumerated class Driver ArrayList, creating instances, enum valueOf() and values()

Notes: Exceptions

Jan 30
Lab3aLab3b

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
Lab4aLab4b

Feb 6: Exam 1

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

Feb 10: Class is cancelled

Feb 13
Lab5aLab5bLab5c

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
Lab6aLab6bLab6cLab6d

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
Lab7aLab7bLab7cLab7dLab7e

Mar 13: Foo.java Overriding equals and hashCode

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


Mar 20
Lab8aLab8bLab8cLab8dLab8e

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
Lab10aLab10bLab10cLab10dLab10e

Apr 10: Easter break

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


Apr 17
No labs