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 http://www.cs.colostate.edu/~cs314/

This course can be applied toward:


CS 253 (Software Development with C++) with a grade of C (2.0 or better) and its prerequisites CS 163 (CS1 - No Prior Programming Experience) and CS 164 (CS1 - Prior Programming Experience) and CS 165 (CS2 - Data Structures). Students must be proficient in Java programming, algorithms, data structures, problem-solving and object-oriented programming to complete this course.

Textbooks and Materials

Textbooks and materials can be purchased at the CSU Bookstore unless otherwise indicated.


  • Clean Code: A Handbook of Agile Software Craftsmanship
    Miller, Robert C.

The calendar and resource pages on the course website provide additional reading materials.


- Footer - Landing