Previous Lecture | Lecture 4 | Next Lecture |
Lecture 4,
What do CS teachers need to know?
Look ahead to upcoming assignments
-
H03: Shadow an experienced tutor: https://ucsb-teaching-cs.github.io/w19/hwk/h03/
-
Project 01: One-on-one teaching observations. Schedule your observation: https://ucsb-teaching-cs.github.io/w19/hwk/proj01/
What do CS teachers need to know?
We’ll discuss the idea of pedagogical content knowledge (PCK) to try and its significance to being an effective teacher.
Our starting point for the discussion is the following quote from the book “How people learn” (which you read as part of HW1), also referred to by Mark Guzdial on his CSEducation Research blog:
“Shulman (1986, 1987) argues that pedagogical content knowledge is not equivalent to knowledge of a content domain plus a generic set of teaching strategies; instead, teaching strategies differ across disciplines. Expert teachers know the kinds of difficulties that students are likely to face; they know how to tap into students’ existing knowledge in order to make new information meaningful; and they know how to assess their students’ progress”
Some questions to guide the discussion:
- What does PCK mean to you?
- Recall a time when one of your teachers used PCK in their teaching or to help you understand a concept.
- Recall a time when you (as a tutor) have might have used PCK to assist a student? (Its likely that you didn’t call it PCK!)
Practice one on one explanations
To practice, we will play a game that involves flash cards. Each flash card has a question or a concept that a student is confused about. The goal of the game is to
-
Practice explaining a concept in different ways, and as clearly as possible in 2 to 3 minutes
-
Think about specific misunderstandings that a student may have related to that question.
-
Refine your explanations based on your insights from 2.
In line with these goals, we will do the following activity:
- Break into small groups 5-6 students
- First round: Take turns picking a flash card and reading it to your group
- In the first round focus on explaining the same problem in different ways. Observe others and take notes about their explanation.
- In the second round, repeat the same process as before and with the same topic. The person explaining a concept should additionally pick a “Tip card” and try to incorporate the tip in their interaction.
- Debrief
Practicing 1-on-1 explanations
- Explain the different uses of const in C++
- How do I define a Python function?
- What is all this unit testing stuff?
- Explain return vs. print
- Explain the git workflow add/commit/push
- Why use git at all?
- Explain C++ pointers
- Explain recursion
- Help - I don’t understand all that command line stuff
- How do Makefiles work?
- What are .o files?
- Explain member functions and variables in C++
- Explain the use of . vs ->
- Re-explain reference vs de-referencing (& vs * ) and different use cases
- How can I access a private member variable in a member function? Don’t I need to declare it?
- Why would a function be void?
- Why do I need to compile my code everytime?
- What is the difference between .h and .cpp files
The main goals for this session are:
- practice explaining concepts in different ways
- explore important elements of one-on-one interaction with student (we will specifically focus on how to engage with students and promote discussion using a few techniques)