CS169: Software Engineering
CS 169: Software Engineering (Spring 2012, UC Berkeley). Instructors: Prof. David Patterson, Prof. Armando Fox, and Prof. Koushik Sen. This course discusses ideas and
techniques for designing, developing, and modifying large software systems. Function-oriented and object-oriented modular design techniques, designing for reuse and maintainability.
Specification and documentation. Verification and validation. Cost and quality metrics and estimation. Project team organization and management.
Go to the Course Home or watch other lectures:
Lecture 01 - Introduction, Product Lifetimes, Assurance, SaaS |
Lecture 02 - Service Oriented Architecture, Cloud Computing, Client-Server Architecture |
Lecture 03 - Ruby & Rails Intro for Java Programmers, Metaprogramming |
Lecture 04 - Model-View-Controller; Models, Databases, and Active Record |
Lecture 05 - Mixins and Duck Typing |
Lecture 06 - Rails Basics, Active Record Basics, Controllers & Views |
Lecture 07 - Form Submission; Redirection, the Flash and the Session; Intro to BDD; SMART User Stories |
Lecture 08 - Introducing and Running Cucumber and Capybara |
Lecture 09 - FIRST, TDD, and Getting Started with RSpec; Red-Green-Refactor |
Lecture 10 - More Controller Specs and Refactoring; Fixtures & Factories; Stubbing the Internet |
Lecture 11 - Coverage, Unit vs. Integration Tests, Other Testing Concepts, and Perspectives |
Lecture 12 - Single Sign-On and Third-Party Authentication |
Lecture 13 - Working in Teams vs. Individually |
Lecture 14 - Legacy Code and Refactoring |
Lecture 15 - Identifying What's Wrong: Smells & Metrics |
Lecture 16 - Solid Class Architecture & Class-Level Refactoring; Intro Design Patterns |
Lecture 17 - Design Patterns (Cont.) |
Lecture 18 - Design Patterns (Cont.) |
Lecture 20 - AJAX: History and the Big Picture |
Lecture 23 - Operations: Development, Performance, Practical Security |
Lecture 24 - Practical Operations: Security, Scalability, Stability |
Lecture 25 - Automated Test Generation Using Symbolic Execution: Three Decades Later |
Lecture 26 - Frontiers of Testing: Concolic Testing, Path Coverage |
Lecture 27 - Delta Debugging |
Lecture 29 - How GITHUB Works (Guest Lecture by Zach Holman) |
Lecture 30 - Wrap-Up |