DAT121 lab worksheet 2: Data and objects (part 1)

This worksheet is only about the first lecture from topic 2, data and objects. The afternoon of Friday, 18th August, is reserved for the immatriculation. The content from the second lecture will be covered in worksheet 3.

1. Reflection / relation to project topic

Brief reflection: How would the content from "Data and objects" (first lecture, 17th August) relate to your project topic? How could it be put to use? Is there anything concrete in this direction that you would plan to research further, or that we should discuss together?

2. Exploring potential topics

The DAT121 presentation and report (i.e., the submitted slides) can be on any topic within data science, understood very broadly. Ideally it will be interesting and lead right to your eventual thesis topic. Create a matrix of two or three potential topics of interest and relevant previous work done by REALTEK faculty, with a focus on faculty within the Department of Data Science.

3. Use of "set" and "get" methods in OOP

In the book-index.ipynb example, the use made of the BookIndex class in the second cell of the notebook (right below the class definition) does not conform with good Python programming practice. The attributes _chapter, _section, and _page should not be accessed directly from outside the class definition, because their name begins with an underscore.

How can we use "set" and "get" methods in order to fix this?

4. Entity-relationship diagrams

Propose an E-R diagram for the following conceptual modelling problem:

Processes can have parts (subprocesses) which are also processes. An action is a process that is intentionally carried out by exactly one agent. An observation (of an object by an agent) is an action where there is exactly one observed object and exactly one observation result. The observation result can be a claim about a physical property of the observed object.

You are allowed to focus on the aspects that you find most important, ignoring some that appear to you to be less important - as you would do in real life if you were co-designing a software and data architecture dealing with information about such scenarios.

5. Co-design of software and data

Implement Python classes conforming with the schema above.

6. Discussion of external presentations

Briefly review the presentations given by Swati Aggarwal and Alexander Stasik, in case you attended any or both of them.

Based on the outcome of this, we could e.g. discuss if a group of students should be formed to provide an input to this process through the linjeforening. See also: Sign up for linjeforeningen.

7. Discussion of glossary terms

The following glossary terms have been proposed for "Data and objects" (part 1): Concept (also: class, entity type), individual (also: entity, object), object-oriented programming, relation (also: object property, relationship type), relationship.

(submit through Canvas by end of 18th August 2023)

Index