Blog Post #1
Introduction

Hi, I’m Dariush Behsudi, a Computer Science undergraduate studying in my third year at the University of Victoria. The fabric of my educational journey has not only been constructed by the direct code of the lectures and the complex algorithm of the assignments but also by the incidental experiences with the debugging of my time management skills while working as a part-time worker and volunteering at my mosque. I acquired the skills of persistence, teamwork, and flexibility by navigating amid various challenges that I am determined to utilize throughout my career and studies.
Understanding of Learning
For me, learning is the process of breaking down complex applications into smaller, understandable parts and then applying them in practice. I see learning not just as memorization but as the ability to apply knowledge to realworld situations. For example, when I was first introduced to Python, I struggled with debugging errors. What helped me was not just reading syntax rules but practicing by writing small programs, testing them, and receiving feedback through test harnesses. This cycle of making mistakes, practicing, and correcting helped me truly learn.

Learning Theories and How I Learn Best
| Learning Theory | Key Idea | How it relates to me |
| Behaviourism | Learning happens through reinforcement and repetition. | Useful when memorizing syntax rules or commands in programming. |
| Cognitivism | Focuses on organizing information and building mental models. | helps me break down complex problems (e.g, recursion, algorithms). |
| Constructivism | Learners build knowledge through experience and connection. | I use this when applying coding concepts in projects or group work. |
Of the three major learning theories, the one I relate to the most is Cognitivism. The discipline of Computer Science compels the students to engage in organizing information, problem-solving, and constructing mental models. When solving a coding problem, my first step is usually to express the logic first (with the help of flowcharts or the pseudocode flow), and then, hold the equation in fixed-order (mechanical) solutions. Thus, this cognitive process benefits me to learn to use concepts such as recursion or data structures more easily, as a result, seeing those concepts a bit more clearly.
My approach has affected the way I go to my classes; the most practical way for me to engage is when I learn to apply the theory to step-by-step problem-solving operations, for example, the coding labs or the algorithm proofs.
Motivation in Learning (ARCS Model)
In the field of computer science, which is often rife with challenges and setbacks, motivation becomes a crucial factor that has to be present. Out of the four ARCS components, Attention, Relevance, Confidence, and Satisfaction. Confidence is the one that stands out most for me; the fact that I have come to realize is that self-belief is the key factor that increases my capacity to go through those burdensome tasks.
One noteworthy instance was when I faced difficulty in handling edge cases in Move-to-Front encoding in SENG 265 project. But when I was able to pass my tests one test file at a time, my motivation level rose up to success. This is in accordance with Keller’s ARCS model where the setting of small but achievable goals and giving of feedback causes the building of confidence and also, the promoting of engagement.
Adult Learning and Prior Knowledge
Knowles Adult Learning Theory has 5 assumptions which rests on the premise that adults are learners who self-direct their learning and build on their past experience. My volunteering experiences in the mosque have affected my learning in a new way and thus I am more confident in dealing with challenges. In the course of teaching the basic digital skills to junior members, I encountered a unique experience that I have never had before. I found that by breaking down the concepts into simple terms, I realized my own understanding became much sharper.

Likewise, in my studies, I apply what I learned in one programming language to understand another programming language. For instance, by learning about object-oriented principles in Java, I easily developed an understanding of class structures in Python. The knowledge transfer in this case is a demonstration of how adult students use their previously acquired knowledge to learn new subjects.