1. Advanced Programming

CST 338: Software Design

Apply object-oriented techniques to software construction.

  • Apply object-oriented analysis and design to practical software construction.
  • Provide a graphical user interface of a software system to a user.

Final Project - Java Chess Game

Java Chess Game Specification

2. Specialized Programming

CST 336: Internet Programming

Apply programming skills to a specialized application.

  • Utilize professional level platforms and tools to produce software systems that meet specified user needs and constraints.
  • Combine several software skills and techniques to create an integrated software system.
  • Articulate industry trends in the particular domains.

Final Project - Online Bookstore

3. Planning, Analysis, and Production of Software Applications

CST 438: Software Engineering

Demonstrate the ability to analyze, plan, and produce a complete software application.

  • Articulate the software system development life cycle and its characteristics.
  • Apply best practices regarding project management.
  • Analyze needs and constraints of complex software system design.
  • Write a project proposal, a project report, and an operating manual.
  • Collaborate with team members to implement a large software system.
  • Understand and apply modern software production practice and tools such as component based programming, integrated development environment, version control and testing.

Final Project - Mileage Tracker Prototype