F21SF Software Engineering Foundations

Dr Jamie GabbaySmitha KumarLucine Gharibian

Course co-ordinator(s): Dr Jamie Gabbay (Edinburgh), Smitha Kumar (Dubai), Lucine Gharibian (Dubai).


  • To equip students with an understanding of the object oriented paradigm and the process of object oriented design.
  • To support the development of object oriented programs in the Java programming language.
  • To develop an understanding of window-based systems and their development

Detailed Information

Pre-requisites: none.

Linked course(s): F21AS Advanced Software Engineering .

Location: Dubai, Edinburgh.

Semester: 1.


  • Programming in Java: Objects, classes, encapsulation, inheritance, aggregation, polymorphism, abstract classes, interfaces. Constants and variables, primitive data types, reference variables, strings, collection classes, arrays, control structures for selection and iteration
  • Methods: Signatures, parameters, return types. I/O File handling. Exceptions.
  • Graphical user interface design and implementation: labels, buttons, text fields, sliders, panels, frames; menus & lists; file selection; state-based design.
  • Object-oriented design including UML notation: CRC cards, Use cases, Activity diagrams, Interaction diagrams.

Learning Outcomes: Subject Mastery

Understanding, Knowledge and Cognitive Skills Scholarship, Enquiry and Research (Research-Informed Learning)

  • Knowledge and understanding of the Java programming model.
  • Theoretical and practical knowledge of the design and implementation of object oriented solutions to problems. Skill in the use of Java programming language.
  • Demonstration of skill in design and implementation of practical GUI based applications

Learning Outcomes: Personal Abilities

Industrial, Commercial & Professional Practice Autonomy, Accountability & Working with Others Communication, Numeracy & ICT

  • Critical appreciation of the object oriented approach to software engineering.
  • Ability to develop creative solutions to complex problems using the Java programming language.
  • Ability to critically reflect on and refine a proposed solution.
  • Design, implement and evaluate an object oriented solution to a problem.
  • Awareness of role of interface in mediating between user and system

SCQF Level: 11.

Credits: 15.