Skip to content

Instantly share code, notes, and snippets.

@tetondan
Last active June 19, 2018 21:54
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tetondan/c5ef3989d9472da683bf692855ae65b0 to your computer and use it in GitHub Desktop.
Save tetondan/c5ef3989d9472da683bf692855ae65b0 to your computer and use it in GitHub Desktop.
Code Challenge Solution Lecture Notes

Here is a list of some things to think about to prepare and deliver a code challenge solution lecture. This is by no means a definitive list. This is mearly a list of suggestions. Please incorporate your own style into your lecture.

I feel that code challenge solution lecture serves two purposes:

  • First (obviously) is that they deliver the solution to the students and get them to think about different ways to approach algo problems.
  • Second (just as importantly), is for you to get practice delivering a solution in front of people, explaining the pros and cons of a solution, and explaining the time and space complexity. They give you practice getting suggestions and trying to implement them on your own in front of people, in real time.
  • This is amazing practice for job interviews. You will be required to do all of this and not have a solution in front of you!

Suggestions for preparing and delivering a CC solution lecture:

  • Take 30-60 mins the day of(or evening before) your CC to study the problem. I suggest trying to come up with your own solution first. But look at the model solution as well. Know it and why it is working. This will prepare you for inevitable questions you will receive.
  • Turn your camera on.
  • Greet the students and give an informal poll in Slack (poly, thumbs up/down, etc) on how they did (completed?, how hard was it?, etc).
  • Start by discussing the problem and how you would approach it.
  • Break the problem down into easily digestable steps using psuedocode explaining the steps as you go.
  • Once you have broken it into steps go back and start replacing your psuedocode with real code.
  • Complete the solution.
  • Discuss the advantages and disadvantages of your solution. Ask the students for their take on the (dis)advantages of the solution.
  • Discuss the time and space complexities of your solution (Big O). Ask the students for their take on the t/s complexities.
  • Open it up for discussion/questions with the students.
  • Ask the students for their solutions, if they are different than yours.
  • Discuss one or two of their solutions with them. Ask the class to comment on the solutions.
  • Don't be afraid to 'fail' in front of the students. You are only human, just keep in mind the more you practice, the better you will get. This skill is going to be extrememly useful when you start interviewing.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment