Week Topics Lectures/Details (Key Points) Reading Project Milestones
1 Introduction to Software Engineering
  • Course syllabus, grading, resources
  • SE definition/scope; historical evolution (software crisis, milestones)
  • SE principles vs. programming (processes, teamwork, quality)
  • Industry role (scalability, maintainability, ethics).
Chapter 1: Introduction
2 Version Control with Git and GitHub
  • git fundamentals (repos, commits, branches, staging area)
  • GitHub features (remotes, PRs, issues, collaboration, actions)
  • Advanced (merges, rebase, conflicts, tags/releases)
  • Best practices (commit messages, branching models like Git Flow, .gitignore)
Appendix: Git
3 SDLC, Agile Scrum, and Project Management with Zenhub
  • SDLC models (Waterfall phases/pros/cons, Agile iterative/Manifesto, XP practices)
  • Scrum framework (sprints, roles - PO/SM/Team, ceremonies - planning/standup/review/retrospective, artifacts - backlogs/burndowns)
  • Zenhub (boards, epics, task tracking, GitHub integration for issues/PRs/labels)
Chapter 2: Processes
Milestone 1: Project Launch and Setup (Weeks 4-5) – Using Weeks 1-3 topics: Team roles/rotation, vision statement, initial backlog (10+ stories), Git/Zenhub setup, draft plan/timeline. Mid-check (Week 4 end): Team doc/backlog drafts. Important: Establish branching strategy, communication plan; reflection on Agile application.
4 Requirements Engineering I
  • High-level analysis (stakeholders, goals elicitation techniques)
  • Low-level (user stories format/prioritization, use cases/text/diagrams, functional/non-functional classification, SRS structure/template)
  • UML intro (purpose, notation for use case/class diagrams, tools like draw.io)
Chapter 3: Requirements
Chapter 4: Models
Milestone 1 Ongoing
5 Requirements Engineering II
  • MVP selection (core features, validation methods)
  • A/B testing (hypothesis/design/analysis)
  • Planning poker (estimation process, consensus building)
  • UML expansion (class diagram - attributes/methods/relationships for CLI MVP design)
Chapter 3: Requirements
Chapter 4: Models (Class Diagrams)
Milestone 1 Final Due (End of Week 5)
Milestone 2: Requirements & MVP (Weeks 6-7) – Using Weeks 4-5 topics: SRS (functional/non-functional), 15+ user stories, use case diagrams, CLI-based MVP in Python (e.g., task management features), basic tests (3-5). Mid-check (Week 4 end): SRS/user stories drafts. Important: UML class/use case integration; reflection on MVP validation.
6 UI Design and Architecture
  • GUI concepts (usability principles, UX elements, interface design guidelines)
  • Wireframes/Mockups/Prototypes (creation tools, iteration for user feedback)
  • Architectures (Layered design - separation of concerns, MVC - Model data/View UI/Controller logic, examples in Python)
Chapter 7: Architecture Milestone 2 Ongoing
7 Design Principles
  • Conceptual integrity (unified vision, consistency across modules)
  • Information hiding (abstraction/modularity benefits)
  • Cohesion (high for focused responsibilities)
  • Coupling (low for independence/reusability)
  • SOLID principles
Chapter 5: Design Principles Milestone 2 Final Due (End of Week 7)
Midterm Exam
Milestone 3: Modeling & Architecture (Weeks 8-9) – Using Weeks 6-7 topics: Wireframes/mockups, MVC code setup, SOLID application to MVP, manual validation scenarios (5+). Mid-check (Week 8 end): Wireframes/MVC drafts. Reflection on code improvements from principles. Important: Integrate UI prototypes with architecture; ensure modularity.
8 Design Patterns I
  • Factory (abstract creation, simple/abstract/method types, when to use for flexibility)
  • Singleton (ensure single instance, lazy/eager initialization, thread-safety)
  • Observer (publish-subscribe pattern, subject/observer roles, event handling)
  • Strategy (algorithm families, context/strategy interface, runtime swapping)
Chapter 6: Design Patterns Milestone 3 Ongoing
9 Design Patterns II
  • Adapter (interface compatibility, object/class adapters, legacy integration)
  • Pattern review (trade-offs, combinations like Factory with Strategy)
  • Application guidelines (when to apply/avoid, common pitfalls in OO design)
Chapter 6: Design Patterns Milestone 3 Final Due (End of Week 9)
Milestone 4: Design Patterns & Feature Integration (Weeks 10-11) – Using Weeks 8-9 topics: Adopt 3-5 patterns to 3-7 backlog features, enhance with prior principles/architecture/UI, 10+ tests. Mid-check (Week 10 end): Pattern/feature drafts. Reflection on design improvements. Important: Ensure patterns fit naturally; integrate with MVC/SOLID.
10 Testing
  • Unit testing (isolated components, assertions/mocks)
  • Integration testing (module interactions, stubs)
  • TDD cycle (red-green-refactor process)
  • Tools (pytest/unittest setup)
  • Test coverage (statement/branch metrics, tools like coverage.py for analysis)
Chapter 8: Testing Milestone 4 Ongoing
11 Refactoring and Clean Code
  • Refactoring techniques (extract method/class, rename, inline temp)
  • Code smells (duplication, long methods, large classes - detection/fixes)
  • Clean code practices (meaningful naming, small single-responsibility functions, minimal effective comments, consistent formatting, robust error handling)
  • Automated refactorings (IDE support, safe changes)
  • Benefits (improved readability, maintainability, and testability via test-driven refactoring)
Chapter 9: Refactoring Milestone 4 Final Due (End of Week 11)
Milestone 5 (mini Milestone): Testing, Refactoring & Presentation (Weeks 12) – Using Weeks 10-11 topics: Comprehensive tests (20+, 80%+ coverage for features/patterns), refactor smells in code, extend prior tests. Prepare to present the work..
12 DevOps and Critical Revision
  • DevOps, UML review (refinements, errors in diagrams)
  • Agile real-world (scaling teams, hybrid models, common challenges like remote collaboration)
Chapter 10: DevOps
Chapter 4: Models
Milestone 5 Final Due (End of Week 12)
13 Project Presentation Preparation
  • Project Presentation (intro/demo/design/metrics/Q&A)
  • Kanban (if time allows)
Final Polish
Final Polish (Week 14) – Address issues/code smells from feedback, reorganize README/docs/folders, add missing content (e.g., consolidated diagrams). Important: No new features; focus on fixes/maintainability; reflection on overall process improvements.
Final Exam