Computer Science 169 — Software Engineering (4 Units)

Course Overview

Summary

CS169 is about all the things that go behind software engineering and software development.

Prerequisites

  • CS61A/B/C

Topics Covered

  • Processes for software development (a.k.a. how to organize a team to work on a large-scale project)
  • Design patterns and paradigms of programming
  • Testing methodologies

Workload

Course Work

  • Four quizzes
  • Five homework assignments
  • Team project
  • No Midterm/Final
  • Mandatory Poster Session (during dead week)

Note: Course work typically varies semester to semester

Time Commitment

Varies significantly based on your project group.

Choosing the Course

When to take

You'll receive the most benefit if you take it earlier on so that you can apply the knowledge and experience from this class in other classes with large group projects (such as CS162). This is a good class to first learn about version control and testing, since other classes don't actually teach you these skills; they just expect you to pick it up yourself.

What next?

There are a few grad classes that expand on the testing and verification portion of the class, but they aren't offered very often.

Usefulness for Research or Internships

This class probably isn't sufficient in and of itself as internship prep, however the experience you get will definitely make you better at working in a team environment, which companies/professors look for.

Additional Comments/Tips