> For the complete documentation index, see [llms.txt](https://cs-kickstart.gitbook.io/expansion/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cs-kickstart.gitbook.io/expansion/curriculum/python/python-2.md).

# Python 2

## Day 2: Deeper Dive into Python

### Session Outline

1. Recap of Day 1
2. Review of Data Types, Arithmetic and Comparison Operators
3. Introduction to Functions
4. Writing, Defining, and Calling Functions
5. Exploring Built-in Functions
6. Nested Expressions and Examples
7. Understanding While Loops
8. While Loop Exercises
9. Python Practice with Example Problems

### Detailed Agenda

1. Recap of Day 1:
   * Briefly review the key topics covered on Day 1, including data types, arithmetic and comparison operators, variables, conditionals, and basic Python syntax.
   * Address any questions or concerns from the previous session to ensure everyone is up to speed.
2. Review of Data Types, Arithmetic, and Comparison Operators:
   * Recap the various data types covered, such as integers, strings, booleans, and lists.
   * Revisit arithmetic operators, including regular division (/), integer division (//), and modulus (%).
   * Review comparison operators, such as less than (<), less than or equal to (<=), and not equal to (!=).
   * Reinforce the difference between the assignment operator (=) and the equality operator (==).
3. Introduction to Functions:
   * Explain the concept of functions, their purpose, and when to use them in programming.
   * Discuss the idea of inputs and outputs in functions, emphasizing how functions can manipulate data.
   * Demonstrate how to write, define, and call a function in Python.
   * Encourage students to think about how functions can be used to organize code and make it more reusable.
4. Writing, Defining, and Calling Functions:
   * Provide step-by-step guidance on writing, defining, and calling functions in Python.
   * Illustrate the syntax and structure of function definitions, including parameter declarations.
   * Guide students through practical examples of creating and using functions to solve specific problems.
5. Exploring Built-in Functions:
   * Introduce built-in functions available in Python to perform common tasks.
   * Present examples of built-in functions and explain their usage and parameters.
   * Encourage students to explore the Python documentation and discover additional built-in functions.
6. Nested Expressions and Examples:
   * Illustrate nested expressions by chaining multiple built-in functions together.
   * Provide examples of increasingly complex nested expressions and challenge students to solve them.
   * Foster problem-solving skills by encouraging students to break down nested expressions into smaller steps.
7. Understanding While Loops:
   * Introduce the concept of while loops as a control flow structure.
   * Provide a visual flowchart of a while loop and explain its components.
   * Present example code and demonstrate how while loops work, including the condition, body, and loop termination.
8. While Loop Exercises:
   * Engage students in while loop exercises to reinforce their understanding.
   * Examples may include counting numbers, determining the number of digits in a number, or any other suitable exercise that utilizes while loops.
9. Python Practice with Example Problems:
   * Provide example problems that require the use of concepts covered during the session, such as writing a countdown program or generating a triangle of stars.
   * Encourage students to apply their knowledge and problem-solving skills to tackle the example problems.
