Object Oriented Programming Unit 11 reflection
Pointers, References & Memory, and Design Patterns
Lecturecast notes:
As has been discussed, everything which is used in Python is an object. Every Python object contains at least three pieces of data, which include:
-
The reference count - this is used to support memory management and is the identity of an object is the address that it refers to in memory;
-
The type - this ensures that the type will run in a way which is safe during runtime. It is the kind of object which has been created e.g. a string or an integer;
-
The value - this refers to the value which is associated with the object.
Reference count/identity and type cannot be changed once created. However, values can change.
Further reading
The article by Zhu et el. (2015) focuses on an essential design goal in energy and thermal management: sustainability. Essentially, a sustainable program makes the best effort to not exceed the maximum “energy budget” (i.e. overheating), while at the same time producing as high-quality results as possible (deficit vs surplus).
Update for assignment 2:
During this unit, I focused on completing the code for the final two UML diagrams (sequence diagram and state transition diagram).
References:
Guo, P. (2021). Ten million users and ten years later: Python tutor’s design guidelines for building scalable and sustainable research software in academia’ in: The 34th Annual ACM Symposium on User Interface Software and Technology pp. 1235-1251.
Nilsson, E. G. (2009). Design patterns for user interface for mobile applications. Advances in Engineering Software. 40(12), pp.1318-1328. DOI: 10.1016/j.advengsoft.2009.01.017.
Reitz, K. (2016) The Hitchhiker’s Guide to Python: Best Practices for Development. O’Reilly.
StackOverflow (2016). https://stackoverflow.com/questions/37895781/unable-to-run-unittests-main-function-in-ipython-jupyter-notebook [Accessed: 12 July 2023].
Zhu, H. S., Lin, C. & Liu, Y. D. (2015). A programming model for sustainable software. IEEE/ACM 37th IEEE International Conference on Software Engineering. 1, pp. 767-777. DOI: 10.1109/ICSE.2015.89.