HCW PRG1 Course Assistant
VS Code extension for the HCW PRG1 course. It supports Classroom50 onboarding and provides an invigilation-oriented exam mode for supervised assessments.
Requirements
Required software
- Visual Studio Code 1.110.0 or newer. This is the minimum version declared by the extension.
- JDK 25. A complete JDK is required, not only a Java Runtime Environment. The generated Java and JavaFX projects request a Java 25 Gradle toolchain.
- Git. The
git executable must be available on PATH, and VS Code's built-in Git extension must be enabled. Git is required for Classroom50 repository cloning and repository-based autograding links.
- Extension Pack for Java. Installing
vscjava.vscode-java-pack is recommended for Java language support, debugging, testing, and project integration in VS Code. It is included when installing the HCW PRG1 extension pack.
Verify the command-line tools before using the extension:
java -version
javac -version
git --version
Both Java commands should report version 25. The setup check currently verifies that java can be executed; the generated Gradle build ultimately verifies that a suitable Java 25 toolchain is available.
Gradle
A system-wide Gradle installation is not required. Newly generated projects include the Gradle Wrapper configured for Gradle 9.6.1, which supports running on Java 25:
.\gradlew.bat --version
On Linux or macOS, use:
./gradlew --version
Existing Classroom50 repositories use the wrapper version committed to that repository, which can differ from 9.6.1. The extension checks and runs the repository's own wrapper rather than a globally installed Gradle version.
Network access
Internet access is needed for:
- Opening and accepting Classroom50 assignments
- Cloning and accessing repositories on GitHub
- Downloading the Gradle distribution on the first wrapper execution
- Downloading JUnit and JavaFX dependencies from the Gradle Plugin Portal and Maven Central
- Opening GitHub Releases with autograding results
After the required Gradle distribution and dependencies have been cached, normal Gradle work may be possible offline. Exam mode is the exception: it intentionally checks that internet access is unavailable during a supervised assessment.
Supported project layout
The workspace setup check expects the opened folder to be the Gradle project root. It should contain at least one Gradle marker such as:
build.gradle
settings.gradle
gradlew
gradlew.bat
gradle/wrapper/
Do not open only src, a package folder, or an individual Java file as the workspace. Empty and non-Gradle folders are reported as not being Gradle-based Java projects.
Features
The extension adds a PRG1 Assistant icon to the Activity Bar with a Course Actions view.
Available actions:
Create Java Project
Clone Classroom50 Repo
Check Workspace Setup
Open Autograding Page
Java and JavaFX project creation
Command: PRG1: Create Java Project
Creates a small Gradle project through a guided wizard. Choose a plain Java application or a JavaFX application, then enter the project name. Generated sources use the course package at.ac.hcw. If the currently opened folder is empty, it is initialized directly; otherwise, the wizard asks for a parent folder, creates a new project folder, and automatically opens it in a new VS Code window. Generated projects include:
- Gradle 9 wrapper scripts, so a system-wide Gradle installation is not required
- Java 25 toolchain configuration
src/main/java and src/test/java source sets
- Main and test resource folders
- A runnable starter application
- A JUnit 5 starter test
- Standard input forwarding for console applications
- JavaFX 25 controls, a starter window, and a separate launcher class for JavaFX projects; JavaFX is downloaded through Gradle and does not need to be installed separately
Classroom50 onboarding
Command: PRG1: Clone Classroom50 Repository
What it does:
- Accepts an assignment link on
https://classroom50.org/
- Also accepts a direct GitHub repository URL
- Checks whether
git is installed and available in VS Code
- Opens Classroom50 assignment links in the browser so the student can accept the assignment
- Prompts for the accepted repository URL
- Clones the repository into a selected target folder
- Checks the cloned workspace for Java and a Gradle wrapper
- Offers to open the cloned project in VS Code
Workspace setup check
Command: PRG1: Check Current Workspace Setup
Checks:
- Git availability
- Java availability
- Gradle wrapper presence
- Gradle wrapper execution
Autograding shortcut
Command: PRG1: Open Autograding Results
This derives the assignment repository from its Git origin remote and opens its GitHub Releases page, where Classroom50 publishes the detailed autograding points. For example, an origin ending in ...-campusstudent.git opens https://github.com/...-campusstudent/releases; no separate GitHub username is needed.
Exam mode
Exam functionality is available through:
PRG1: Start Exam Mode
PRG1: Stop Exam Mode
PRG1: Open Exam Mode Dashboard
The extension also contributes an Exam Mode sidebar view inside PRG1 Assistant, but it is hidden by default and can be enabled from the view container menu when needed.