University of South Carolina CSCE 145
Professor Shepherd · University of South Carolina · 19 lectures with notes
Students in this class: ask your lecturer for the class code, and these lectures will already be in your library when you sign up.
CSCE145 F2026 00 Introduction
Learn how Java source becomes executable bytecode, then build a small program that prints messages and adds user-entered integers.
CSCE145 F2026 01 Basic Computing Part 01
Learn Java’s basic data and computation tools, then apply them to convert feet into inches.
CSCE145 F2026 01 Basic Computation Part 02
Use Java Strings, Scanner, and wrapper parsing methods to extract typed fields from input.
CSCE145 F2026 01Branching Statements Part 02
Java branching depends on choosing nested if, else-if, and independent if statements to match the logic of each decision.
CSCE145 F2026 01 Branching Statements Part 01
Build Java decisions with if/else and Boolean logic, then apply them in a randomized console math challenge.
CSCE145 F2026 03 Loops Part 01
Compare Java `while` and `do-while` loops through guessing-game and factorial examples, then learn to avoid infinite loops.
CSCE145 F2026 03 Loops Part 02
Learn Java for-loop structure, nested loops, and loop-control techniques including break, continue, and sentinels.
CSCE145 F2026 04 Arrays Part 01
Java arrays use fixed-size, zero-based indexing to store and process same-type values efficiently.
CSCE145 F2026 04 Arrays Part 02
Java array searching, selection sort, and bubble sort demonstrated with practical code examples.
CSCE145 F2026 04 Arrays Part 03
Java’s arrays of arrays support nested traversal, a 10×10 grid game, and rows with different lengths.
CSCE145 F2026 05 Methods
Java methods turn program functionality into reusable, parameterized actions and make a unit converter easier to organize and debug.
CSCE145 F2026 06 Classes and Objects Part 01
Java classes encapsulate data and behavior, while constructors create objects and references determine how instances are compared and shared.
CSCE145 F2026 06 Classes and Objects Part 02
Build a Java `Pet` class with encapsulated fields, a `PetType` enum, and overloaded compliment methods.
CSCE145 F2026 06 Classes and Objects Part 03
Static Java methods support shared class-level behavior, including Pet factory and cloning methods that create distinct objects.
CSCE145 F2026 06 Classes and Objects Part 04
Build a Java taco tracker using a Taco class, an encapsulated TacoManager, and a fixed-size array with a first-null insertion rule.
CSCE145 F2026 06 Classes and Objects Part 05
Build a Java taco manager that adds, removes, sorts, and prints taco objects stored in a reference array.
CSCE145 F2026 07 Inheritance and Polymorphism Part 01
A Java Person–Student–Undergraduate hierarchy demonstrates inheritance, method overriding, and polymorphic use of a shared superclass array.
CSCE145 F2026 07 Inheritance and Polymorphism Part 02
Java interfaces and dynamic dispatch let one `Shape` type support many extensible drawing implementations.
CSCE145 F2026 08 Exceptions
Create, throw, and catch Java exceptions to report calculator errors while keeping the program running.