Skip to main content
University of Wisconsin–Madison

Welcome to CS300!

Getting Started Checklist

  1. zyBook Registration
  2. TopHat Registration
  3. Activate your Piazza Account
  4. Activate your CS Account
  5. Review Exam Times, and possibly Request Alternate(s)
  6. Review the Course Syllabus
  7. Install Eclipse and Java8

This course consists mainly of two parts: Part I: OOP Concepts, and Part II: Data Structures

In the first part of this course, we’ll be learning how to solve problems based on the OOP paradigm, how to create classes, instantiate and use objects, how to use inheritance and abstraction to better organize our code, as well as how to handle exceptions. We’ll be also learning fundamental concepts in OOP including encapsulation, inheritance, polymorphism, abstraction, and generics.

In the second part, we are going to study how to evaluate the efficiency of algorithms at the design level using asymptotic complexity analyses. We’ll also provide different implementations for the abstract data types (ADT) of the commonly used linear data structures (including their design, and analysis). This course also introduces recursion and provides the implementation details of the well-known sorting algorithms.

Note that all the programs studied in CS300 are implemented using the Java programming language.