RailsBridge Teacher and TA Training
Why we are here?
- Get to know each other and RailsBridge
- Know what will happen during a typical RailsBridge workshop
- Be empowered as teachers and TAs
- Practice teaching techniques (checks for understanding, scaffolding)
RailsBridge Teacher and TA Training
How is this going to happen?
- Introductions
- Coverage of workshop logistics
- Schedule
- Student levels
- Available curricula
- Volunteer roles
- Facilitated conversations about soft skills, teaching best practices and challenges, specifically for RailsBridge workshops.
Introducing RailsBridge!
- Founded in 2009 as a variety of initiatives, including Rails Mentors, Rails Bug Smashes, and the Open Workshop Project.
- The workshops project was led by Sarah Allen and Sarah Mei.
- Bridge Foundry
- Workshops not just Ruby on Rails, but also teaching Ruby, front-end and mobile development, Clojure, etc.
Introducing RailsBridge!
Current Level of Experience
- Have held super-welcoming, fun, free workshops all over the world, over 200 in total!
Introducing RailsBridge!
Goals for All Workshops Ever
- Make tech more diverse and welcoming!
- Provide extremely welcoming and useful high quality instruction to students.
- Provide hella networking opportunities for students and volunteers.
- Provide an opportunity for our volunteers to give back while they are also gaining valuable skills and connections.
- We throw super-welcoming, fun, free workshops.
- We help our volunteers become more empathetic and better communicators.
- Have fun!
Introductions
- What is your name? What else would you like to share about yourself? Could be anything... work, hobbies, interests, education, favorite building or music, etc.
- What is your current level of experience with the workshop topic and with teaching?
- What would you like to get out of today's teacher training? Anything specific you want to learn or discuss?
Typical RailsBridge Schedule
First, we get all the necessary technologies onto the students' computers aka the Installfest.
The next day we break into small groups and work through the curriculum.
Installfest
Friday 6-10pm-ish
- Installfest: installing software over pizza & beer
- No formal presentations, a bit like a party, get to know your students and fellow volunteers
- Not necessary for Front-end workshops
Keep in mind:
- There will be people with all kinds of computers.
- Even though Windows is not an ideal Rails development environment, we're here to encourage people and meet them wherever they are right now.
- Do NOT say bad things about Windows, even if it's frustrating.
- If you're not sure about something, grab another volunteer.
- Do NOT just talk to other volunteers, interact with the students.
Questions about the Installfest?
Workshop
Saturday 9-4:30pm-ish plus After-party
- 9-9:30am: Check-in, coffee, bagels
- 9:30-10am: Opening presentation, student sorting and classroom assignment, volunteer huddle
- 10am-12:30pm: Class!
- 12:30-1:30pm: Lunch
- 1:30pm-4:30pm: Class!
- 4:30-5:00pm: Closing presentation and retros
- 5:00pm-late: After-party
Workshop - Start with Introductions!!!
- What is your name? Work, hobbies, interests, education, anything else you would like to share about yourself?
- What is your current level of experience with writing code/technology in general/the material we are covering in the workshop today?
- What would you like to get out of today's workshop? Anything specific you want to learn or discuss?
Introductions - Things to Look For
- Make sure everyone participates, not just students.
- Look for students who are in the wrong level and find out if they want to move.
- Listen carefully to their goals so you can either realistically adjust them before class or meet them during class.
- Don't rush, even if you have a big class. Getting people talking
- If someone joins the class late, ask them to introduce themselves.
- Get people talking. The more comfortable they are at talking, the more likely they'll speak up when they don't understand something, or to answer someone else's question.
Workshop - Establish Ground Rules
- Questions are always welcome, there are no silly questions.
- Explain that if someone has trouble (e.g., not getting the expected output), the TAs will help troubleshoot.
- If anyone wants to switch classes, tell them they should feel TOTALLY COMFORTABLE switching at any point.
Cover Classroom Logistics
- Planned breaks, lunch time
- Remind students that there is a closing presentation and retrospective at the end
- Make sure they know where the bathroom is
- Encourage them to attend the after-party
- Students might not want to take breaks, but it is best that they do.
Student levels
Blue - Totally New to Programming
Green - Somewhat New to Programming
Gold - Some Rails Experience
Orange - Other Programming Experience
Purple - Ready for the Next Challenge
Curricula
You need to read the curriculum through, beginning to end, before teaching or ta'ing it.
Rails
Intro to Rails - Classic Suggestotron Curriculum - Blue/Green Levels
Job Board - Build a Simple Job Board - Green/Gold levels
Message Board - Orange/Purple Levels
FrontEnd
Frontend Curriculum - HTML + CSS for beginners - Blue/Green levels
JavaScript Snake Game - Beginner Specific Curriculum - Blue/Green level
JavaScript To Do LIst - Gold/Orange Levels
JavaScript To Do List With React - Orange/Purple Levels
Seriously! You need to read the curriculum through, beginning to end, before teaching or ta'ing it.
What's a TA?
First workshop? Be a TA!
- At RailsBridge, a TA is a volunteer who isn't leading the class.
- If you're volunteering at your first RailsBridge workshop, you should probably be a TA.
- Sometimes they are the technical experts (rather than the teacher), sometimes not.
- TAs often explain specific concepts for the class or teach a couple of sections to give the teacher a break from talking.
- TAs can ask questions to encourage students to speak up.
- Teachers can ask your TA to explain a concept; they may be more technically advanced than you!
- TAs can help people who get lost.
- Co-teaching is also an option if you feel like you can tag-team. There doesn't have to be a hierarchy.
- If someone falls behind, the TA can take them out of the room to do some 1-on-1, if there's another TA in the room.
RailsBridge Teacher Training - Soft Skills Edition
How to make your class awesome
We've made three quasi-arbitrary categories of ways to make your class awesome:
We want our students to feel:
- Like you are approachable and can help solve their problems
- Socially comfortable
- Technically capable
Discussion is key! Don't let the presenter(s) do all the talking!
Social Comfort - Establishing trust with students aka "Do you know what's up?"
Discussion points
- How can you help people feel like you know what's going on?
- What are things you can do to help the students trust you?
- What are some things to avoid?
Know What's Up: Ideas
Don't be afraid to:
- Call on people! By name!
- Ask yourself questions and answer them.
- Be vulnerable yourself, discuss your learning process
Know What's Up: Even More Ideas
Pace yourself!
- Don't go too fast. You will probably go too fast. Check in occasionally to ensure everyone is still with you.
- You can say the same thing THREE TIMES and it will not be boring yet.
- When you ask a question, wait TEN WHOLE SECONDS before saying anything else. People need time to think.
- Don't let the most advanced students dictate the pacing or answer all the questions.
- Get people talking. The more comfortable they are at talking, the more likely they'll speak up when they don't understand something, or to answer someone else's question.
- Allow students time to write and play with code!
Social Comfort - Absolutes
- Try to be more aware of your (possible and understandable) culturally-influenced sexism so you don't express it during a class
- Don't hit on people. No sexual advances. None. Even at the after-party.
- DO NOT ask for student contact information. Feel free to share yours, in a non aggressive way, so students can take initiative to contact you.
- Don't make sexist jokes. Or racist, classist, or ableist jokes. Call people out if they do. A simple "That's not funny" and moving on quickly with the conversation will often suffice.
- Don't make gender-based generalizations ("Women are better at X, because ...")
- Don't make references to people's bodies or state your opinion of them.
- Don't use slurs.
Social Comfort: Making the students more comfortable with learning process
Imagine:
- You're trying to do something difficult
- You're in a group of strangers, many of whom know how to do it better than you
- You've tried before but got lost or bored or confused
- You don't feel like you can articulate your thoughts and questions
- You don't know the right names for anything
Social Comfort: Comprehension
Discussion points
- How can you tell if they understand the words you're saying?
- What are good questions to ask to check comprehension?
- What did your favorite teachers do to gauge understanding?
Student Comprehension: Some Ideas
- Pay attention to body language.
- People ask questions most often when they are actively processing material. If they aren't, it might be that the material is too easy or hard. Try to figure out which it is!
Calling on people
- Calling on people makes the class more interactive and engaging, and less lecture-y.
- Don't always ask questions to the whole class: call on individuals by name.
- Consider breaking the class into two teams and addressing questions to teams.
- Ask people what they expect a command to produce BEFORE you hit enter.
- Ask "How would you do #{this}?" or "If I wanted to do #{that}, what would I do?"
Discussion: Technical Capability
How can you help people feel technically capable?
What kinds of insecurities might your student have?
How can you bolster their confidence?
Technical Capability: Ideas
Explain that:
- Even professional developers are constantly learning new technologies, so being confused is normal.
- Initial code is often terrible: don't feel bad, just refactor!
- Mistakes == Learning!
- Growth mindset versus fixed mindset
Dealing with technical concepts:
- Define technical terms! Several times!
- Assume anyone you're teaching has zero knowledge but infinite intelligence.
- Remember people's professional and code backgrounds (QA, DBA, C++, Java, JS) and relate where possible. If they are a cook, try a cooking analogy.
Technical Capability: More Ideas
Encourage collaboration and interaction
- Explicitly encourage students to try to answer each other's questions.
- If a question is asked, ask if anyone in the class thinks they can explain.
- Be especially encouraging of the first few questions, to try to get things rolling.
- Good responses to questions: "I'm glad you asked!" or "I actually wondered that, too." or "Great question!"
Be Super Positive, Always
- Students have diverse backgrounds. Appreciate this fact.
- If they aren't getting a concept, avoid anything that might shame them.
- Don't be surprised when someone hasn't heard of something before.
- Don't grab anyone's keyboard. Avoid taking over unless you think it's really necessary. Ask before you do. "Mind if I drive for a sec?" But really, don't.
Technical Capability: Even More Ideas
Walk the Middle Path
- Don't go too deep for your class level, but also, don't gloss over things.
- When trying to be accurate, it's easy to go down a rabbit hole of specificity. Avoid.
- Work with the TAs to make sure no one goes down that rabbit hole. Accountability!
- Explain the big picture of a command before they type it in.
- i.e., before typing the command to deploy to Heroku, explain the difference between localhost and Heroku.
Is RailsBridge Open Source?
WHY YES, THANK YOU FOR ASKING!
RAILSBRIDGE IS VERY OPEN SOURCE!
All the materials you're using were created by volunteers, and are on GitHub for forking and editing and using!
If you see something that could be better, make a pull request. Pull requests are the lifeblood of RailsBridge.
If you don't know how to make one, we'll help!
We need your help! Thank you!!!
Very Important, Very Practical Things
You need to read the curriculum through, beginning to end, before teaching it.
Teaching Techniques
Answering questions
- Correct people if they're wrong. Be polite and encouraging. For instance:
- "Well, this might work better and this is why."
- "Can you explain how you came to that conclusion?"
- "Does anyone have a different answer?"
- Don't be afraid to tell someone that you don't know
- Don't be afraid to not answer a question if it is out of scope
- Talk with the student during a break
Teaching Techniques
Checks for understanding
A tool for assessing how well the class understands a topic before moving on
Reasons to check for understanding
- Helps guide your teaching pace
- You get more feedback about which students are more challenged with the material
- Feedback loop during the lesson
Avoid These Checks For Understanding
- Do you understand?
- Can I move on?
- Any questions?
These checks tend to have a luke warm response
People may think they understand, but don't actually understand
Suggested Checks For Understanding
- Fist of five
- Calling on a person by name
- Have students pair on a problem, then explain it to the group
- Checking in with each student individually as they work on a problem
- Teach a concept to your neighbor
Discussion: Teach!
Incorporate at least one check for understanding and teach the following
- Arrays
- Hashes
- Scrum process
- OOP
- Anything you are passionate about
Scaffolding
- A lesson should build upon itself
- Teacher describes or illustrates a concept multiple ways
- Teacher gives a specific example that helps students complete an assignment
- I do, we do, you do
Not rails g scaffold
Discussion: Great learning experience
Describe a great learning experience you have had
Why do you think it was so successful?
General curriculum levels - detailed
Blue - Totally New to Programming
- Student has little or no experience with the terminal or a graphical IDE
- Might be familiar with HTML or CSS, but not necessarily
- Unfamiliar with terms like methids, arrays, lists, hashes, or dictionaries
Green - Somewhat New to Programming
- May have used the terminal a little - to change directories for example
- May have done an online programming tutorial or two
- Does not have alot of experience with Rails
Gold - Some Rails Experience
- Comfortable using terminal, but not a power user
- Have general understanding of Rails app's strucutre, maybe a prior workshop or tutorial
- Knows how to define a method in Ruby
- Has decent handle on Ruby arrays and hashes
General curriculum levels - detailed continued
Orange - Other Programming Experience
- Proficient in another language and understand general programming concepts like collections and scope
- New to Ruby on Rails
- Familiar with version control and basic web architecture
Purple - Ready for the Next Challenge
- Exhausted fun of Suggestotron/Intro Rails curriculum
- Comfortable with terminal
- Want to problem solve instead of copying other's code
- Build an app without using scaffolds
Curriculum levels for JavaScript
Blue - No programming Experience
- Totally new to JavaScript itself
- Made a webpage before, maybe at a RailsBridge Front End Workshop
- No experience with programming languages other than HTML and CSS
Orange - Programmer new to Javascript
- Comfortable making a complex webpage
- Some experience in programming language like ActionScript, C, Java, Ruby or Python
- Has seen JavaScript, but didn't really understand how it worked
Purple - Some experience with JavaScript
- Feel comfortable writing functions and objects in JavaScript
- Used jQuery before, has seen Ajax request, but doesn't understand all the moving parts
- Interested in learning how to organize JavaScript code using models and views
/
#
Social Comfort - Establishing trust with students aka "Do you know what's up?"
Discussion points