CITC 1310: Programming I
Professional Software Development with Java

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.