Object-oriented Information Systems

Pointers, References & Memory, and Design Patterns

Unit 11

Unit 11 includes the development of the assignment of driverless car scenarios through object-oriented programming and with the help of design proposals using UML diagrams in unit 7. In addition, this unit explains why Python does not have pointers and why they are important for memory organisation. Furthermore, design patterns in an object-oriented program and the differences between the creational, structural and behavioural variants are explained in this unit. Finally, the concept of sustainable development is explained and why object-oriented programming plays a role in sustainability.

Outcomes

  • Summary of the learning outcomes

This unit aims to:

  • Describe the overhead incurred in some programming languages other than Java as a result of their use of pointers
  • Discuss the reasons why Python is a more sustainable programming language than others
  • Experiment with the design of code using a variety of design patterns
  • Artefacts

    The projects of the unit to achieve those learning outcomes:

    Assignment: System Implementation - Driverless Car
  • Driverless Car Assignment
  • Reflection

What exactly have I learnt and how?

One of the crucial tasks of the Object-Oriented Programming module was the development of driverless car scenarios. The development of this assignment was evidence of my learning outcome from this module. At the beginning, I did not know anything about object-oriented programming. After the submission, I can recognise my accomplishment and am proud to see where I come from and where I have arrived. However, I know there is still a lot to learn to reach my goal, but I have made it one step further. I can use the object-oriented programming style at a significant level.
  • Notes

Notes from the elaboration of the unit, various meetings, and feedback from team members and tutors

Comparison Between Python and Other Languages
Pointers, in the general sense, are variables that include a memory address of another variable and are used in languages such as C and C++. In Python, pointers are not used, and objects are passed by reference to functions.
Thd programming languages C and Python differ because C is a compiled language, while Python is an interpreted language. With a compiled language, the target machine simultaneously translates the entire code. With an interpreted programme, the target machine does not translate the source code directly, but the interpreter reads the code step by step and executes it.
The fact that Python has to be interpreted makes it slower than, for example, C. Conversely, Python is advantageous because it supports the development process - the keywords supported by Python help the developer. Python also eliminates the need to develop code to support pointer operations.

Design Patterns
Pattern Name:
The pattern name describes the design problem which the pattern will respond to. Having a name supports communication of the concept between developers.
Problem:
The problem indicates the situation in which the pattern should be applied.
Solution:
The solution details the way in which the pattern will respond to the problem, in the sense of the components of the design and their interactions with one another.
Consequences:
The consequences describe the impact of using the pattern, such that developers are aware of the cost-benefit impact of its use.

Feedback from tutor on my Assignment: System Implementation - Driverless Car
The code is presented well and contains a good level of comments, you have made it clear and easy to understand. The code is concise and demonstrates a good level of elegance.
You have demonstrated a good level of knowledge and understanding of object oriented programming techniques that have been used appropriately.
The testing is very good and provides a high level of code coverage.

Contact Me