Object Oriented Software Engineering

2020/2021

Prerequisite/Recommended prerequisite for participation in the module

Procedural Programming (3rd semester)

Content, progress and pedagogy of the module

To build upon the foundation acquired from the programming courses from 1st and 3rd semester in working with computers and other digital devices; to learn, practice and perfect the art and science of software engineering from design and implementation to delivery; to learn about communications between digital devices; to learn how to develop graphical user interfaces.

Learning objectives

Knowledge

Students who complete the module will obtain the following qualifications:

  • Understanding OOSE principles: objects, classes and instances; encapsulation; inheritance; virtual functions and polymorphism; overriding and overloading; private vs. public vs. protected class members; templates
  • Understanding OOSE elements: object and class definitions; instances, data members and functions; pointers and references; UML
  • Understanding OOSE advantages: code comprehension; debugging; modular development and reusability; abstraction
  • Knowledge of the development of large projects using an integrated development environment (IDE)
  • Understanding concepts of programming for the Internet and its various applications, such as e-mail, WWW, peer-to-peer and file transfer
  • Understanding the top three layers in the 5-layer Internet protocol stack: Application, Transport and Network
  • Understanding concepts of programming for networks: clients and servers; sockets; establishing a connection; ports; IP address; Ethernet address
  • Knowledge on the concepts behind graphical user interfaces (GUIs): common GUI elements; message passing; issues with cross-platform development; multithreaded programming
  • Knowledge on the concepts behind multithreaded programming: processes and threads; scheduling; bottle necks and deadlock; shared data; mutex locks; the race condition

 

Skills

Students who complete the module will obtain the following qualifications:

  • Design and implement an existing solution to a problem using OOSE principles: objects, classes and instances; encapsulation; inheritance; virtual functions and polymorphism; overriding and overloading; private vs. public vs. protected class members; templates (application)
  • Design and implement a new solution to an existing problem using OOSE principles that is modular, well-documented and comprehensible (synthesis)
  • Analyze, interpret and explain pre-existing code and UML
  • Analyze and interpret an application programming interface (API)
  • Analyze and work out computational complexity of an algorithm
  • Demonstrate the use of an IDE for code development (understanding)
  • Understand digital application and communication protocols: HTTP; FTP; SMTP; TCP and UDP
  • Implement a program that communicates between two digital devices at the Application and Transport layers (application)
  • Explain how to use a common GUI API (understanding)
  • Implement a useful GUI with: common GUI elements; message passing; issues with cross-platform development; multithreaded programming (application)

Competences

Students who complete the module will obtain the following qualifications:

  • Evaluate and combine adapt pre-existing code, such as libraries and application programming interfaces (APIs) (application)
  • Recommend changes to an algorithm (analysis)

Type of instruction

Refer to the overview of instruction types listed in the start of chapter 3. The types of instruction for this course are decided in accordance with the current Framework Provisions and directions are decided and given by the Study Board for Media Technology.

Exam

Exams

Name of examObject Oriented Software Engineering
Type of exam
Written or oral exam
In accordance with the current Framework Provisions and directions on examination from the Study Board for Media Technology:
Individual oral or written examination with internal censor. The assessment is performed in accord-ance with the 7-point grading scale.
ECTS5
Permitted aids
With certain aids:
See semester description
Assessment7-point grading scale
Type of gradingInternal examination
Criteria of assessmentThe criteria of assessment are stated in the Examination Policies and Procedures

Facts about the module

Danish titleObjektorienteret Software Engineering
Module codeMSNMEDB4104
Module typeCourse
Duration1 semester
SemesterSpring
ECTS5
Language of instructionEnglish
Location of the lectureCampus Aalborg, Campus Copenhagen
Responsible for the module

Organisation

Study BoardStudy Board of Media Technology
DepartmentDepartment of Architecture, Design and Media Technology
FacultyTechnical Faculty of IT and Design