At-a-Glance

Format: Hybrid workshop series, with an emphasis on in-person participation in the CS Lab

Number of Workshops: Approximately four

Materials Development: Prof. Fulakeza

Workshop Facilitator: Yasir Younus

Audience: Computer science students who have completed Data Structures or are at a similar level

Project Overview

Java Resource Management & Unit Testing is designed for students who want to strengthen their Java programming skills in two important areas: resource management and unit testing.

The first part of the project focuses on resource management. Students will learn how to write Java programs that handle unexpected situations more gracefully, such as bad user input, missing files, file-reading issues, and problems that may occur when working with files, streams, and scanners. The project will begin with basic defensive programming practices and build toward Java’s exception handling system, including how to recognize, handle, and respond to errors in a structured way.

The second part of the project focuses on unit testing. Students will learn how to write automated tests that check whether their code works correctly using JUnit. They will practice thinking about test cases, expected results, and how testing can help catch errors earlier in the development process.

Target Audience

This project is intended for computer science students who have completed Data Structures or are at a similar level in the major. Students should already feel comfortable writing Java code and should have prior experience with object-oriented programming concepts.

Students should also have some background with exception handling, since the project will build on those ideas and apply them to files, streams, scanners, resource management, and unit testing. This project is best suited for students who are ready to move beyond basic Java syntax and focus on writing more reliable, testable, and maintainable code.

Learning Format

This project will use a workshop-style format with examples and practice problems. Students will review key Java concepts related to resource management, exception handling, and unit testing, then apply those concepts through guided examples and hands-on coding practice.