CSCI 1933 Spring 2026

Documents

Module 00

The goal of this module is to provide an overview of the course.

For this module we will focus first-and-foremost on getting the class started. We’ll be seeing the basic class design, learning what are the parts of the class, and how they will help us learn.

By the end of the week you should be able to:

  • Decide whether CSCI 1933 is a course for you (if you fit the audience)
  • Prepare for what we will do to learn, and why

Slides

Lecture Recording

Module 01

Introduction to Java, Java data, Java Program Structure

By the end of this module, you will be able to:

  • Write, compile, and execute simple Java programs, demonstrating understanding of basic Java syntax and the program development workflow
  • Identify and explain the essential components of a basic Java program structure, including the class declaration, main method signature, and statement syntax.
  • Recognize and correct common syntax errors in simple Java programs using compiler error messages as guidance.

Slides

Lecture Recording

Module 02

Java primitive vs. Object types, object instantiation and methods, classes

By the end of this module, you will be able to:

  • Distinguish between primitive and object types in Java by identifying their key characteristics, including how they store data, their default values, and how they are store in memory
  • Create and initialize objects using constructors, including the use of multiple constructor overloads and explain the role of the new keyword in object instantiation.
  • Compare value equality versus reference equality by appropriately using == for primitives and .equals() for objects, and explain why this distinction matters.
  • Identify and write the different types of methods including setters, helpers, and operators
  • Identify when to use private and public for attributes and methods

Slides

Attendance

Lecture Recording

Module 03

By the end of this module, you will be able to:

  • Differentiate between static and non-static attributes, identify the appropriate uses of the static keyword
  • Apply principles of inheritance (every class in Java inherits from Object class) by writing .equals() and .toString() methods (overriding)
  • Import and instantiate the Scanner class to enable user input functionality in Java programs, and use appropriate Scanner methods (nextInt(), nextDouble(), nextLine(), next(), etc.) to read different data types from the console.
  • Implement input validation techniques to ensure user-provided data meets program requirements before processing.

Slides

Video Recordings

Gradescope exercises