Some presentation advice
This document provides an incomplete list of suggestions that will help you give more effective presentations. Smart people disagree about many of the following suggestions. But if you follow all of this advice, ~90% of reasonable people will find your presentations more compelling than the average talk.
1 Preparation before talk
- Have good ideas
- Write a killer paper
- Go to every talk in your department
- Go to some talks outside your department
- Know the norms of the audience in advance
- How much time do you have for the presentation? For Q and A?
- How is Q and A handled? E.g., Are questions collected or responded to individually? Are substantive questions held to the end or asked during the talk?
- Tailor the talk to audience
- For job talks, most departments will not be as homogeneous or methods-focused as ours
- Job talks should be ~35 minutes and never longer than 45
- For all talks, shorter tends to be better
- Practice \(\times\) 1,000
- Prepare for problems
- Slides in pdf and PowerPoint [or whatever software you prefer]
- Print outs of key plots
2 An incomplete structure for a good talk
- Context: just enough to motivate the problem
- Problem:
- Problem pt. 1: convince the audience that they don’t know something
- Problem pt. 2: convince the audience that their lack of knowledge has real consequences
- Response: explain your solution to the problem and provide evidence to support it
- Takeaways: tell the audience what you hope they remember from the talk
3 During the talk
3.1 Case Study: A hummable tune
- Have a hummable tune: the main point that is introduced immediately, packaged to make it easy to remember, and reinforced throughout the talk
- use the SUCCESS model to find a memorable tune
- SUCCESS model pdf
- Begin with a puzzle or question that captures attention
- Imagine you are a narrator of a compelling story:
“The goal is to have a visually streamlined talk where the audience is so captivated by your presentation that they forget you are even standing in front of them. Instead, they become immersed in your narrative and the visuals that accompany it, never having to pause and make sense of what you just said.” –William Ratcliff source]{.aside}
- Early on and again at the end: answer the “so what?” question
- Do not read the slides
- Except for quotes. Read all quotes!
- Face the audience, not the slides
- Never turn your back to the audience, they will kill you
- Explain all graphs in detail:
- What does each axis represent?
- What does each number mean?
- an effective approach is to introduce slide elements sequentially (here’s one way to do that)
3.2 Case Study: Introduce graphical elements sequentially
4 Presentation slides format
- Titles should provide takeaways, not topics. e.g.,
- “Research Design” \(\rightarrow\) “Research Design: Small Group Experiment”
- “Results” \(\rightarrow\) “Extremists More Likely to Choose Correct Candidate”
- Use simple formats with a single, coherent theme
- Shoot for simplicity: ~three colors, ~two typefaces
- Simple, but not boring! Use colors and images to draw, maintain attention
- \(\geq\) 30 point font (I break this guideline frequently—you’ll have to too)
- Remove inessential elements:
- Use as few words as possible on each slide
- Slides are not scripts: Include a slide only if it helps you make a point better than you can without one
- Always include slide numbers for job talks
- Use pictures to reinforce your ideas
- Graphs \(>\) Tables (usually)
- If you have to apologize because a slide may be hard to read, you should not have included it
- Don’t forget to embed your fonts
4.1 Case Study: Improving the standard “motivation” slide
A typical way that someone might introduce their theory is with a slide like this:
This slide has so many problems:
- title not informative
- title too far from main body
- too much text
- fonts too small
- unnecessary ink in title and bullet points
- bland
- too abstract
We can improve this slide by eliminating inessential ink …
… separating the ideas into different slides …
… and adding pictures to make the ideas more concrete and vivid:
5 Q and A
- Treat all questions as friendly and respond in kind
- Give brief, direct, and complete answers—sometimes you can’t do all three, but try
- Avoid saying, “good question”
- Defend your work, but don’t be defensive
- Accept fair criticism
- Be careful with body posture, energy level, nervous tics, etc.
- It’s okay to (occasionally) say, ``I don’t know.’’ Explain how you can find the answer, the various things you might find, and how you could address each.
6 Additional resources
The following resources have lots of good advice and some bad advice too.
- Robert Axelrod’s Tips for an Academic Job Talk.
- Uncle Wuffle’s Advice on Job Talks
- Rob Salmond and David T Smith have written several papers on improvin talks:
- Will Ratcliff’s The David Attenborough Style of Scientific Presentation
- If you are going to use Beamer, at least make sure to take Paul Goldsmith-Pinkham’ advice
- Edward Tufte explains the many problems with PowerPoint
- Graphic design tips for slides:
- Help choosing color palettes:
- Comprehensive list of color palettes in r
- Adobe app for choosing color palettes
palett.es: an app for generating random palettes with nice properties- BLog post explaining how colorblindness influences perception of color palettes
7 R code to introduce plotting elements sequentially
Code
# PREAMBLE ------------------
# Load packages
library(tidyverse)
# Data frame for plot
df <- list(
z_vals = c(0, 1),
fx = c(0.237602878406582, -0.0647376977459531),
se_fx = c(0.103248625837859, 0.223856794462472),
lb = c(0.0322084710284791, -0.510060173111257),
ub = c(0.442997285784685, 0.380584777619351),
gender = c("FEMALE", "MALE")
) %>%
structure(
class = c("tbl_df", "tbl", "data.frame"),
row.names = c(NA, -2L)
)
# Dimensions for plot window
width <- 7
height <- 4
# START WITH THE FINAL PLOT ------------
plot_3 <- df %>%
ggplot(aes(x = gender, y = fx, label = gender, color = gender)) +
geom_hline(yintercept = 0, linetype = "dashed", size = .8) +
geom_point(size = 10) +
geom_linerange(aes(ymin = lb, ymax = ub), size = 3) +
geom_text(vjust = -0.6, size = 10, fontface = "bold") +
ylab("Effect of roommate's turnout on p(turnout)") +
coord_flip() +
theme_minimal(base_size = 20) +
theme(
panel.grid.major = element_line(colour = "grey85", size = .5),
panel.grid.minor = element_blank(),
legend.position = "none",
axis.title.y = element_blank(),
axis.text.y = element_blank(),
axis.ticks.y = element_blank(),
panel.grid.major.y = element_blank()
) +
scale_color_manual(values = c("#20BF55", "#0B4F6C")) +
scale_y_continuous(breaks = seq(-.4, .4, .2))
# CREATE BASELINE PLOT ----------
# Extract limits from final plot
y_lim <- ggplot_build(plot_3)$layout$panel_scales_y[[1]]$range$range
x_lim <- ggplot_build(plot_3)$layout$panel_scales_x[[1]]$range$range %>%
as.factor() %>%
fct_inorder()
plot_1 <- df %>%
ggplot(aes(x = gender, y = fx, label = gender)) +
geom_hline(yintercept = 0, linetype = "dashed", size = .8) +
ylab("Effect of roommate's turnout on p(turnout)") +
coord_flip() +
theme_minimal(base_size = 20) +
theme(
panel.grid.major = element_line(colour = "grey85", size = .5),
panel.grid.minor = element_blank(),
legend.position = "none",
axis.title.y = element_blank(),
axis.text.y = element_blank(),
axis.ticks.y = element_blank(),
panel.grid.major.y = element_blank()
) +
expand_limits(x = x_lim, y = y_lim) +
scale_y_continuous(breaks = seq(-.4, .4, .2))
# CREATE INTERMEDIATE PLOT ----------
plot_2_df <- df %>%
mutate_at(vars(fx, lb, ub), funs(ifelse(gender == "MALE", NA, .)))
plot_2 <- plot_1 +
geom_point(data = plot_2_df, size = 10, color = "#20BF55") +
geom_linerange(
data = plot_2_df,
aes(ymin = lb, ymax = ub),
size = 3,
color = "#20BF55"
) +
geom_text(
data = plot_2_df,
vjust = -0.6,
size = 10,
fontface = "bold",
color = "#20BF55"
)
# SAVE --------------------
save_plot <- function(..., width = width, height = height){
ggsave(..., dpi = 600, bg = "transparent")
}
save_plot("turnout_effects_1.png", plot = plot_1)
save_plot("turnout_effects_2.png", plot = plot_2)
save_plot("turnout_effects_3.png", plot = plot_3)