VCC, the provider for this course, is located on the unceded and ancestral territories of the Musquem, Squamish, and Tsleil-Waututh Nations, which have been stewarded by them since time immemorial.
I'm grateful for the opportunity to take this course on these territories.
A little bit about me: my name is Yuri Tricys. I'm a Canadian from Lithuanian and African American descent.
I'm a web developer, researcher, and consultant.
I come from a varied educational background, having studied formal sciences, history, literature, economics, and during the last 12 years the computer sciences.
Today I'm going to talk about Cognitive Load Theory, a topic you may know about already, given the context of this presentation.
But we're going to talk about it alongside the concept of flow, or flow state, and ultimately ...
curriculum development, and the computer sciences.
Cognitive Load theory identifies three types of cognitive load.
Intrinsic cognitive load refers to the inherent complexity of a task or information being learned.
It's determined by the number of interacting elements that must be processed simultaneously.
For example, working on a complex computer science program might involve understanding complex directory structures, build pipelines, tooling chains, switches, and conditions, and multiple programs, each with many variables and values -- as well as other varied aspects of the 'problem space' that work together to generate the program's output.
Refers to the mental effort caused by unnecessary or distracting elements in the learning or task environment, such as poorly designed interfaces or confusing instructions.
Refers to the effort required to create new knowledge schemas or automate processes.
We're talking here about encoding knowledge into long-term memory, which includes identifying it, categorizing it, and then encoding it.
The brain is creating new synaptic connections between neurons, and more broadly, neural networks.
Cognitive load threshold is a theoretical threshold that identifies the difference between cognitive load and cognitive overload.
It's theoretical because it can't be identified in any precise way.
But we can presume it to be different for every individual, and different also for different individuals across different circumstances.
What we can say is that when the cognitive load of any given individual passes their cognitive load threshold
They become cognitively overloaded.
Bernadine Cocks and several other researchers in 2013 published "Breaking the Camel's Back: Can Cognitive Overload Be Quantified in the Human Brain?"
Their research looks for a precise difference between cognitive load and cognitive overload.
They tested subjects with Stroop tasks, under different levels of cognitive load and distraction, such as audio stimulus, while scanning their brains with a neuroscanner.
They then used statistical methods such as fourier transformations and paired t-tests to measure error rates and reaction times.
While their sample-size was small, their results suggested "performance decrements of up to 56% for error rates and 81% for reaction times" (Cocks et al., 2013)
They were not successful in identifying what we could call a precise cognitive load threshold, or devising a unit of cognitive load,
but they did find localized areas in the brain that were visible when scanned as the brain moved from normal to overloaded cognitive load.
We're not going to go into further detail here, but we do see quantifiable performance deficiencies in overloaded indivuals.
Another research paper, by Sewall, Santhosh, and O'Sullivan, in 2020, titled
"How do attending physicians describe cognitive overload among their workplace learners?",
gives some insights into how to recognize cognitive load in students.
Sewall et al., 2019, conducted what they call a 'secondary qualitative analysis of transcripts of interviews' among health care workplace teachers to identify signs of cognitive overload.
Their results are helpful in spotting cognitive overload in students.
Sewall et al., 2020 found cognitively overloaded workers had the following characteristics:
Steven Kotler, author of 'The Rise of Superman: Decoding the Science of Ultimate Human Performance.'
describes the flow state as an optimal state of consciousness where individuals feel and perform their best.
In this state, people experience moments of rapt attention
and total absorption, becoming so focused on the task at hand that everything else disappears.
Action and awareness merge, and the sense of self vanishes.
Signs you might be in a state of flow:
(Csikszentmihalyi, 1990)
A well-known study, by Cranston and Keller (2013), "showed that people in flow state reported increasing their productivity by 500%." (Alameda et al., 2022)
Other benefits of being in the state of flow, described by Steven Kotler, include:
Big Think. (2015, February 27). The Neurochemistry of Flow States, with Steven Kotler [Video]. YouTube. https://www.youtube.com/watch?v=aHp2hkue8RQ
Flow is a big deal in computer programming, which is a high-cognitive load activity. Again, according to Kotler, flow requires a 4% higher level of difficulty than you're accustom to, to push the body into flow state. (Jim Kwik, 2020)
Computer programming is difficult, typically it satisfies the 4% criteria.
"Joel Spoesky once said, “Productivity depends on being able to juggle a lot of little details in short term memory all at once. Any kind of interruption can cause these details to come crashing down. When you resume work, you can’t remember any of the details (like local variable names you were using, or where you were up to in implementing that search algorithm) and you have to keep looking these things up, which slows you down a lot until you get back up to speed.”" (Popper, 2018)
Ben Popper, at Stack Overflow wrote an article in 2018, titled, Developer Flow State and Its Impact on Productivity.
He tells us how easy it is for a developer to get knocked out of flow-state.
(Popper, 2018)
Raiza Sali, 2020
22 known flow state triggers
https://www.raizasali.com/post/flow-triggers-for-hacking-flow
Cognitive Load is instrinsic, extraneous, and germane
Cognitive Loading is getting from nothing to intrinsic.
In computer science, and web development, it's about loading the problem the space.
In my case, when I first started programming heavily, around 12 years ago, it would take anywhere from 2 - 4 hours to get into the zone.
Today, after more than a decade focused on optimizing work flow for flow-state, it can still take me 1 hour to 1.5 hours get from Cognitive Loading to Instrinsicly Loaded, though that number comes down if I stay on a specific problem and come back to across multiple days.
Here are some intrinsic ways I make that happen:
When we're talking about optimizing curriculum for flow-state, minimal cognitive load, and minimal cognitive loading, we're talking about extraneous load.
Changes we can make to the structure of the classes and problem sets, and to the environment, that enable students to get into flow, stay focused, and optimize for low cognitive load.
So let's talk about those two things in the next two slides and then wrap up.
Weinstein et al., in their 2018 paper "Teaching the science of learning", introduce six characteristic processes of Cognitive Learning Theory that will be helpful in conceptualizing how we can write curricula for cognitive load.
They are:
Shaffer et al., in 2003, wrote what I consider to be a seminal paper titled, “Applying Cognitive Load Theory to Computer Science Education” (Shaffer et al., 2003).
They offer several suggestion to optimize curriculum design for cognitive load:
(Shaffer et al., 2003)
Optimizing for Cognitive Loading is really about minimizing energy spent loading a problem space into working memory, like a web development project, .
In my personal experience, I found the fastest way to gain proficiency in a particular problem space -- which includes navigating the problem space, recalling features of it, and solving problems in it -- is to work in the space throughout the day.
I found 4 consecutive shifts of 8 - 12 hrs optimal, with 2 or 3 days off afterward.
In management, the rule of thumb is to spend no more than 4 hrs a day on the computer. Managers need to connect with workers, and stay in the client loop. It's a people job.
But in high-productivity coding, what is often referred to as 10x coding, the trick is to hit it with everything you've got, and then go away for a few days.
To be honest, 10x-ers often turn those into 20 hr shifts.
In my experiece, flow state seems to appear after 4 hrs on the computer.
One of the most interesting strategies, then ... to optimizing curriculum for minimal cognitive loading, and optimal flow-state, is to do the reverse of interleaving and spaced practice, as it applies across subjects.
In the next slide we will look at a sample student schedule, and talk more about optimizing for cognitive loading.
So once again, one way to optimize for cognitive loading is to block stack, to keep students focused on the same problem space throughout a given day.
This kind of strategy is applied often in the wild in boot camps and hackathons, for similar reasons.
In a traditional college setting, a college could offer a design lab in the morning for 2 hours, a break, exercise, followed by a front-end framework-focused
hands-on class in the early afternoon, and a database-focused back-end class in the early evening.
In summary, the brain is a complex organism with billions of neurons that consumes 20% of caloric intake to create new synaptic connections between neurons and neural regions.
Cognitive load theory, explains brain functionality with such terms as intrinsic load, extraneous load, and germane load.
When the brain is overloaded, error rates can increase beyond 56% and reaction times decrease beyond 81%. Workers and students can start to show visible and verbal behavioral abnormalities.
Flow state is a high-performance trance-like state that induces almost the opposite behavior.
People in flow state can be over 500% more performant. They can learn more than 2x faster. Their creativity can increase by 500 to 700%.
Cognitive loading occurs when intrinsic cognitive load is added.
Curriculum can be optimized for both cognitive load and cognitive loading, to induce more learning, and higher probabilities of going into flow state, which is important in web development..
There are multiple strategies to optimize curriculum for cognitive load, including partially pre-solving problems.
One way to optimize curriculum design for cognitive loading, is to block stack, which ensures students stay focused on one problem space, so they do not have to re-spend the large energy requirements to load problem spaces into instrinsic memory.