Course Overview¶
This course provides a comprehensive introduction to software engineering principles, methodologies, and best practices. Students will learn essential skills for developing high-quality software systems in team environments using Agile/Scrum methodologies.
Learning Outcomes¶
By the end of this course, students will be able to:
- Apply software engineering principles to develop robust applications
- Use version control systems effectively in team environments
- Implement Agile/Scrum methodologies in real project development
- Design user-friendly interfaces and scalable architectures
- Write comprehensive tests and maintain code quality
- Work effectively in collaborative development teams
14-Week Course Journey¶
Our course follows a structured learning path with hands-on project development using 2-week Scrum sprints:
Project Timeline with Scrum Sprints¶
Weekly Course Breakdown¶
Week 1: Introduction to Software Engineering
- Course overview & importance of software engineering
- Historical context & software engineering vs programming
- Project: Team formation, brainstorm ideas
Week 2: Version Control with Git & GitHub
- Git basics: repositories, commits, branches
- GitHub collaboration: remote repos, pull requests
- Project: GitHub repo setup, initial commit
- 🎭 Interactive Presentation - Premium Slidev presentation
Weeks 3-4: SDLC & Agile Scrum
- SDLC models: Waterfall vs Agile
- Scrum framework: roles, ceremonies, artifacts
- Zenhub project management setup
- Milestone 1 (Week 3): Product Backlog & SRS Draft
Weeks 5-6: Requirements Engineering
- Stakeholder analysis & user stories
- Functional/non-functional requirements
- UML diagrams: class, use case, sequence
- Milestone 2 (Week 5): Finalized SRS & MVP
Week 7: UI Design & Architecture
- GUI concepts, wireframes, mockups
- Software architectures: Layered, MVC
- Milestone 3 (Week 7): Wireframes & UML Diagrams
Week 8: Design Principles
- Conceptual integrity, information hiding
- Cohesion, coupling, SOLID principles
Weeks 9-10: Design Patterns
- Essential patterns: Factory, Singleton, Observer
- Strategy, Adapter patterns
- Milestone 4 (Week 9): Implementation with Patterns
Week 11: Testing
- Unit testing & integration testing
- Test-Driven Development (TDD)
- Milestone 5 (Week 11): Final Project with Tests 🏁
Week 12: Refactoring & DevOps
- Code refactoring & identifying smells
- CI/CD pipelines & DevOps basics
Week 13: Presentations & Kanban
- Project presentations (Sprint Review)
- Introduction to Kanban methodology
Week 14: Review & Agile Practice
- UML diagram review & reinforcement
- Real-world Agile practices & team dynamics
Project Milestones & Deliverables¶
Week 3
- Product Backlog
- SRS Draft
- User Stories
Week 5
- Final SRS
- MVP Definition
- Initial UML
Week 7
- Wireframes
- Mockups
- Complete UML
Week 9
- Core Implementation
- Design Patterns
- Code Review
Week 11
- Complete Application
- Testing Suite
- CI/CD Pipeline
- Documentation
Scrum Framework Integration¶
Our project follows authentic Scrum practices:
- Students: Development Team members
- Rotating Scrum Master: Different student each sprint
- Product Owner: Instructor
- Sprint Planning: Start of each 2-week sprint
- Daily Standups: Weekly progress checks
- Sprint Review: Milestone presentations
- Retrospectives: Post-milestone reflection
- Product Backlog: Maintained throughout course
- Sprint Backlog: Updated each milestone
- Increment: Working software each sprint
Course Navigation¶
Interactive lessons with real-world examples and demonstrations
Individual coding tasks and analysis exercises
Team-based Scrum project development
Setup guides, tools, and additional materials
Key Course Highlights¶
Ready to become a software engineering professional? Let’s build something amazing together!
Start Here: Introduction to Software Engineering →