CSCI 370 Lecture Notes (Greenberg)
Spring 2025 Lecture Notes
Lecture Notes (Pre-Midterm)
- 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
Midterm Review
Lecture Notes (Post-Midterm)
- 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
Final Review