Description

The Software Engineering concentration includes three courses in Software Engineering. CS 214 Software Development introduces practices used by individuals to develop software. CS 314 Software Engineering introduces students to team-based development of large, complex software systems. CS 414 Object-oriented Design adds to the requirements and design practices while CS 415 Software Testing adds testing practices.

Major topics in CS 314 include Agile software development, clean code, configuration management, continuous integration and deployment, project management, requirements management, test driven development, peer reviews, and teamwork. Students learn integrated tools to support a Scrum-based development process while completing a semester-long web development project. This course prepares students to work in teams in upper level courses, industry, research, or the open-source community.

CS 314 satisfies the AUCC 4A requirements for students majoring in the Computer Science. You will learn software engineering processes and tools along with how to work in a team, much as you would in your first job. Your instructor met the customer, gathered the requirements, chose the architecture, created the design, and completed a initial implementation for you. You will add features to the implementation to complete a mobile web development project for the customer.

Fall 2025 Instructors

Instructors

Dave Matthews

Fabio de Abreu Santos

Office

CSB 244

CSB 458

Email

davematt@colostate.edu

fabio.deabreusantos@colostate.edu

Office Hours

Available 2-5 PM Tuesday & Thursday and 7-9 PM weekday evenings on Teams by appointment, send email with proposed times to arrange.

MWF 10-noon on campus. Messages on Teams will be answered on demand. Email only for administrative purposes

Fall 2025 Sections

Section

Schedule

Location

Instructor

001

MWF 1:00 PM – 1:50 PM

Nutrien 140

Dave Matthews

002

MWF 9:00 AM – 9:50 AM

NATRS 140

Fabio de Abreu Santos

801

echo360 (live/recorded)

echo360

Both

Overrides are not given for prerequisites, major, or schedule conflicts for section 001 or 002. You should consider the 801 online section for major or schedule conflicts. Bess Moodie, Computer Science Academic Success Coordinator, handles overrides for this course. Please contact Bess if you have any questions.

Sections 001 and 002 students are required to attend the classroom lectures so they may participate in team activities during the lectures. Students should notify the instructor if they are unable to attend. Lack of attendance can result in grade penalties.

Section 801 students may watch the lectures live and join their campus teammates in class activities if they are available. Otherwise, they must watch the recorded lectures and followup with their teammates outside of class.

Teaching Assistants

Teaching Assistants are only available during their helpdesk hours via the Helpdesk channel on Teams. Never contact Teaching Assistants directly for help!

Teaching Assistant

Role

Initials

Atu Ambala

GTA

AA

Damyenn Cardenas

GTA

DC

Kazim Abrar Mahi

GTA

KAM

Rye Easton

GTA

RE

Ilse Amaro Campa

UTA

IAC

Kevin Enns

UTA

KE

Morgan Rieb

UTA

MR

Leo Rodolico

UTA

LR

Trevor Venable

UTA

TV

HelpDesk

Mon

Tue

Wed

Thu

Fri

Sat

Sun

10

LR

TV

LR

LR

11

LR

TV

LR

LR

12

MR

TV

MR

MR

DC

1

KE

DC

2

?

?

KE

?

3

DC

MR

KE

KE

RE

4

DC

MR

KE

RE

5

DC

IAC

TV

6

AA TV

IAC RE

IAC KAM

7

AA TV

IAC KAM

IAC RE

8

AA

KAM

RE

TA helpdesk hours marked in bold are in the CSB 120 lab and may not be online. TA office hours not marked bold are via the helpdesk channel in the course Teams. You will need to complete a form to request help. TAs do not answer grading questions!

There are no TA helpdesk hours on Thursdays. We do not answer project related questions on due dates in this course so don’t procrastinate! Feel free to ask questions of your teammates or classmates on the Overflow channel on Teams instead. The instructor’s office hours on Thursdays are not for helpdesk questions!

Recent Student Comments

At the end of each semester, we encourage students to write a note about their experience with Software Engineering and CS 314 to future students.

“During my internship at Amazon Web Services, I realized just how much CS 314 prepared me for the realities of Software Engineering in industry. While other courses gave me algorithms and theory, CS 314 drilled me in the actual technical habits that I used every day at AWS. Every task at Amazon was backed by extensive documentation, and every line of code went under intense reviews. The habits I built in CS 314 of writing clean code, using GitHub for version control, practicing incremental development and deployment, and using an already existing codebase were able to map extremely similarly to the process my team relied on. Because of this, the transition from class to internship felt natural; CS 314 was the closet simulation of industry I could have asked for.

More important than the technical foundations, CS 314 taught me how to thrive in a professional, team-based environment. I learned how to communicate clearly, break down requirements with stakeholders, and deliver features in a reliable way. At AWS, where managers and mentors expect you to own your work with very little handholding, those skills proved invaluable. Practices like strong documentation, peer reviews, Agile/Scrum meetings, and a process-first mindset weren’t just typical academic nonsense, but essential in the workplace.

Beyond the skills, what makes CS 314 stand out is the instructor. He truly cares about his students and pushes them to hold themselves to a professional standard that mirrors industry expectations. His teaching instills not only technical competence but also discipline, teamwork, and resilience. My advice to everyone reading this: work hard, try your best, apply to more jobs than you think you want, and seize the opportunities that present themselves.”

“I just wanted to say how much I’ve really appreciated and enjoyed your class, and how glad I am to have had the opportunity of being your student. If anybody were to ask me about what stood out the most in my time at CSU as an online student, the answer is easily cs314. I’ve always had issues with the “traditional” way of teaching/learning, like to the point where I’d learn almost nothing and end up mostly teaching myself. I feel like those methods are especially outdated when it comes to Computer Science classes. So not only have I learned so much from this class, but your method of teaching has helped me retain pretty much everything that I’ve learned. Thank you so much for a great class and for being a wonderful teacher.”

“I have been interning as a Software Engineering Intern at Rocket Lawyer this summer, and I took CS 314 last semester. I just want to thank you and let you know how much CS 314 has helped me during my internship. I’ve been able to apply many of the things from your class, and they have been very useful. I’ve also been extended for a co-op this fall semester. So yeah, it’s definitely one of the best classes I took. Thank you!”

“In the beginning of this semester, I got an interview with this PM internship for a company in my hometown. During the interview, I think I talked about the first two weeks of this course for a whole 45 minutes, and I got the one PM spot they had! The next week I had another interview to be a technical analyst intern in my hometown and talked about this class once again in the interview, this time more about working in teams and translating requirements into tasks rather than Scrum ceremonies, and I got it as well! Now that’ve I’ve begun my PM internship and I’m working in cross-functional teams in the real world, I’m so grateful to have experienced a lot of the learning curve that comes with software development in this class so I can lead my team with confidence! This has been, by far, the most beneficial and applicable class I’ve taken at CSU, so thank you Dave!☺️ We all really appreciate you!”

“I had a job interview last month and I brought up some of the stuff that we are doing in 314, such as dealing with a team, Github etiquette and working on a project with this kind of scope. And they ate it up! Although I hadn’t done as much coding as some of my teammates, they still thought what this class was teaching was some of the most valuable stuff they’ve heard regarding what working in industry is really like. And I got the job! So, thank you again for the support and teaching us what it’s really about!”

“I just wanted to sincerely thank you for a wonderful semester. I’ve learned a great deal in this class, and one of the concepts that really stood out to me was the use of pull requests. At the start of the course, I didn’t fully understand their value. But by the end, it became clear how essential they are for maintaining code quality and accountability. Pull requests ensure that every piece of code is reviewed and tested before being merged into the main branch, preventing potential issues. It’s such a practical approach that even the startup I work for is now planning to require pull requests for all engineers, to make sure code is reviewed before being pushed to GitHub. Wishing you a restful and enjoyable break, and thank you again for everything!”

“Currently 8 weeks into my internship at Amazon. CS 314 was absolutely the only class that prepared me for this in any capacity. Thank you for all your hard work!”

“From the very beginning of my interview, basic problem-solving questions to even detailed technical questions seemed to all come back to an example I had with the 314 course. Everything from using a ticket system like Zen-hub, to communicating through an app like slack, and activities such as scrums and code inspections all seemed to be examples they loved to hear about. Nearly every aspect of 314 seems to be an active part of the real-world industry. I used my experiences from 314 to practically talk through my entire interview, and it seemed more like a review of 314 rather than them interviewing me for a job. Nonetheless, they loved to hear about everything I’ve learned from 314 and ended up hiring me on the spot. Long story short, 314 has taught me more than any other course at CSU. I believe it’s the sole reason I landed an internship.”

“I wanted to share my experience with this class/company. This course has given me the practical knowledge to work collaboratively with other developers. It has gone hand in hand with my current Software Development Internship and has allowed me to bring technical questions from lectures to my coworkers, and vice versa. Each week learning a new development topic/approach; this application of information has not ceased to surprise managers and senior developers when implemented in my professional projects.”

“While I studied abroad in South Korea last semester, two of my computer science professors ended up asking me where I was from and what school I went to. When they found out I went to CSU they ended up asking me if I knew Dave Matthews and I told them I took your class and even planned on taking your next four hundred level class when I got back to the states. They both went on to tell me that they’ve seen some of your lectures and/or conferences and loved your work. One of my professors even said he was planning on changing their software engineering course to be more similar to yours because he loved the way it was formatted.”

“Every company I’ve interviewed with says I owe you a thank you for CS 314 because I learned tons of valuable skills in that class. So thank you.”