human
I am working on the file "LectureProgrammingParadigms/Lecture Programming Paradigms.ipynb".
The first task is:
The object-oriented coding style is all about increasing the ability of applications to reuse code and making code easier to understand. The encapsulation that object-orientation provides allows developers to treat code as a black box. 
Summary

We have seen various approaches to structure source code.
Python leaves it up to you to choose and pick.
None of them is right or wrong.
The choice strongly depends on your problem.
You need something 'quick and dirty': Imperative Style
You are working on a larger project that maybe even involves several developers: OO
Another way to look at it, is how data is being manipulated.
You have a fixed set of operations on things: OO
You have a fixed set of things: Functional/Procedural Programming

Exercise

In this week's exercise you are supposed to get familiar with OOP.
We want to write the code for a linked list.
A linked list is a container like lists, arrays, dictionaries, etc.
The speciality of a linked list is that each element in a list (called node) contains also a pointer to the following element.


Here is the code for a node:
Can you write Python code for it?
assistant
#Here is the Python code you requested.

class ListNode:  
    def __init__(self, data):
        "constructor to initiate this object"

        # store data
        self.data = data

        # store reference (next item)
        self.next = None
        return

    def contains_value(self, value):
        "method to compare the value with the node data"
        if self.data == value:
            return True
        else:
            return False

node1 = ListNode('data point 1')
node2 = ListNode([15, 16 , 3.14])
node3 = ListNode(16.6)