Skip to content

Teachers

Rebecca Dang edited this page Apr 13, 2020 · 3 revisions

Here are some resource articles if you're using this repository to teach Java and FTC programming.

Lesson Tips

If you're a teacher, here are some tips to keep in mind when using this code in conjunction with your lessons:

  • Live coding > just displaying code. Live coding allows students to process what the code is actually doing and keeps them more engaged than reading code. Also, encourage students to code along with you - just make sure you're not going too fast that they can't think about what they're copying down.
  • Slow down, check in. If you find yourself lecturing for over 5 minutes, it's usually a good idea to stop, take a breather, and ask if anyone has any questions. Sometimes students will be shy or afraid to interrupt you, and it's important to let them know that you care about their understanding and will help them master these topics.
  • Don't information overload. Aim for lessons that are no more than 1 hour, give or take. This allows people to process and better retain information. Past that, students may get bored or will struggle to comprehend everything. Quality over quantity!
  • The best way to learn programming is to program. Lecturing is fine (if you do it right), but ultimately what will make your students grasp these topics is applying their knowledge to real-life situations.

Suggested Lesson Flow

  1. Warm-up program for students to complete. This is usually to review last lesson's topics and get them engaged from the get-go. Some warm-ups can be found under the practice package of each unit.
  2. Lesson. Show/live code example programs to demonstrate new concepts. Lesson code can be found under the lessons package of each unit.
  3. Practice. Give students a programming problem for them to attempt to complete on their own. This allows them (and you) to test how much they retained during the lesson and reinforces concepts. If you want to live code your own solution with them, that's great too! Practice problems can be found under the practice package of each unit. Problem statements should be in a multi-line comment near the beginning of the program.
  4. Discuss. Once most/all students are done with their solution, ask them to share their code with everyone. Look over their code and encourage students to do the same. Encourage the student who is currently sharing to explain their thought process. Check for errors, and be understanding, not punitive, when pointing them out. Also make sure their programming style is good - they should have comments, indent properly, etc. At the very end, you should share your solution (or the solution code provided in the HowToCode repository) and explain it. This is perhaps the most important part of the lesson, because it gives everyone a chance to evaluate their work and also see how other people may have solved the problem differently.

Assessment

I personally think that the best way to test someone's programming skills is to give them a challenging problem and have them solve it with a program. Of course, the problem should be within their means of solving - that is, they should know everything they need in order to code it. Any of the programs in the challenge package of each unit should be sufficient for testing students' skills.

However, there are other ways to check students' progress. I've created Google Form quizzes that are linked in the Students > Quizzes section. Students taking them can view the results immediately after submission, and for certain tricky questions I've provided answer feedback to hopefully clear up any confusion. They should take students no more than 5-10 minutes to complete.

Clone this wiki locally