This course provides an overview of fundamental principles, methodologies, and tools in software engineering. It explores the foundational principles of software engineering, emphasizing the scientific and engineering concepts essential for research in the field. Students will learn about the software development lifecycle, requirements engineering, software design, testing, and project management They will examine theoretical frameworks, methodologies, and the interplay between software engineering and computer science.
Learning Outcomes
By the end of this course, students will be able to:
- Describe the software development lifecycle and its phases.
- Apply requirements engineering techniques to gather and analyze software requirements.
- Design software systems using appropriate architectural and design patterns.
- Develop testing strategies and evaluate software quality.
- Utilize version control systems and project management tools effectively.
- Discuss ethical considerations in software engineering.
- Teacher: Hussien Seid