CS205

Software Engineering

Course ID
CS205
Level
Professional Diploma

Course Description

This course introduces students to the principles, methodologies, and tools used in the design, development, testing, and maintenance of software systems. The course covers software development life cycle (SDLC), requirements gathering, software design patterns, version control, testing strategies, and project management techniques. Students will learn how to apply software engineering practices to create reliable, scalable, and maintainable software solutions. The course emphasizes collaboration, teamwork, and the use of modern software development frameworks and tools.

Learning Outcomes

Upon successful completion of this course, students will be able to:

  • Understanding the Software Development Life Cycle (SDLC): Students will gain a comprehensive understanding of the various phases of the SDLC, including planning, analysis, design, implementation, testing, deployment, and maintenance, and how they contribute to successful software projects.
  • Applying Software Design Patterns and Principles: Learn how to apply software design patterns and object-oriented design principles to create robust and scalable software architectures that are easy to maintain and extend.
  • Managing Software Projects: Gain proficiency in managing software development projects using methodologies such as Agile and Scrum, focusing on team collaboration, version control, project tracking, and iterative development.
  • Implementing Testing and Quality Assurance Techniques: Develop skills in software testing and quality assurance, including unit testing, integration testing, and automated testing, to ensure that software systems meet functional and performance requirements.

These outcomes aim to equip students with the knowledge and skills needed to work as software engineers or developers, preparing them for roles in software development, project management, and systems analysis. The course emphasizes practical experience in building, testing, and maintaining software systems, with a focus on collaboration and industry best practices.