CISC 3115
Spring 2023, Section EWQ6

Instructor: Moshe Lach
lach@sci.brooklyn.cuny.edu

Click here for a PDF of the full syllabus.
Please also see the Info and Schedule pages.

Basic Information

  • Class meetings: Wednesdays 6:30-10:00 p.m. in 238 New Ingersoll
  • Office hours:
    • Wednesdays 5:00-6:00 p.m. in 128 New Ingersoll
    • Thursdays 3:40-4:40 p.m. in 128 New Ingersoll
    • Other times by appointment, either on campus or on Zoom.
  • Tutoring hours at the Learning Center: TBA
  • There is a class Discord server, which you are encouraged to join. A link has been emailed to you.
    • You do not have to use your real name.
    • Discord DMs are welcome.
  • All course material, except for homework, will be posted at the following link, which you may want to bookmark: bit.ly/cisc3115sp23

Course Topics

  • Brief prerequisite review: loops, methods, menu-driven programs, parallel arrays, array algorithms, file I/O
  • Command line: basic Unix commands, command line arguments
  • Objects and references: aliases, parameter passing, wrapper classes, auto-boxing and auto-unboxing, String, StringBuilder, BigInteger, BigDecimal
  • Classes: instance variables and methods, constructors, encapsulation, static variables and methods, aggregation, UML diagrams, copying objects, enums
  • Exam 1
  • Inheritance: superclasses and subclasses, overriding methods, constructor chaining, polymorphism, dynamic binding, the Object class and its toString and equals meth- ods, abstract classes
  • ArraysLists
  • Exceptions: try, catch, finally, throwing exceptions, declaring exceptions, exception types (checked vs. unchecked), polymorphism and dynamic binding with exceptions, stack trace, defining custom exception types, try-with-resources
  • Interfaces: Comparable, Comparator, lambda expressions
  • Exam 2
  • Collections: Collection, Iterable, Iterator, List, Set, Queue, Deque, Map
  • Recursion: tracing recursive code, thinking recursively, mathematical functions, recur- sion involving Strings, recursion involving arrays, recursive helper methods
  • If there’s extra time: JavaFX: basic components, event handling, CSS, MVC
  • Final exam

Page cover image credit: Yuri Samoilov via Flickr (cc)