Course
Software Engineering
46 hours 57 minutes
Credits: Optional Learning
Description
In this course, learners will build a comprehensive foundation in software development – from programming fundamentals and software engineering principles through to Agile delivery and professional software testing. Learners will explore command line interfaces, programming concepts, pseudocode, algorithms, object-oriented programming, and coding best practices, applying these through a hands-on programming lab. They will examine the full software development lifecycle, UML modelling, design patterns, SOLID principles, and version control, before developing deep Agile expertise covering Scrum, Extreme Programming, self-organising teams, software requirements, design, estimation, project management, and team collaboration. The course concludes with a thorough grounding in software testing aligned to the ISTQB Tester Foundation Level 4.0, covering testing basics, processes, techniques, static testing, black-box and white-box testing, test planning, risk and defect management, estimation, monitoring, and testing tools, alongside quality methodologies and standards for project management.
What Students Will Learn
- Programming Fundamentals: Command Line Interface & Operating System Commands
- Programming Fundamentals: Introduction to Programming
- Programming Fundamentals: Systematic Design with Pseudocode
- Programming Fundamentals: Algorithms, Sorting, & Searching
- Programming Fundamentals: Object-oriented Programming
- Programming Fundamentals: Programming Best Practices
- Final Exam: Programming Fundamentals
- Programming Fundamentals
- Software Design and Development: Software Engineering & SDLC Phases
- Software Design and Development: Methodologies
- Software Design and Development: Object-oriented Analysis and Design
- Software Design and Development: Modeling with UML
- Software Design and Development: Design Patterns & SOLID Principles
- Software Design and Development: Version Control System
- Final Exam: Software Design and Development Fundamentals
- Agile Foundations: Fundamentals
- Agile Foundations: Scrum Methodology
- Final Exam: Agile Foundations
- Agile Software Projects: Software Requirements
- Agile Software Projects: Software Design
- Agile Software Projects: Estimation Methods
- Final Exam: Software Project Requirements & Design with Agile
- Development & Testing with Agile: Agile Methodologies in Software Development
- Development & Testing with Agile: Extreme Programming
- Development & Testing with Agile: Agile Self-organizing Teams
- Development & Testing with Agile: Team Meetings
- Development & Testing with Agile: Project Management
- Final Exam: Software Development and Testing with Agile
- Tester Foundation Level 4.0: Software Testing Basics
- Tester Foundation Level 4.0: Software Testing Processes
- Tester Foundation Level 4.0: Software Development Testing Life Cycle
- Tester Foundation Level 4.0: Software Test Types & Maintenance Testing
- Tester Foundation Level 4.0: Static Software Testing
- Tester Foundation Level 4.0: Software Testing Techniques
- Tester Foundation Level 4.0: Black-box Testing Techniques
- Tester Foundation Level 4.0: White-box Testing Techniques
- Tester Foundation Level 4.0: Software Test Planning
- Tester Foundation Level 4.0: Software Estimation & Prioritization Techniques
- Tester Foundation Level 4.0: Test Monitoring & Control
- Tester Foundation Level 4.0: Software Testing Risk & Defect Management
- Tester Foundation Level 4.0: Software Testing Support Tools
- Quality Methodologies and Standards for Project Management
Overall Learning Outcomes
- Use command line interfaces and apply core programming concepts including algorithms, sorting, searching, and object-oriented programming
- Design programs systematically using pseudocode and apply programming best practices
- Explain software engineering principles, SDLC phases, software development methodologies, and version control systems
- Apply object-oriented analysis and design, UML modelling, design patterns, and SOLID principles to software development
- Implement Agile and Scrum methodologies to manage iterative software development effectively
- Define and manage software requirements, design solutions, and apply estimation methods in Agile projects
- Apply Extreme Programming practices and manage Agile self-organising teams, meetings, and project delivery
- Explain software testing fundamentals including testing processes, lifecycles, and test types
- Apply static testing, black-box testing, and white-box testing techniques to assess software quality
- Plan, monitor, and control software testing activities including risk management, defect management, and prioritisation
- Use software testing support tools and apply estimation and test planning techniques effectively
- Apply quality methodologies and standards to ensure software project quality and compliance

