Lecture 1: Software Development

    Lecture 2: Software Systems

    Lecture 3: Analysis and Design Principles

    Lecture 4: Components and Interfaces

    Lecture 4a: Interfaces and Protocols

    Lecture 5: The Nature of Software Developmemt

    Lecture 6: Socially Responsible Programming

    Lecture 7: Pair Programming

    Lecture 8: Code Reviews, Code Walks, Code Inspections

    Lecture 9: Practice Code Walks

    Lecture 10: Practice Code Walks

    Lecture 11: Practicing Architectural Design

    Lecture 12: Answers; Design Discussion

      Answers to Relevant Questions

      Proposed Design Documents

    Lecture 13: Practice Design Inspections

      How to Design Programs

    Lecture 13a: The Design Recipe and Presentations

    Lecture 14: Kent Dybvig on Software Design

    Lecture 15

    Lecture 16

    Lecture 17

    Lecture 18

    Lecrure 19