<!---
This guide was developed by Susi Remondi for COHORT NAME / DATE / LOCATION HERE.

Questions? Comments?
1. Log an issue to this repo to alert me of a problem.
2. Suggest an edit yourself by forking this repo, making edits, and submitting a pull request with your changes back to our master branch.
3. Hit me up on Slack @susiremondi
--->

![](https://ga-dash.s3.amazonaws.com/production/assets/logo-9f88ae6c9c3871690e33280fcf557f33.png)

### Welcome to Python Programming: Notes for Running This Course

# Python Programming

This file has important information on running the Python Programming course. [As well, read the Instructor Guide](README.md), with a more high level (but equally important!) overview, including a schedule.

### Notes for Running Python Programming Successfully

- **Units labs**: Present the slides as normal. Be sure to update the work slide with the location of the lab file if necessary. Help students set up the  starter code, if need be. Then, the lab files have thorough instructions; students will work on these on their own. At the end of the time, go over the solution. Link if needed.
- **Project**: There's one project at the end of the course, but mention it throughout the course to get students thinking about what they want to do. On that project, point students to the project prompt. Briefly review it, then encourage them to come up with their own idea and work on it. Walk around the room and offer help and pointers where needed.
- **Lesson plans**: At the top of each lesson slide markdown file, there is a hidden comment (so view the raw markdown) with notes, agenda, etc for that lesson.
- **Deploying and modifying the slides**: See the [`readme` in the `presenting-and-creating-materials`](presenting-and-creating-materials) directory of this repo. With the exception of the `welcome` presentation, which requires customization, it is possibly to run all slides directly from the deployment folder (upon hosting to Heroku). If using the recommended Reveal.js, remember to go to the `/instructor` endpoint and hit `s` to view speaker notes.
- **Speaker Notes**: As said above, each slide has teaching tips and recommend talking points / sentences. If using the recommended Reveal.js, remember to go to the `/instructor` endpoint and hit `s` to view speaker notes.
- **Homework**: The students don't need to turn anything in for this, and you don't need to grade it. However, make sure you stress that they should do this for the extra practice and that you'll go over it in the next class. First thing in the next class, spend half an hour or so going over it - for the 5-day full time delivery, this time is allotted in the schedule. Ask if there were questions or problems. Present each solution and run it with different values so students can see it working.

### General Teaching Tips:

- "Learning Objectives" means "This is what the student is expected to know at the end of this lesson." Check for understanding!
- For all code examples, walk through clearly to be sure everyone understands. Make the example more complex if needed.
- On repl.it embedded slides, do it with them on the slide. Encourage experimentation. Encourage typing new examples from scratch, so students get used to typing the code.
- Always see if students can guess how to do things. Whenever there's a question on the slide, even if it isn't labelled as a discussion  slide, pause and encourage participation.
- **Parking lot info:**
  - Use the parking lot!
  - Be mindful of time and avoid going on too many tangents.
  - Try to answer student questions with short and comprehensive answers, but if they are getting off topic or getting ahead of themselves, write down the question in a `parking lot`. This is usually a spot on the whiteboard in plain view. You can use this to reassure students we will get back around to their question, even if we don't immediately have time for it.
  - If a question in the parking lot is about a subsequent lesson, you may just want to mention that to students, ask them to wait, and after going through the subsequent lesson in question, follow up with the student to see if the topic was covered to their satisfaction. If not, then that is a good time to dive deeper. Otherwise, if a question in the parking lot is completely tangential and won't be covered at all in the class, you may just want to follow up with the student personally on a break. Alternatively, if you think more folks in the class might be interested, you can post a link to extra information in your Slack channel or whatever you are using as a central communication hub for the course.


*Copyright 2018, General Assembly Space. Licensed under [CC-BY-NC-SA, 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/)*
