3 lectures per week, 50 minutes each (3-0-3)
Designation: Required Course
Course Level: Undergraduate
Prerequisite(s) by Topic:
Introduction to software engineering and software processes. Construction techniques and principals. Concepts of Programming Languages: Syntax and semantics. Analysis and Design Modes. Ethical and professional responsibilities.
Somerville, Ian. Software Engineering, 7th Edition, Addison-Wesley, 2004.
Pressman, R.S. Software Engineering: A Practitionerâ€™s Approach, 6th Edition, McGraw-Hill Companies, Inc, 2005
Upon completion of this course, students will have the ability to:
- Select the most appropriate processes for a given software project.
- Differentiate between software processes and know their advantages/disadvantages in certain context.
- Demonstrate basic program development skills and knowledge in four programming paradigms: object-oriented, imperative, functional and logic.
- Create different UML analysis models such as use-cases, and activity diagram.
- Create different UML design models such as class model, sequence diagram and state charts.
- Apply software construction techniques.
- Demonstrate understanding of the ethical and professional responsibilities.
- Demonstrate good writing and oral communication skills.
- Introduction to Software Engineering
- Generic View of Processes
- Software Processes Models
- Software Project Management
- Software Requirements
- Software Analysis
- Software Design
- Software Testing
- Basics of Programming Languages
- Software Construction Techniques
- Managing People / Group Dynamics
- Communication Skills