Comments (5)
I think that I've figured out how to make sense of flipped classroom, movable workshops, and a more flexible syllabus structure. Will demo next Syllabus
from syllabus.
Secondly, "I’d never really thought about it like this, but breaking down problems necessarily requires some knowledge of code, otherwise you wouldn’t know where to stop. One of the examples I discussed with trainees is getting the denominator for calculating the average: through knowledge of the code we could stop at .length. Not sure how useful an observation this is, but I found it interesting nonetheless"
A very useful observation. I offer another one: it's not necessary to know the code, but to know there is something to know. When learning a new language, don't you endlessly google "loop over list in go" or "rust remainder how" ? Occasionally you discover there is no way to do that in the language, but mostly you do. The richer your programming knowledge is, the better those questions will get, but knowing to ask the question is the important step.
from syllabus.
One skill I feel like we don't currently teach at all, which may be useful to factor in: Solving a sub-problem outside of our main problem, then applying the insights gained to the problem.
For instance, if I'm trying to work out how to align things in a certain way in CSS, I'll typically make an empty file, add just elements, and work out how to align just the two elements in isolation, and then once I've worked out how to express that, fold it into the actual project I'm working on. Or if I'm trying to work out how to perform some numerical transformation, or use a new library, I'll typically write a small standalone program or function to experiment with, and then once I've worked out the details, apply that to my actual project.
In contrast, something I see a lot in CYF trainees is that code only ever gets added, and so we end up with hundreds of CSS rules many of which are unused or only work when sequenced with other rules which aren't an essential part of the solution but happen to be relied on. And also, that the act of working out the correct solution may be obfuscated by some other bug or confounding code which means that even though the right solution was worked out, it didn't happen to work in a larger project.
I'm not sure how to demonstrate and get people to practice "separate out a sub-problem" as a strategy, but it feels like it falls under the problem solving / breaking down problems heading...
from syllabus.
Capturing some notes from the discussion on Slack.
There was general agreement that problem-solving is a topic that we should include more of and that this was a useful starting point.
I managed to come along to the trial session that @moneyinthesky arranged for LDN10, and I thought it was great. I made some notes:
- Talking with the trainees, I tried to emphasise how problem solving is actually the “interesting bit” of development: we see so many trainees get caught up in syntax that they can’t move forward with a problem
- It’s not in the slides but @moneyinthesky pointed out that interviews are nearly all variations of this problem, so another area that I think we could emphasise
- I’d never really thought about it like this, but breaking down problems necessarily requires some knowledge of code, otherwise you wouldn’t know where to stop. One of the examples I discussed with trainees is getting the denominator for calculating the average: through knowledge of the code we could stop at
.length
. Not sure how useful an observation this is, but I found it interesting nonetheless
As I see it, there's a couple of things we need to decide to move it forward:
- Where could we fit this content into our existing modules structure?
- Do we think it could fit into our plans for restructuring the JS modules?
- What format should it take? (I.e. re-write out of the dreaded slides 🙀)
- Who is interested in taking this on? (It seemed like @SallyMcGrath & @illicitonion were interested. I'd be interested in helping where I can)
from syllabus.
I think that I've figured out how to make sense of flipped classroom, movable workshops, and a more flexible syllabus structure. Will demo next Syllabus
I look forward to this :)
It feels like we've noted some useful tactics on breaking down problems:
- Break down problems until you know how to solve them already
- Try to solve sub-problems in isolation
Are there any more? This does seem like an area we could focus our teaching on.
from syllabus.
Related Issues (20)
- Possibly install first timers bot HOT 3
- Broken video link in - JS 2 III (Study these DOM materials (1 hour)) HOT 2
- Typos and SPAG on Git Coursework Page
- Clear up old versions of Syllabus HOT 2
- The Missing Image in CSS Box Model Section (HTML & CSS - Week 1)
- The link in the homework is refer to the readme page which is not exist. HOT 1
- Rename `master` branch to `main` on Syllabus repo HOT 1
- Do something with js-exercises-tdd
- Curriculum re-write
- JS1 Week 1
- JS 1 Week 2
- JS 1 Week 3
- Change pg examples from callbacks to Promises
- JS 3 Week 1 Coursework link is broken HOT 1
- Personal development 2 link is broken HOT 3
- JS1 Sprint 2
- Images in "remote" repos with relative URLs aren't rendered correctly HOT 2
- How should we introduce Git branching strategies?
- Review and use the confidence content
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from syllabus.