Skip to content

Commit

Permalink
updating content
Browse files Browse the repository at this point in the history
  • Loading branch information
dmccreary committed Sep 12, 2024
1 parent b15539c commit 8cbfdd5
Show file tree
Hide file tree
Showing 3 changed files with 131 additions and 1 deletion.
5 changes: 5 additions & 0 deletions docs/strategy/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Teaching Strategies

## Order of Concepts

[Order of Concepts](oder-of-concepts.md)
123 changes: 123 additions & 0 deletions docs/strategy/oder-of-concepts.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
# Order of Concepts

## Intro

What is the role of visual feedback in teaching beginning Python?

## No Visual Feedback


```
What are the key concepts in learning Python for a 9th
grade student in the US? List the concepts in the order
they should be taught and add justification for ordering.
```

1. Introduction to Programming and Python

Justification: Begin by explaining what programming is and how it allows us to communicate instructions to a computer. Introducing Python's simplicity and readability sets a positive tone for beginners.
2. Setting Up the Development Environment

Justification: Before coding, students need to install Python and set up an Integrated Development Environment (IDE) or use an online coding platform. This ensures they're ready to practice coding examples.
3. Basic Syntax and Output with print()

Justification: Learning how to display information is fundamental. The print() function is simple and provides immediate visual feedback, which is motivating for new learners.
4. Variables and Data Types

Justification: Variables store information that programs manipulate. Understanding data types like integers, floats, strings, and booleans is essential for handling different kinds of data.
5. Basic Operators and Expressions

Justification: Operators allow students to perform calculations and manipulate data. This includes arithmetic operators (+, -, *, /) and logical operators (and, or, not).
6. User Input with input()

Justification: Allowing programs to accept user input makes them interactive. Learning to use the input() function helps students understand how to receive and process external data.
7. Conditional Statements (if, elif, else)

Justification: Conditionals introduce decision-making in programs. They allow the code to execute different actions based on certain conditions, which is critical for dynamic programming.
8. Loops (for and while Loops)

Justification: Loops enable code to be executed repeatedly without redundancy. Understanding loops is key for tasks that require iteration, like processing items in a list.
9. Lists and Basic Data Structures

Justification: Lists store collections of items. Introducing lists teaches students how to handle multiple pieces of data efficiently.
10. Functions and Modular Programming - Justification: Functions promote code reusability and better organization. Learning to write functions helps students break down complex problems into manageable pieces.

11. Introduction to Modules and Libraries - Justification: Python's strength lies in its extensive libraries. Teaching how to import and use modules like math or random expands the functionality available to students.

12. Basic File Input/Output - Justification: Reading from and writing to files allows programs to handle data persistence. This is important for applications that need to save or load data.

13. Error Handling with try and except - Justification: Errors are inevitable in programming. Learning to handle exceptions makes programs more robust and helps students debug their code effectively.

14. Dictionaries and Sets - Justification: These data structures are useful for storing data in key-value pairs (dictionaries) and for handling unique items (sets). They broaden the ways students can manage data.

15. Introduction to Object-Oriented Programming (OOP) - Justification: OOP introduces classes and objects, allowing for more complex and scalable code. A basic introduction prepares students for advanced programming concepts.

16. Developing a Simple Project - Justification: Applying learned concepts in a project reinforces understanding. It provides practical experience and a sense of accomplishment.

17. Review and Next Steps - Justification: Reviewing consolidates knowledge. Discussing next steps keeps students motivated to continue learning, possibly introducing topics like web development or data science with Python.

By following this progression, students build a strong foundation in Python programming. Each concept builds upon the previous ones, ensuring a smooth learning curve tailored for 9th-grade students.


## With Visual Feedback

```
Now assume that all students have access to the
trinket.io website that allows students to learn
using turtle graphics to get fast visual feedback.
Generate a list of the key Python concepts and the
order they should be taught.
```

1. Introduction to Programming and Python

Justification: Start by explaining what programming is and introduce Python as an accessible language for beginners due to its readability and simplicity.
2. Setting Up the Development Environment on Trinket.io

Justification: Guide students on how to use Trinket.io for writing and running Python code, specifically leveraging its support for turtle graphics to provide immediate visual feedback.
3. Introduction to Turtle Graphics

Justification: Begin coding with turtle graphics to engage students visually. Drawing simple shapes helps them understand basic programming concepts in an enjoyable way.
4. Basic Syntax and Turtle Commands

Justification: Teach fundamental Python syntax through turtle commands like forward(), backward(), left(), and right(), which illustrate function calls and parameters.
5. Variables and Data Types

Justification: Introduce variables to store values that control turtle movements (e.g., distances, angles). Cover basic data types like integers and floats in this context.
6. Loops with Turtle Graphics (for and while Loops)

Justification: Use loops to create patterns and complex shapes, demonstrating iteration in a visually engaging manner.
7. Functions and Code Reusability

Justification: Teach how to define functions to encapsulate code for drawing specific shapes or patterns, promoting modular programming and code reuse.
8. Conditional Statements (if, elif, else)

Justification: Introduce decision-making by changing turtle behavior based on conditions (e.g., drawing different shapes based on user input).
9. User Input with input()

Justification: Make programs interactive by allowing users to influence turtle drawings, enhancing engagement and understanding of input handling.
10. Lists and Data Collections - Justification: Teach lists by storing sequences of colors, movements, or shapes for the turtle to use, illustrating how to manage collections of data.

11. Randomness and the random Module - Justification: Use the random module to add unpredictability to turtle drawings, making programs more dynamic and fun.

12. Advanced Turtle Graphics Techniques - Justification: Explore advanced features like setting pen size, colors, filling shapes, and using loops to create intricate designs.

13. Error Handling with try and except - Justification: Introduce error handling to make programs more robust, especially when dealing with user input that affects turtle actions.

14. Introduction to Object-Oriented Programming Concepts - Justification: Provide a basic understanding of objects and classes by explaining that the turtle itself is an object with methods and attributes.

15. Basic File Input/Output (Optional based on Trinket.io capabilities) - Justification: If supported, teach how to read from and write to files to save or load data that influences turtle drawings.

16. Developing a Comprehensive Turtle Graphics Project - Justification: Apply all learned concepts in a final project where students create their own complex drawing or simple animation, reinforcing their skills and creativity.

17. Review and Next Steps - Justification: Summarize the key concepts covered and discuss how these skills can be applied to other areas of Python programming, encouraging continued learning.

By incorporating turtle graphics early and throughout the curriculum, students benefit from immediate visual feedback that enhances understanding and keeps them engaged. This progression builds foundational Python skills while leveraging the interactive capabilities of Trinket.io, providing a tailored and effective learning experience for 9th-grade students.







```
4 changes: 3 additions & 1 deletion mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,9 @@ nav:
- Advanced Python:
- Stock Ticker Analysis: advanced/stocks.md
- MNIST Digit Prediction: advanced/mnist.md

- Strategy:
- Introduction: strategy/index.md
- Order of Concepts: order-of-cocepts.,d
- Contributing:
- How to Contribute Examples: contribute.md
- Contact:
Expand Down

0 comments on commit 8cbfdd5

Please sign in to comment.