The public parts of my notebook.
My homepage.
- The Practice is not the Performance: Why project-based learning fails
- Summary: deliberate practice is better than project-based learning.
- Center for Applied Rationality's training method (mostly purposeful practice)
- Break a skill into small components.
- Drill each component rapidly, with immediate feedback.
- Integrate the pieces together into larger components. Drill these larger components.
- An example of exaggeratedly inefficient project-based learning.
- Bob wants to learn more about network programming and also get better at working as part of a team. He decides to build a chat app with Alice. They make a spreadsheet of tasks. Alice claims most of the networking tasks. Bob ends up mostly working on the UI. They write some tests. Bob struggles a bit with this.
- Bob learned a bit about writing tests. He learnt a little bit about writing network code when he wrote the client protocol. He learned to not let someone else take all the tasks he was interested in.
- Reasons people say project-based learning is good
- Teaches technologies used in industry.
- Counter: technologies used in industry come and go, so learning them is only temporarily useful.
- Counter: using popular technologies is actually hampering because there are often better languages that express the core concepts directly and without extraneous components.
- e.g. It's easier to teach FP with Haskell than JS
- e.g. a video game designer can learn from classic board games that are much simpler than video games.
- e.g. a shot-putter doesn't practice shot-putting, they train their ability to produce power by lifting weights.
- Requires learners to do the activities people will do on the job.
- Counter: it's more effective to use deliberate practice than naively practice the whole skill at once.
- e.g. Musicians play scales and practice a measure repeatedly.
- The core elements of a learning environment
- Deliberate practice.
- A medium that expresses the concepts directly.
- A medium that doesn't obscure the concepts with extraneous components.
- Example of drills for the skills Bob wants to learn
- Write the networking component of a larger system.
- Write test cases for a small existing program that tempts you to make classic testing mistakes.
- Coordinate with coach to build something, committing pseudocode. The coach deliberately misunderstands your instructions and sees if you pick them up on it.
- Write small project in a team where tasks are divided up extremely small. Each person writes tests for another's code. (Integrates skills of 2 and 3.)
- Some more example drills
- Learn some of the pitfalls of naive information hiding, then try to solve information hiding problems in an example project.
- Type definitions and method signatures for a minesweeper game. If learner violates any design principles, coach gives them a feature request they won't be able to handle.
- Critique
- Examples of deliberate practice include an expert coach, which will always provide an advantage over an environment without an expert coach.
#notebook #medianotes