You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

644 lines
12 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!--
title: Welcome to Python Programming!
type: lesson
duration: "01:00"
creator: Brandi Butler
-->
## ![](https://s3.amazonaws.com/python-ga/images/GA_Cog_Medium_White_RGB.png) {.separator}
<h1>Welcome to Python Programming!</h1>
<!--
## Overview
This lesson serves as the kick-off to your Python Programming class. Whether youre delivering this course online or in-person, in a 1-week accelerated for 10-week format, take the first hour or so of your time together to get things started on the right foot.
This lesson is designed to introduce yourself, GA, and get the students comfortable and excited to learn. Following that, there's a brief review of the pre-work.
## Learning Objectives
In this lesson, students will:
- Define class expectations and norms.
- Understand key concepts introduced in the pre-work
## Duration
60 minutes
## Suggested Agenda
| Time | Activity |
| --- | --- |
| 0:00 - 0:10 | Welcome |
| 0:10 - 0:12 | About General Assembly |
| 0:12 - 0:14 | The Road to Success |
| 0:14 - 0:16 | Course Structure |
| 0:16 - 0:18 | Your Final Project |
| 0:18 - 0:20 | Tools We'll Use |
| 0:20 - 0:50 | [Pre-Work Recap](#activity-prework-recap-30-min) | Review the pre-work and level set. |
| 0:50 - 1:00 | Q&A + Close |
## Before Class: Preparation
- Update the slides that follow with specific information about you, your class, your city and your local support team.
- Take some time to consider your expectations for learners and be prepared to talk about them.
- Choose an ice breaker to run that will allow learners to get to know one another in a fun, informal, low-stakes way. We have a list [here](https://docs.google.com/presentation/d/1a91IqhzijI_3EqU-trJbZN4vDDSU0rXqgIrqGwsWM7I/edit) of fun activities - and other good slides to copy - for the students for you to choose from. And if you have some good ones, feel free to share your ideas with us!
- Before class, review completion data to understand how far your learners have progressed through the myGA prework.
-- If most of your learners have completed all of the prework, you should be able to breeze through this lesson very quickly.
-- If most of your learners have not completed all of the prework, you might want to spend more time on this lesson and reduce your timings for the rest of the lessons in Unit 1.
## In Class: Materials
- Projector
- Internet connection
-->
---
## Agenda
*Here's what we'll cover:*
- Instructional team and classmate introductions.
- About General Assembly.
- Course structure.
- The final project.
- Key concepts from the myGA prework.
<aside class="notes">
**Talking Points**:
- Were so excited to have to you here today.
</aside>
---
## Meet Your Instructor
**{Insert your name.}**
- [{Insert email address.}](link)
- {Insert key facts about yourself and your career:
- Current role.
- Cool companies/brands youve worked with.
- One fun fact (Keep it classy!).}
<aside class="notes">
**Talking Points**:
- Talk about the instructors role as the instructional team “lead.”
</aside>
---
## Meet Your Support Team
**{Insert IA's name.}**
- [{Insert email address.}](link)
- {Insert key facts about yourself and your career:
- Current role.
- Cool companies/brands youve worked with.
- One fun fact (Keep it classy!).}
<aside class="notes">
**Teaching Tips**
- Duplicate this slide for each IA or classroom member you want to introduce.
</aside>
---
## Front Lines
Have a question about:
- The campus?
- Lost and found?
- Loaner equipment?
- Free coffee and snacks?
Come here to talk to Front Lines and they will help you out.
{Picture of the local front lines desk}
<aside class="notes">
**Teaching Tips**:
- Introduce anyone here; see the next slide for a template.
</aside>
---
## More Great People
{Bullet list of names and roles}
<aside class="notes">
**Teaching Tips**:
- These are common faces on campus the students should know about.
</aside>
---
## Classroom Culture
Lets all agree to:
- Treat each other with respect
- Avoid bringing distractions into class
- {Add more…}
<aside class="notes">
**Talking Points**:
- Add any rules you'd like to here.
</aside>
---
## More Great People: You! Meet Your Classmates
Please share:
- Your name.
- Why youre taking this course.
- Your favorite comfort food.
<aside class="notes">
**Teaching Tips**:
- Come up with a few icebreakers of your own and add the slides below!
</aside>
---
## Icebreakers
{Insert some fun icebreakers here!}
---
## What is General Assembly?
- More 20 global campuses across 6 countries.
- Thriving alumni community of 50,000+ full- and part-time graduates.
- Corporate training with 350+ companies, including 39 of the Fortune 100.
- 500,000+ attendees at bootcamps, workshops, and events.
<aside class="notes">
**Teaching Tips**:
- Go through this section quickly. Students have probably heard this information before in info sessions or via the GA website.
</aside>
---
## What is General Assembly's Mission?
> "GA was founded on the principle of empowering people to pursue the work they love. Since we opened our first campus in 2011, we have had the privilege of working with students, governments, and the worlds largest companies to create opportunities to radically transform careers and economic prospects." - Jake Schwartz, Founder + CEO, General Assembly
<aside class="notes">
1 MINUTE
**Teaching Tips**:
- Rather than reading the quotation out loud, take this opportunity to share with students your own reasons for being part of GAs mission.
</aside>
---
## Student Experience
Come work on campus!
Were open:
- {8am - 10pm, Monday to Friday}
- {10am - 6pm, Saturday and Sunday}
<aside class="notes">
**Teaching Tips**:
- If this is the five day full time, delete this slide - students won't need to take advantage of this.
</aside>
---
## Map of the Campus
{If possible; otherwise, remove this slide}
<aside class="notes">
**Talking Points**:
- Point out restroooms, front lines, the classroom, and the kitchen, and where they could come work, if that slide is left in.
</aside>
---
## Snack Calendar
Theres a lot of work ahead, and youre going to need fuel.
{Link to snack calendar}
<aside class="notes">
**Teaching Tips**:
- Remove this slide if there are no snacks available to them.
</aside>
---
## Moving on to Course Specifics...
Okay, GA is cool!
The classmates are cool.
Let's talk about the course.
<aside class="notes">
1 MINUTE
**Teaching Tips**:
- Transition to talking about GA in general back to the Python course.
</aside>
---
## Computer Setup
We are expecting that:
- You are on a Mac, PC, or Linux machine
- You can get to the internet!
- You have Slack.
*Wi-fi: GA-GUEST*
*pw: yellowpencil*
<aside class="notes">
**Teaching Tips**:
- Make sure all students are set up on Slack and connected to the network.
- Change the wifi if needed!
</aside>
---
## Office Hours
Help us help you!
{Mondays / Wednesdays}:
{5:30pm - 6:30pm}
<aside class="notes">
**Teaching Tips**:
- You won't have these in the 5 day delivery! Delete this slide if so.
</aside>
---
## How to get a certificate of completion
1. Complete 80% of the homework
2. Dont miss more than 3 classes
3. Complete the final project
<aside class="notes">
**Teaching Tips**:
- This slide is on how to get a certificate of completion. If it's different, change it!
</aside>
---
## Course Materials
{Instructor note: This is your call! Choose ONE of the below}.
- Lessons for the day will be linked at the beginning of the day.
or
- Lessons for the course will can be viewed here - don't go too far ahead!
or
- Each lesson will be shared before the lesson.
The lessons are interactive to give as much programming practice as possible, so be sure you get the links and follow along!
<aside class="notes">
**Teaching Tips**:
- Choose one of the above. Then, take this time to give out the links if necessary.
- If you're using Heroku, you should have a landing page with all slide links! You can share that.
</aside>
---
## Homework
Homework:
- Isn't graded, but is good practice.
- We will go over it the next class!
<aside class="notes">
**Teaching Tips**:
- Homework notes are in the specific course details doc.
</aside>
---
## Your Final Project
- Each day, youll build skills in Python and understand different ways in which you can use it to build applications.
- At the end of {Day 4 or the 9th week}, youll choose a final project focus.
- On {Day 5 or the 10th week} in class, youll build an application in Python based on your project focus area.
- At the end of {Day 5 or the 10th week}, youll demo your project for the class.
<aside class="notes">
2 MINUTES
**Teaching Tips**:
- Explain details of the final project, {updating this slide to reflect your own expectations if needed}.
- Encourage students to think throughout the course of what they want to build.
</aside>
---
## Okay - Let's get to it! Prework Review
- Did everyone complete it?
- Let's review it!
We learned:
<aside class="notes">
1 MINUTE
**Teaching Tips**:
- There are slides on each concept following this.
- These are basic concepts to you, but potentially brand new to some students. Take your time to make sure everyone understands them.
</aside>
---
## Programming and Programming Languages
**Programming**:
- Writing step-by-step instructions in a way a computer can understand.
**Programming Languages**
- How we can give computers instructions.
- There are thousands! But we're learning **Python**.
- Specifically, Python 3.
<aside class="notes">
**Talking Points**:
- On this and all below, don't just read the slides. Add in your own interpretation.
</aside>
---
## Key Features of Python
- It's simple.
- It's versatile.
- It's always improving.
- It's popular!
<aside class="notes">
**Talking Points**:
- On this and all below, don't just read the slides. Add in your own experience and thoughts.
</aside>
---
## When to Use Python
- Putting up websites.
- Analyzing data.
- Building robots.
Most use cases!
<aside class="notes">
**Talking Points**:
- If you know of any specific examples, talk about them!
</aside>
---
## When NOT to Use Python
Other programming languages exist - Python isn't great for everything!
- Mobile apps
- Huge programs
- Python is interpreted - the computer reads it as it goes.
- Other programming languages are read in advance!
- Sometimes too easy
- Easy to expect things to work that don't!
<aside class="notes">
**Talking Points**:
- If you know of any specific examples, talk about them!
</aside>
---
## Pseudocode
- Writing out your program in simple, step-by-step instructions using plain English.
- Not a programming language!
- Something you should always do.
```
First, open the fridge.
Then, take out the cheese.
Then, close the fridge.
```
<aside class="notes">
**Talking Points**:
- Ask students what they think pseudocode is good for; then tell them.
- (e.g. to make sure you don't miss a step)
</aside>
---
## Group Exercise: Programming in Pseudocode
Let's write pseudocode that gives instructions on how to {give someone a high five}.
Include every step required. Remember, computers are very literal!
<aside class="notes">
5 MINUTES
**Teaching Tips**:
- Feel free to change the example to some other simple task.
- Write on the board, here. Come up with nothing yourself!
- Encourage students to come up with the steps, and write them as students come up with them.
- You should end up with something like:
- "Raise arm"
- "Open hand; keep fingers together"
- "Wait for the other person to raise their arm and open their hand."
- "Swing your arm forward to slap their raised open hand with yours."
- "Lower your arm again."
</aside>
---
## Comments
- Programmer notes in code.
- The computer ignores them.
- Write your pseudocode here!
```python
# This is a comment!
```
<aside class="notes">
**Talking Points**:
- Ask students what they think comments are good for; then tell them.
- (e.g. for your pseudocode; so others know what your program does; so you on Monday morning still know!).
</aside>
---
## Our First Line of Code
```python
print("Hello")
```
<aside class="notes">
**Teaching Tips**:
- Ask students what they think this does. If you deem it necessary, open a repl.it and demo it.
https://repl.it/@GAcoding/blank-repl
</aside>
---
## Q&A and Summary
Any other questions?
Let's rock!
<aside class="notes">
**Talking Points**:
- Check to see if there are any lingering questions on the pre-work.
- Mention that next up, we'll explore something new in Python - variables.
</aside>