Upcoming JS curriculum threads 🧵 Weeks 5 - 8 #163
Replies: 4 comments 16 replies
-
Week 5Learning threads 🧵Let’s build a mental model for grouping and acting upon related data Provisional section headings:Related pieces of data - limitations of many variables - grouping data - strings as ordered lists of characters - indexing - limitations of strings - ordered lists of other types - list mutation - computing values from lists - need for iteration - mechanics of for loop - “playing computer” through a loop |
Beta Was this translation helpful? Give feedback.
-
Week 6Learning threads 🧵Let's build a mental model to understand how to key a value Provisional section headings:Limitations of ordered lists - key-value pairs - value vs reference - mutating objects - side effect functions - nested structures - iterating lists and key value pairs - ?? |
Beta Was this translation helpful? Give feedback.
-
Week 7Learning threads 🧵Let’s build a mental model for understanding different execution environments Provisional section headings:Interacting with web page - inspecting elements on the page - Document Object Model - Interacting with DOM elements in dev tool - linking scripts to HTML page - locally hosted web page - Using the DOM API - global objects ( window ) - looking for elements using selectors, tree structures - DOM traversal - checking the page ( this week contains content very similar to week 7 in the current syllabus! - but with more emphasis on the interface and using DevTools as another interface too ) |
Beta Was this translation helpful? Give feedback.
-
Week 8Learning threads 🧵Let's build a mental model around giving the computer code to run at a later time (e.g. onClick handlers) ContextThis week we should pay particular attention to introducing the idea of passing functionality to other functions and asynchronicity. We should focus on event handlers at this stage - we can have a nice intuitive example of some user interaction firing event that leads to a handler being invoked. This is the entry point into higher-order functions and asynchronicity. |
Beta Was this translation helpful? Give feedback.
-
Hello folks,
Following the most recent curriculum meeting I’ve come up with the high-level ordering of threads ( and some rough headings too ) to give an idea of the proposed road ahead.
I definitely agree that we need to bring “JS in the browser” content forwards as early as possible: however, after reflection, I do think we need to bring in iteration before “JS in the browser” for some reasons that I’ll sketch out here briefly. The problem can be summed up thus: now we’re threading concepts together it means we can end up with entanglement, i.e. it can become more challenging to separate content out into distinct standalone modules. There was a feeling that iteration should be interlinked with “JS in the browser” where it can be better contextualised ( which makes sense ). But if iteration is included then it makes iteration ( a fundamental concept ) tied up with the “JS in the browser” section of the course and thus more difficult to extract. In the rewrite, I feel like the first 6 weeks of JS are now becoming more akin to programming fundamentals ( in JS ) and so it feels increasingly like it ought to be a standalone module. Ideally, I would prefer iteration to be part of this module and not have its introduction tied into the “JS in the browser” so we have more flexibility later on. ( Of course, the iteration thread would definitely be continued in the “JS in the browser” section of the course a few weeks later so I don’t think this is a massive deal. )
Other reasons for introducing iteration in week 5:
If we started with the browser runtime from the very beginning of the JS module then I think it would be easier to introduce iteration + DOM side effect but I think that’s out of scope for now. Although I do think it would be easier to re-structure it this way if we wanted to in the future. Sorry for this rambling explanation.
Beta Was this translation helpful? Give feedback.
All reactions