CSCI 306: Software Engineering

Professor: Mark Baldwin
Telephone: 303-384-2486
Room: BB 312

Suggested Textbooks:

The following books are recommended but not required.

Class Description

This course is intended to make the student a better software programmer by introducing the processes and considerations of Software Engineering. The student will learn to plan and execute iterative programming projects in groups, critique (and improve) existing code, and learn the basics of widely used software engineering processes and techniques (including Agile Development and UML). Assignments will not be restricted to coding, and should encourage students to think as software engineers, rather than individual programmers.

Why Java?

3 hours lecture; 3 semester hours.


CSCI262 with a grade of C- or higher.

Class Topics

The following are some of the primary topics:

Software Development Practices: Software Engineering Process Tools:

Course Format

The class is of a flipped format. This means that the student is required to do preparatory work, including video lectures along with other work before class. The class itself will generally be of the form of a short introductory discussion/lecture and then in-class exercises and coding assignments. There will be one mid-term exam and one final exam.

Software development is generally a group effort, and this class will encourage discussion and collaboration among all class attendees. The schedule will be flexible, and additional topics will be introduced at various points in the semester.