Course Project: The Programmer’s Journey
A Project-Based Introduction to Professional Programming
This course is designed as a hands-on simulation of the software development world. You will step into the role of a Computer Programmer, learning and applying the essential knowledge, skills, and abilities outlined in the industry-standard O*NET-SOC profile 15-1251.00.
1 Project Overview
Throughout this semester, you will build a Task Management Application from the ground up. This project is your training ground, where you’ll move from foundational computer skills to writing, testing, and documenting a complete Java application.
The project is broken down into a series of milestones, each designed to build upon the last. You will start by learning to navigate your computer like a professional, progress to using an Integrated Development Environment (IDE), write the core logic of the application, and finally, prepare your code for a simulated “release.”
1.0.1 Core Features You’ll Build
You will implement the core features of a task management application, focusing on clean, efficient, and well-documented code.
2 Learning Objectives
By completing this project, you’ll gain job-ready skills in both Java programming and the professional practices that surround it.
- Java Fundamentals: Mastering variables, data types, and flow control statements (loops, conditionals).
- Using Java Objects: Working with core library objects like
String,Array,List, andHashMapto manage data. - Implementing Designs: Translating provided class designs into functional Java code, rather than designing your own.
- Error Handling: Implementing robust exception management and input validation.
- Version Control: Using a standard Git workflow with branching and merging.
- Build Automation: Using Maven to manage project dependencies and build processes.
- Code Documentation: Creating clear Javadoc and README files.
- Testing: Writing unit tests with JUnit 5 to ensure your code works as expected.
- Command-Line Proficiency: Navigating the filesystem and running commands in a terminal.
3 Prerequisites
Ensure you have the necessary software installed to start the course.
3.1 Required Software
| Software | Version | Purpose |
|---|---|---|
| Java Development Kit (JDK) | 21 or higher | Core Java runtime and compiler |
| VS Code | Latest | Primary development environment |
| Git | Latest | Version control system |
| Web browser | Any modern browser | For accessing course materials |
If you’re not familiar with all the tools, Milestone 0 and 1 are dedicated to guiding you through setup and usage.
4 Our Methodology: Mentor-Guided Active Learning
This project may seem challenging, but our approach is designed for your success. You’ll learn by doing, with continuous support to ensure you spend more time applying concepts and less time fighting with configuration.
You’ll receive pre-configured starter projects via GitHub Classroom. This allows you to focus on coding and problem-solving, not complex setup.
4.0.1 How We’ll Work Together
- Continuous Mentorship: We’ll provide daily guidance, help you debug code, and connect concepts to real-world career skills.
- AI-Enhanced Development: You will learn to use AI coding assistants responsibly for code completion, documentation, and debugging.
5 Technology Stack
You will work with the same tools used by professional programmers every day.
| Technology | Purpose |
|---|---|
| Java Development Kit (JDK 21+) | The core programming language. |
| Maven | Build tool and dependency management. |
| VS Code | Integrated Development Environment (IDE). |
| Git & GitHub | Version control and collaboration. |
| JUnit 5 | The standard framework for testing your code. |
| Bash/PowerShell | Command-line interface for system interaction. |
6 Project Milestones
Each milestone represents a critical stage in a professional development workflow, taking you from basic setup to a finished product.
6.1 Milestone 0: Using a Terminal
- Focus: Gaining confidence with the command-line interface (CLI).
- Tasks: Learn to navigate directories, create and move files, and execute basic commands in your operating system’s terminal.
- Outcome: Foundational skills needed to work with developer tools.
6.2 Milestone 1: Using an IDE
- Focus: Setting up and mastering your professional development environment.
- Tasks: Install and configure VS Code, learn to use its integrated terminal and Git features, and manage a Java project with Maven.
- Outcome: A fully configured IDE and a smooth workflow for coding, testing, and version control.
6.3 Milestone 2: Writing Code
- Focus: Building the core logic of the Task Management application.
- Tasks:
- Implement the
Taskclass with all its properties. - Create a
TaskServiceto handle business logic (Create, Read, Update, Delete). - Use collections like
ArrayListandHashMapfor in-memory storage. - Write unit tests to validate your logic.
- Implement the
- Outcome: A functional, tested, and well-structured Java application.
6.4 Milestone 3: Shipping Code
- Focus: Finalizing the application and preparing it for others to use.
- Tasks:
- Refine and document your code with Javadoc.
- Ensure all tests are passing and the code is free of bugs.
- Create a comprehensive
README.mdfile. - Package the application into a distributable format.
- Outcome: A polished, documented, and “shippable” software project.
7 Timeline & Assessment
Your grade is based on the work you are required to complete. The project is structured to give you hands-on experience at every stage of the development lifecycle.
| Milestone | Focus Area |
|---|---|
| Milestone 0 | Command-Line Fundamentals |
| Milestone 1 | IDE & Professional Tooling Workflow |
| Milestone 2 | Core Java Programming & Unit Testing |
| Milestone 3 | Documentation, & Finalization |
7.1 Assessment Criteria
Your work will be assessed based on criteria that reflect professional standards.
7.1.1 Grade Breakdown
| Component | Weight |
|---|---|
| Functionality | 40% |
| Code Quality | 30% |
| Testing | 20% |
| Documentation | 10% |
7.1.2 Time Commitment
| Activity | Hours/Week |
|---|---|
| In-class time | 3 hours |
| Expected homework | 4-6 hours |
This project will challenge you, teach you, and prepare you for a successful career in software development. By the end, you’ll have built something you can proudly show to potential employers.
Let’s build something great together!