Main Navigation
Apply Now Request Info


CS 314 - Software Engineering

  • 3 credits
View available sections

CS 314 Software Engineering introduces students to team-based development of large, complex software systems. Topics include clean code, configuration management, continuous integration, testing, requirements, project management and teamwork.

Students learn integrated tools to support a Scrum-based development process while completing a semester-long web development project to prepare them for work in industry, research, or open-source teams. The tools used include Piazza, Slack, IntelliJ IDEA, GitHub, Maven, Webpack, Zenhub, Travis CI, and Code Climate.

The project introduces students to technologies covered in more detail in other courses: event-driven programming, user experience, networking, databases, concurrency, graphics, and artificial intelligence. The technology tools used include: Linux, Java, JavaScript, React, Bootstrap, MariaDB, Java Spark, Java Concurrency, SLF4J, JSON, SVG, and KML.

CSU Online students will join the campus teams as remote team members using the same tools and processes.

For more information see the course website at


CS 214 (Software Development with a C or better) or CS 253 (Software Development with C++ with a C or better.)

Textbooks and Materials

Please check the CSU Bookstore for textbook information.  Textbook listings are available at the CSU Bookstore about 3 weeks prior to the start of the term.