Students will be able to...
- Use project planning skills to complete a larger project.
- Utilize loops, lists, and nested loops/lists to create a Tic-Tac-Toe game.
- 4.06 Slide deck
- Project spec - Tic-Tac-Toe (docx) (pdf)
- Project Spec - 2 Player Tic-Tac-Toe (docx) (pdf)
- Tic Tac Toe starter code
- Solution (access protected resources by clicking on "Additional Curriculum Materials" on the TEALS dashboard)
- Read through the handout, lesson, and project so that you are familiar with the requirements and can assist students
- Try creating your own variation on the Tic-Tac-Toe game so you are familiar with the potential challenges and bugs your students will hit
- Review 4 steps to solve any CS problem
- Editable grading rubric
Duration | Description |
---|---|
5 minutes | Do now |
10 minutes | Project overview |
30 minutes | Planning/design |
10 minutes | Debrief |
Duration | Description |
---|---|
5 minutes | Daily plan |
10 minutes | Review |
35 minutes | Project work |
5 minutes | Debrief |
- Hand out the project spec and have students start reading through it.
- Demo the Tic-Tac-Toe game.
- Go over all of the game rules and program requirements.
- Write down the 4 steps to solve any CS problem from memory.
- Draw out game play and consider the overall design.
- How will they represent the board?
- How will they have users input their spots?
- What functions will be needed to handle each user interaction?
- What variables will be needed?
- Set up the game board. Code the basic game loop asking players for input. Avoid code duplication: use the same code to handle the two different players.
- Create variables necessary to run the game. Start implementing basic functions.
- Focus on game play: 2 players should be able to play a game against each other.
- Create functions for checking if the game is over. Create a horizontal checker, vertical checker, and diagonal checkers.
- Connect the functions together and test functionality.
- Use multiple tests to check for different game-over conditions. Finalize project.
- Take time to go over questions and confusion relating to project requirements.
- Make sure to look over individual student project plans and check that they have outlined the project in a way that makes sense.
- At the start of Days 2-9, have each student refer to their original project plan, write down what they hope to accomplish that day, and assess their schedule to see if they are on track.
- Go over any parts of the program that the majority of the class is struggling with.
- Provide scaffolding and tips to students that are not on track for completion.
- Students can create a variable-sized board.
- The checkers can actually be done using one function, taking in starting x and y values and the change in x and y at each step.
- The planning phase of this project will be essential, especially for students who you think may struggle with this project.
- Provide more guidance and scaffolding to those students that need it.
Points | Percentage | Objective | Lesson |
---|---|---|---|
6 | 19 | Student uses for loops | 4.01 |
3 | 10 | Students can use the range and len functions |
4.02 |
3 | 10 | Students can use nested for loops | 4.03 |
3 | 10 | Student can use nested lists | 4.04 |
5 | 16 | Student can decompose a problem to create a program from a list of requirements | |
5 | 16 | Student uses naming/syntax conventions and comments to increase readability | |
25 | Total points |