CITC 1310: Programming I
  • Home
  • Documents
  • Learning
  • Motivation
  • Career
  • About
  • GitHub
  • GitHub Classroom
  • Google Search
  • Google Scholar
  • Google Advanced Search
  • Google Gemini
  • Fedora Workstation
  • Ubuntu Desktop
  • Windows Subsytem for Linux
  1. CITC 1310: Programming I
  • Introduction
  • Modules
    • Getting Started
    • Setting up the Environment
      • Using a Terminal
      • Getting Started with Virtual Machines
    • Java Development
      • Apache Maven
      • Visual Studio Code
      • Compiling Java source code
    • Java Deployment
      • Deploying Java Applications
  • Course Project
    • Course Project: The Programmer’s Journey
    • Milestone 0 - Using a Terminal
      • Milestone 0: Mastering the Command Line
      • Exercise 0.0: Opening a Terminal
      • Exercise 0.1: Where Am I and What’s Here?
      • Exercise 0.2: Navigating Your File System
      • Exercise 0.3: Creating Files and Directories
      • Exercise 0.4: Moving and Renaming
      • Exercise 0.5: Viewing and Removing
      • Exercise 0.6: Combining Commands
      • project/milestone0/Exercise_0.7.qmd
      • Milestone 0 Review: Mastering the Command Line
    • Milestone 1 - Using an IDE
      • Milestone 1: Toolchain and Environment Setup
      • Exercise 1.0: Clone the Repository
      • Exercise 1.1: Fixing the Maven Build Warning
      • Exercise 1.2: Customizing the Hello, World! Application
      • Exercise 1.3: Generating Javadoc Documentation
      • Exercise 1.4: Linking Javadoc Documentation in Github
      • Exercise 1.5: Refactoring in VS Code
      • Exercise 1.6: Stage and commit changes with Git
      • Exercise 1.7: Understanding Git Pull and Push
      • Milestone 1 Review: Toolchain and Environment Setup
    • Milestone 2 - Writing Code
      • Milestone 2: Algorithmic Thinking & Software Design
      • Exercise 2.0: Introduction to the Debugger
      • Exercise 2.1: Live Debugging with Breakpoints
      • Exercise 2.2: Error Handling and Debugging
      • Exercise 2.3: Implementing UML Designs
      • Exercise 2.4: Implementing Core Logic with Mock Data
      • Exercise 2.5: Improving Performance with HashMap
      • Exercise 2.7: Handling Multiple Built-in Exceptions
      • Exercise 2.8: Creating Custom Exceptions
      • Milestone 2 Review: Building a Functional Application
    • Milestone 3 - Shipping Code
      • Milestone 3: Quality, Documentation, and Delivery
      • Exercise 3.1: Documenting Code with Javadoc
      • Exercise 3.2: Generating Documentation and Final Submission
      • Milestone 3 Review: Quality, Documentation, and Delivery
  • Puzzles
  • Glossary

On this Page

  • Welcome to Programming I
  • Course Learning Outcomes
  • Professional Software Development Practices

CITC 1310: Programming I

Professional Software Development with Java

Author

Chuck Nelson

Published

August 25, 2025

Java Programming Logo

Welcome to Programming I

This course provides a comprehensive introduction to programming fundamentals using the Java language. Beyond just learning syntax, we will focus on professional software development practices to prepare you for a future in the tech industry. Throughout the semester, you’ll work in an environment that emulates a real-world workplace, using industry-standard tools for version control, building, and deployment.

Course Learning Outcomes

Upon successful completion of this course, you will be able to:

  • Develop an algorithmic solution to solve a problem using sequence, selection, and iteration.

  • Demonstrate the skills necessary to correctly compile, debug, and test programs.

  • Demonstrate knowledge of how to create and use data types and variables.

  • Develop modular, algorithmic solutions for basic computing problems.

  • Demonstrate knowledge of how to utilize user-defined methods.

  • Design applications and/or applets that throw and catch exceptions.

  • Design applications that use file I/O and/or database connectivity.

Professional Software Development Practices

This course is structured to expose you to the full software development lifecycle. We will use the following tools and practices:

  • Version Control: We will use Git and GitHub for all assignments. This will allow you to track changes, collaborate with others, and manage your code effectively.

  • Build System: Maven will be used to manage project dependencies, compile code, and package your applications.

  • Continuous Integration/Continuous Deployment (CI/CD): We will leverage GitHub Workflows to automate the build, test, and deployment of your code every time you make a change.

  • Documentation: You will write professional-level documentation for your code using Javadoc.

  • Testing: We will use a testing framework to write automated tests for your code, ensuring its correctness and reliability.

Back to top

Copyright 2025, Chuck Nelson