# Python: Beyond the Basics Syllabus

# Lesson 1: Loops

This lesson will be focused on while loops and for loops.

Warm up: sharing a problem which requires loops to solve, and discussing possible ways to solve it. This is to introduce the students to the idea of a loop.

We will show a presentation on 10 different print statements versus one print statement. We will compare the efficiencies of this with both while loops and for loops. (25 minutes)

This concept is tricky, so we will give the students practice problems to think through and work on individually. (10 minutes) – taking from coding bat (put on replit. We can edit the problem so that there is no function to “return” anything, maybe just printing out the answer on the console).

We will put them into groups to work on the rest of the problems (20 minutes)

Then we will recap and explain the homework. (5 minutes)

**Homework**

Create your own program involving loops, strings, and lists. Bonus: Try integrating inputs into a loop!

# Lesson 2: Functions

This week we will start week one of two function lessons. Since functions are tricky, we will spend this class working as a class on all problems.

The warm up will be about long code blocks (probably from earlier classes). We will introduce the efficiency of functions as compared to the code blocks. (15 minutes)

We will do a short presentation on function syntax before revisiting and explaining the functions in the warm up (10 minutes)

We will solve a group problem, noting ways to break the big goal down into smaller functions and commenting these steps. (30 minutes)

Then we will recap and explain the homework. (5 minutes)

**Homework**

Solve some problem(s) with functions.

# Lesson 3: More Functions

This week will continue on the function lesson from last week – with parameters.

Warmup: we will project a problem on the screen with lots of repetition (ex. Sally is 5 but Jason is 8, and they need their ages printed onto a console) and discuss a function that could solve the problem. (10 minutes)

We will continue with the presentation on parameters. We will do a live coding demonstration of the warmup so that we can plug in names, ages, etc. (15 minutes)

We will go back to the project done in week 2, which was to transform a data type to reveal a mystery message. The students will go into breakout rooms to write a function that does this same task. (10 minutes)

Then we will recap and explain the homework. (5 minutes)

**Homework**

Solving challenge problem(s) with functions. These problems will be taken from coding bat or another resource.

We could potentially open all the problems on coding bat, and have each person choose one problem of their choice and one class problem.

# Week 4: Final Project

This week, we will introduce and work on the final project. Students will be encouraged to work with a partner or group of three, but may work individually if they would like.

This project will be fairly open-ended. Purpose, theme, and characters are all up to the student. We will suggest possible ideas, such as having a user input or taking in a data type and returning a property of it. They may upgrade another game or project they’ve started in the past or start a new one. However, we will provide a list of required pieces of code (at least one function, one loop, etc).

After explaining the project, students will split up into breakout rooms and we will spend the rest of class checking in on each group.

Then we will recap and explain the homework. (5 minutes)

**Homework**

Finish Project!

# Lesson 5: Python and Beyond

This will be our final lesson! We will discuss how to move forward with our computer science knowledge and show some cool concepts of computer science.

Warmup: Share out the final projects! (10 minutes)

We will briefly talk about future projects we could do after this class. (5 min)

We will give a brief introduction on how to use the terminal, a powerful computer science tool. We will share this engaging game, which gives a thorough introduction to the terminal! https://overthewire.org/wargames/bandit/ (10 minutes)

This website, which we will share with the students, has more information to learn about Python: https://www.pythonlikeyoumeanit.com/ We will also introduce how to download python and use interfaces such as jupyter notebooks. (10 minutes)

We will demonstrate cool Python modules such as numpy arrays, matplotlib, and Python imaging library. (15 minutes)

We will briefly go over other resources such as Coursera to learn more about computer science. (5 minutes)

We will send a feedback survey, say any parting thoughts, and finish the class! (5 minutes)