General Information

Second core CS course for a CS Minor or Concentration. Intermediate programming in a high-level language and introduction to computer science. Java is the principal programming language.

Prerequisites

CS 1110 or CS 1112 or course on programming in a procedural language

Topics Covered

  • Object-oriented programming (classes, objects, subclasses, types)
  • Graphical user interfaces
  • Algorithm analysis (asymptotic complexity, big “O” notation)
  • Recursion
  • Testing
  • Program correctness (loop invariants)
  • Special relativity
  • Searching/sorting
  • Data structures (lists, trees, stacks, queues, heaps, search trees, hash tables, graphs)
  • Graph algorithms

Workload

A usual week consists of not too much work, usually just a quiz in the beginning of the week and textbook readings, but in the case of weeks where an assignment is released, it’s significantly more, as assignments usually take >7 hours [Spring 2023]

General Advice

  • It is easy to fall behind in the beginning of the semester and stop paying attention in lectures, as most of the material is review from CS 1110 and really basic, but things will start to ramp up so be prepared [Spring 2023]

Testimonials

Past Offerings

Semester Professor Median Grade Syllabus
Fall 2022 Curran Muhlberger, Andrew Myers B Course Page
Fall 2023 Curran Muhlberger N/A Course Page