Note - SPPU's Degreeplus Beta Version is up, stay tuned for more details.
Note - SPPU's Degreeplus Beta Version is up, stay tuned for more details.

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