If you have taken a course elsewhere that you believe is equivalent to CS 169 and are requesting articulation or transfer credit, it must substantively cover all the following topics.  If it covers only a subset of them, you may be able to get partial credit (e.g. 2 out of 4 units of CS 169).
  • Software engineering project methodologies and lifecycles (waterfall, RUP, agile, etc.) and when to use each
  • Identifying customer requirements through use cases, user stories, or other requirements elicitation and documentation
  • Effecting a new design (or extending an existing design) to meet those requirements using modern OO design techniques
  • Estimating the effort required to do software engineering tasks, using some project planning process (can be a lightweight process such as planning poker)
  • Test case design for both unit/module-level and integration/system-level tests
  • writing automated test cases and managing them using continuous integration and related tools
  • Coordinating work among a team and making effective use of source/configuration management tools (eg Git) to do so
  • Deploy application to a customer and refine based on ongoing customer feedback
  • Understand, clean up, and enhance legacy code
  • Basic techniques of refactoring and code quality monitoring to keep code highly maintainable
CS 169 also includes a substantial team project, which makes it a 4-unit course. A course that covers all the above but lacks an open-ended team project (i.e. one in which the team is primarily responsible for the app's design, as opposed to a "canned" project in which everyone does the same project) can still count for 3 out of 4 units of CS 169.