Skip to content

CSCI 370 Software Engineering - Greenberg

Spring 2025 Lecture Notes

  • Lecture 3 - The Problem with Inheritance and the Case for Composition
  • Lecture 4 - Optimization and Design Patterns in Software Engineering
  • Lecture 5 - Approaches to Software Development: Waterfall, Incremental, and Reuse Models
  • Lecture 6 - UML Class Diagrams and Object-Oriented Relationships
  • Lecture 7 - UML Class Diagrams and SOLID Principles
  • Lecture 8 - SOLID Principles Continued, Low-Code/No-Code Platforms, and Dependency Inversion
  • Lecture 9 - Principles of DRY, YAGNI, Delegation, and Intro to Agile
  • Lecture 10 - Agile Practices, Testing Strategies, and Software Development Principles
  • Lecture 11 - Software Requirements, Design Principles, Development Models, UML Diagrams, and Design Patterns
  • Lecture 12 - Object-Oriented Design Patterns: Singleton, Factory, Observer, Strategy
  • Lecture 13 - Decorator Pattern, Builder Pattern
  • Lecture 14 - Builder Pattern, State Pattern, Decorator Pattern
  • Lecture 15 - Object-Oriented Principles in ADTs, Project Guidelines, and the Memento Pattern
  • Lecture 16 - Iterator and Command Design Patterns
  • Lecture 17 - Functional vs Non-Functional Requirements, Use Case Modeling, and UML Diagrams
  • Lecture 18 - Use Case, Sequence, and State Diagrams in UML
  • Lecture 19 - Software Architecture Patterns
  • Lecture 20 - Software Testing and Testable Software
  • Lecture 21 - Writing Testable Code