Software Engineering


From 14 Dec -- 22 Feb:

  • every Sat., and Wed., 5:30pm GMT (convert to your local time): live lectures with the professor and live sessions with the TA. 

Instructor

Dr. Hany Ammar
Professor Emeritus,
West Virginia University, USA, and
Professor, Galala Univ., Egypt
Email: ammar.hany@gmail.com
URL: https://hanyammar.faculty.wvu.edu/


Eng. Aly Maher
IT Staff and Senior student in Computer Science and Engineering BSc 2025, Galala Univ., Egypt,

Textbook

1. Software Engineering, by Ian Sommerville, 10th Ed. The Global Edition, , Pearson,  2016
2. “A Roadmap for Software Engineering Education using ChatGPT,” Proceedings of the 2023 International Conference on Artificial Intelligence Science and Applications in Industry and Society (CAISAIS), Galala University, IEEE Xplore, Sept. 2023, 
3. Requirements Engineering. Handbook of Software Engineering,  A. Bennaceur, T. Tun, Y. Yu, B. Nuseibeh, https://hal.archives-ouvertes.fr/hal-01758502, 2018
4. Arabic book chapter on Requirements Engineering- Object Oriented Analysis using UML, Ammar and Mili, Philips Publishing, 2006

Prerequisites

  • A course on Object-Oriented Programming

Videos & Materials

  • Recorded Lectures (8 Lectures)
  • Recorded Hands-on Labs (8 Labs)
  • Lecture notes
  • TA

  • Discussion groups & TA support
  • TA-human live sessions

  • Certificate of Knowledge

    Awarded after passing a brief sample exam, which you may attempt multiple times.

    What will you learn?

    This  course is a project-based course that covers the principles and techniques for the development of reliable, maintainable, and useful software systems; Software requirements specifications; object-oriented requirements engineering using Large Language Models, Software Architecture Design and Design Patterns. The objective of the class is to practice software development as an engineering discipline using AI technology.      
    The course Learning outcomes are as follows:
    1.      Demonstrate knowledge of the software requirements engineering process and the Unified Modeling Language (UML) diagrams, and apply modern model-driven approaches to software development using Large Language Models .
    2.      Demonstrate knowledge of software architecture design, styles, and design patterns.
    3.      Demonstrate knowledge of different software testing approaches.

    Course Content