Lesson Plan

Coding & Programming: An introduction

How to set up a self-paced student driven workshop in Programming Concepts
Clinton W.
Classroom teacher
Show More
My Subjects English Language Arts, Math, Science, Arts

Students will...

  • develop an understanding of programming & computational concepts.
  • develop fluency with computational concepts (i.e. sequence, loops, events) and practices (i.e. iterative and incremental development, testing and debugging, reusing and remixing).
  • use observations of examples of effective and ineffective design to develop strategies to improve communication, sustainability, and usability.
English Language Arts
Grades 5 – 8
All Notes
Teacher Notes
Student Notes

1 Hook

I have used Edmodo, My Big Campus, & even Moodle to accomplish this first activity. You use what works for you. If your school uses an LMS, that would work best, but this can be accmplished in a social network-style environment as well. 


  1. Facilitator: Embed the film, Code Stars (also available on Schooltube), in a discussion post with a discussion question similar to this:
  2. Students: After watching the film, answer the following questions in reply to this discussion. Write your answers in conversational paragraph format. Please no Q&A style numbered or bulleted lists. 
    • What was the most surprising thing you heard in the film? Do you agree that everyone should learn this skill (why / why not)? Did the life of a programmer look appealing to you at all (why / why not)? 
    • If you are interested in a career in programming, what field would you like to work in? (eg: Game Development, Web Design, App development, IT, Medicine, Software engineering, etc.)
  3. Facilitator: You may want to encourage students to reply to each other's posts if you see fit.


Does it grab students' attention and capture their interest?

If students are not intrigued by the concepts discussed, they are typically roped in by the amazing office spaces shown in the video, such as Valve's office

Does it make a connection with prior knowledge?

The video does connect with concepts students have already learned in math class. It also places programming in the context of things the students are familiar with and interact with every day. In my class, students learn about some of the concepts of eLearning, including threaded online discussion. This activity reinforces that skill. 

Does it motivate students to want to learn more?

I think it is very hard to watch this video and not want to learn something about coding and programming. 

2 Direct Instruction

Activity: Exploring


  1. Facilitator: Go to Code.org's Intro to CS teacher sign-up page and sign up.
  2. Facilitator: Distribute your class's unique code to students in a secure way, such as:
    • Your whiteboard
    • A password protected Google document
    • Your Edmodo / My Big Campus group
    • Your LMS (Moodle, Canvas, D2L, etc.)
  3. Students: Go to our Intro to Computer Science course at Code.org
    1. Enter ________ as your code & Sign up.
    2. Complete Stages 1 & 2 
  4. Facilitators: There are two unplugged activities for further practice in computational thinking provided in stages 3 & 4. I have found these to be interesting activities but not essential to the flow of this unit. I would save them for a day / time when you feel students need a screen break. If you have a flexible Maker-style environment, these activities can easily be set up as stations. 



Are new concepts introduced and/or being presented in a novel way?

Yes. Students are introduced to core computer science and programming concepts in this course in an interactive format with clear video examples, starring celebrities from the tech industry to sports to popular culture. 

Are concepts and processes clearly outlined and modeled?

You bet they are! Again, the videos and activities are clear, entertaining, and interactive. 

Does it provide concrete examples of the desired outcome(s)?

Each activity in this opening sequence provides students with a clear goal, which is often demonstrated and built upon. 

3 Guided Practice

Activity: Exploring

In this section, students continue the lessons began in the "Direct Instruction" section. Disclaimer: I am a constructivist. I do not believe that Instruction and practice can be separated. 


  1. Students: Return to our Intro to Computer Science course at Code.org
  2. Students: Complete the remaining odd stages (5-19) at your own pace.
  3. Facilitators: Again there are unplugged activities for further practice in computational thinking provided in the even numbered stages. In order to keep this course self-paced, allowing students freedom in progression, these should be ignored (they're not that great) or set up as stations. 



Does it provide multiple opportunities to practice, with scaffolding from easy to more difficult?

Again, the activities are clear, entertaining, and interactive. Each concept is introduced, practicied and expanded in complexity and relation to other activities.

Does it check for understanding?

Yes. Students must nail the concept complete the activities. Teachers have full stats on what students are doing.

Is there an opportunity for students to question and get clarification?

There are built-in help videos on each topic that can be accessed at any time. I recommend completing the course yourself in order to be able to provide timely help a feedback for students as you circulate around the room.

4 Independent Practice

This section allows students to apply what they've learned  and experience programming concepts through blocks-based programming. Alternately, you could use Tynker, Stencyl, or App Inventor here. 


  1. Facilitators: Join Scratch (button on the upper right) & familiarize yourself with the workspace.
  2. Students: Join Scratch (button on the upper right)
  3. Everyone: Need a quick reference. Try the scratch cards. (there should also be printed copies available in the lab)
  4. Students: Complete any three challenges from the list below. (Facilitators: You can increase or decrease this number as fits your class).
    • Whenever you press the B key, the sprite gets a little bigger. Whenever you press the S key, the sprite gets a little smaller.
    • Whenever the sprite hears a loud sound, it changes color.
    • Whenever the sprite is in the top 25% of the screen, it says “I like it up here.”
    • When the sprite touches something blue, it plays a high note. When the sprite touches something red, it plays a low note.
    • Whenever two sprites collide, one of them says: “Excuse me.”
    • Whenever the cat sprite gets near the dog sprite, the cat turns and runs away from the dog.
    • Whenever you click on the background, a flower appears at that spot.
    • Whenever you click on a sprite, all other sprites do a dance.
    • When the score reaches 10, the scene (background) changes.
    • The sprite falls as if controlled by gravity, but stops when hits the green ground.
    • The sprite follows the mouse-pointer, but it never gets too close to the mouse-pointer.
    • The sprite follows a red line.
  5. Students: Publish / Share your completed challenges and post them on Edmodo (My Big Campus etc.) so that your classmates can give feedback. 


Does it give ample opportunities for individualized practice?

Yes. Students can directly apply concepts learned in Direct Instruction and Guided Practice in developing their own creations.

Can students display mastery?

With Scratch 2, sharing / publishing is simple. Students can easily demonstrate mastery to facilitators and peers.

Does it provide a form of assessment (diagnostic, formative, or summative; authentic/performance)?

With this authentic assessment, students can easily develop their own programs that can be run and viewed by others.

5 Wrap-Up

Free, Free to try, Paid

There are a lot of opportunities for extension and project-based learning here. Again, students could could use Scratch, Tynker, Stencyl, or App Inventor here to develop their own project. Perhaps a:

  • A game with a way to win.
  • A cartoon that tells a simple story.
  • An app that helps you get to the cafeteria...

Code Academy

If you want to take the next stem to full-blow coding, I would recommend busting out Code Academy.

Procedural goodness for students:

  1. Go to Code Academy and try the initial activities.
  2. Create an account at Code Academy. (you can sign in with your Google Apps account)
  3. Choose a Track. Each track has an explanation of it's benefits.
  4. Complete one Unit. (See the picture to the right...)
  5. Take a screenshot of your badges.
  6. Blog about your experiences so far and what you learned.
  7. Include the screenshot of your badges in your post.

Other resources and assorted awesomeness:

  • See Introduction to Computer Programming by Marcello S. for a complete App Flow with code academy.
  • I hope to post an app flow soon on Code Combat, which is a multiplayer coding game... w00t!

Good luck, and DFTBA!