Data Structure - Learning Journal Unit 1
Data Structure - Learning Journal Unit 1
Embarking on this course, I was immediately struck by the extensive mathematical foundation
required, particularly the use of sets, relations, summations, and logarithms. As a web
developer, my day-to-day tasks rarely delve deep into mathematical concepts, which led to an
initial sense of apprehension. The realization that I would need to revisit and strengthen my
understanding of key mathematical concepts, some of which I hadn't engaged with since high
school, was both surprising and daunting.
What happened that felt particularly challenging? Why was it challenging to me?
One of the most challenging aspects was navigating the abstract concepts presented in the
textbook, which often felt inaccessible through reading alone. For example, the textbook
defines an ADT as "the realization of a data type as a software component... without specifying
implementation details" (Shaffer, 2011). This definition, while comprehensive, underscored the
complexity and abstraction inherent in the course material, prompting me to seek external
resources for a clearer understanding.
To demystify these concepts, I crafted a book collection example to explore “type”, “data item”,
“data type”, “ADT”, “data structure”, “class”, “member function”, and “data member” in a
tangible context. Then I also write a bit of Java code to concretize the notions of classes,
member functions, and data members.
```java
class Book:
# Data members defined within the class
title = ""
author = ""
publication_year = 0
is_borrowed = False
# A member function that updates the borrow status
def borrow_book(self):
self.is_borrowed = True
The course is enhancing my research capabilities and mathematical intuition, critical for
dissecting algorithm efficiency and data structure optimization. Engaging with complex
mathematical principles and applying them to computer science, such as understanding
logarithms in the context of Big O Notation, is cultivating a deeper analytical framework within
me.
I've discovered the importance of a multifaceted learning approach. Beyond textbook study,
practical coding exercises, external research, and discussions with peers are pivotal in breaking
down complex concepts into comprehensible segments. This reflective and active learning
process reveals a dynamic aspect of educational growth, emphasizing the significance of
persistence and curiosity.
In what ways am I able to apply the ideas and concepts gained to my own experience?
Integrating data structure and algorithmic principles into my web development work, especially
in JavaScript and ReactJS, has been profoundly beneficial. Effective state management and
rendering optimizations, grounded in a solid understanding of these theoretical concepts, have
markedly improved the efficiency and performance of my web applications.
Finally, describe one important thing that you are thinking about in relation to the activity:
A pivotal insight from this course is the role of mathematical principles in enhancing front-end
development, particularly within ReactJS frameworks. Weekly discussions and collaborative
problem-solving with classmates have been invaluable in unpacking complex ideas, reinforcing
the symbiotic relationship between theory and practice. This realization not only elevates my
coding practices but also enriches my perspective on the foundational role of mathematics in
crafting sophisticated and high-performing web technologies.
--
Reference: