CS169: Software Engineering
CS 169: Software Engineering (Spring 2015, UC Berkeley). Instructor: Professor Armando Fox. This course discusses ideas and techniques for designing, developing, and modifying large software systems.
Function-oriented and object-oriented modular design techniques, designing for re-use and maintainability. Specification and documentation. Verification and validation. Cost and quality metrics and estimation.
Project team organization and management. Students will work in teams on a substantial programming project.
Lecture 01 - Introduction, SaaS & SOA, Cloud Computing, Legacy Code & SW Quality |
Lecture 02 - Productivity, Agile, Pair Programming, Ruby Intro |
Lecture 03 - Metaprogramming, Blocks, Iterators, Mixins & Duck typing |
Lecture 04 - Client-Server, HTTP, HTML & CSS, 3-tier Architecture |
Lecture 05 - More SaaS, Model-View-Controller, User Stories |
Lecture 06 - Tour of Rails, Active Record |
Lecture 07 - Databases & Migrations, More Active Record, Debugging |
Lecture 08 - Perspective on Validations & Filters, Associations & Foreign Keys |
Lecture 09 - Associations Wrap-up, Cucumber Intro |
Lecture 10 |
Lecture 11 - RSpec 101 |
Lecture 12 - Fixtures & Factories, Stubbing the Internet |
Lecture 13 - Design/Code Reviews, Branching |
Lecture 14 - Continuous Integration & Continuous Development, Legacy, Characterization Tests |
Lecture 15 - Method-level Refactoring, Refactoring Fallacies & Pitfalls |
Lecture 16 |
Lecture 17 - Patterns, Antipatterns, SOLID; Single Responsibility Principle; Liskov Substitution Principle |
Lecture 18 - Review of SRP, OCP, LSP, Demeter; Design Patterns & SOLID Wrap-up |
Lecture 19 - Project Deliverables & Details |
Lecture 20 - APIs and Single Page Applications |
Lecture 21 - Code Fixup Clinic |
Lecture 22 - Code Fixup Clinic 2 |
Lecture 23 - From Development to Deployment, Quantifying Responsiveness, Releases & Feature Flags |
Lecture 24 - Monitoring, Caching, Abusive Database Queries, Defending Customer Data |
Lecture 25 - Poster Previews |
Lecture 26 - Looking Backwards, Looking Forwards |