Skip to content
This repository has been archived by the owner on Feb 27, 2023. It is now read-only.

Checklist for a Lesson #9

Open
kabaros opened this issue Mar 25, 2017 · 5 comments
Open

Checklist for a Lesson #9

kabaros opened this issue Mar 25, 2017 · 5 comments

Comments

@kabaros
Copy link
Contributor

kabaros commented Mar 25, 2017

Please read the CONTRIBUTE guidelines

  • Create a Github issue for the specific lesson and label it as Lesson

    • Reference this Github issue in all your PRs and commits
    • Add the issue to the Syllabus project and make sure it is the right column in our board (ToDo, In Progress, In Review or Done) - Assign to yourself and others if relevant
  • Prepare the lesson: Start by drafting the Class outline, define the High level topics and their order, then follow this checklist to expand the Lesson's materials.

    • Lesson Objectives
      • Always start by clearly articulating what the students should learn by the end of the class
    • Lesson contents
      • Have a Brief intro to a topic then rely on the exercise to teach it
      • Prefer having pointers to good documentation rather than detailed explanations in the lesson contents.
    • Exercises
      • Make sure that in-class exercises build gradually and that they cover the materials explained
    • Homework
      • It should cover most of the topics of the lesson and build up towards a final solution
      • It should gradually build up in difficulty
      • It should ideally lead to the next class
      • We should have an (optional) stretch goal for advanced students
      • Students spend more time with the Homework than the actual class. Homework is very important.
    • Resources: Add links to resources about the topics covered in the class
      • Point to good resources (MDN not W3C!)
    • Research: Have topics for the students to research for the for next class
    • Prepare for next class: Let the students follow a tutorial or do some reading to prepare them for the next class.
  • Once a class Material, Exercises and Homework are finalised, make sure it is Peer Reviewed.

This is a template for what a class should look like and include - https://github.com/Code-Your-Future/syllabus/blob/master/lesson-template.md

This is a collaborative process (including this checklist) so please use the discussions to improve it.

@kabaros
Copy link
Contributor Author

kabaros commented Mar 26, 2017

Please also also add one of these badges at the top of your Lesson

@rarmatei
Copy link
Collaborator

This lesson plan seems great from a learner's perspective: straightforward topic explanation, no long slides, then exercise that focuses on the presented topic, with further resources for the student to learn "how to learn" by him/herself.

And I definitely agree with focusing on the homework, as we want the students to gain some independence in solving problems by themselves and not just follow instructions.

Two questions for now:

  1. When building the homework for a lesson, can we focus on exercises that we did not necessarily cover in the lessons? So for example in the HTML/CSS core lessons, we are introducing class and id selectors, but would it be ok to build a homework exercise that would require them to use first child selector <, or element attribute selectors [target]? I'm thinking this would push them to google/explore by themselves, and read up more on the resources we provide.

  2. How are we going to teach these lessons? Do we use the topics as guidance, but do live coding exercises in front of the class while talking about them? Or do we just talk about them verbally, and then help the students out when it's exercise time? If we're focusing more on live coding exercises, then I think we can update the "mentor guide" whenever we think a live coding exercise would be ideal for a specific topic, and that exercise would be. What do you think?

@kabaros
Copy link
Contributor Author

kabaros commented Mar 26, 2017

  1. Definitely. I would even say that the homework SHOULD have elements that were not covered in the class.

  2. The best classes we had in London were the ones with less talking and more live coding, followed by exercises. In the React classes, we explained a concept like State then applied it straight away live coding, then we ask them to apply it to an exercise that is quite similar, or to continue on the live coded example on a codepen. I think that worked very well.

I think the default for us should be to follow that pattern: Short explanation > Live coding (and code walkthroughs) > Exercises.

@johnmcc
Copy link

johnmcc commented Apr 10, 2017

I thought I might chime in with some of the things we found while teaching this stuff.

  1. While we don't specifically withhold information to be discovered by students themselves, we actively show them the documentation for the thing we're teaching, and show them how to read the docs. Reading documentation is a really important skill to learn, perhaps one of the most important.

  2. We follow a very similar teaching pattern that @kabaros has outlined. Outline the learning objectives ("By the end of this class, you should be able to...") > short explanation > live coding / code-along > exercises. We also have longer labs and pair programming exercises at appropriate points so that the students can put into practice what they've learned. And of course homework plays an integral part in consolidating what has been learned.

Some of the things that have come up regarding this style of teaching:

  • Around 45 minutes is the absolute maximum attention span, especially if the students are coding along. They really need a 10-15 minute break at that point.
  • Coding along is particularly difficult if the student's typing speed is slow. For this reason, we assess students' typing speed before the course begins. (And specifically, their coding typing speed, using something like typing.io.) This gives us an idea of who might need extra support during classes.
  • This style of teaching needs quite a high mentor / student ratio, just for circulating during classes and making sure everyone is keeping up. Because many people don't like to ask for help.

@kabaros
Copy link
Contributor Author

kabaros commented Apr 17, 2017

Please read the updated CONTRIBUTE guidelines

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

3 participants