Lots of different languages represented in the room → but please don’t be shy: feel empowered to participate, even if you are not so confident in your English skills
I will avoid ‘calling on’ people to contribute
when you speak, please speak up (I’m rapidly ageing and my hearing is not what it once was)
First task…
Read the syllabus!
We have a shiny new (developing) website for the course
Before our next meeting, your task is to peruse the website
especially the Syllabus and Readings pages.
Defining social movements
Broadly: collections of people that mobilise, coordinate, and campaign for some objective
We will focus on movements with socio-political objectives
What are some examples that you know (now or historically)?
Connection to Prof. Bolleyer’s lecture
This course is one of the Grundkurse for Prof. Bolleyer’s Einführung in das politische System Deutschlands
This course is a detailed investigation of a related topic—not a tutorial on the material in Prof. Bolleyer’s lecture
So—as should go without saying—for both the lecture and GK: read and attend classes
Structure of the course
Date
Class
Lecture
2025-10-16
1
Introduction and the development of social movements (SMs)
2025-10-23
2
SM theories: collective behaviour, resource mobilisation, political processes
2025-10-30
3
SM theories: framing, civil society
2025-11-06
4
Mobilisation, recruitment, participation
2025-11-13
5
Collective identity and emotions
2025-11-20
6
Organisation, strategies and tactics
2025-12-04
7
SMs and the media
2025-12-11
8
SM coalitions
2025-12-18
9
State responses
2026-01-08
10
Counter-mobilisation and countermovements
2026-01-15
11
SMs online
2026-01-22
12
SM impact
2026-01-29
13
Demobilisation
2026-02-05
14
Contemporary social movements and beyond: climate, migration
Coverage of cases within and outside Germany
Social movements are numerous and varied
In this course, we will consider some of the most influential/most studied movements (NB: U.S. bias in research)
As often as possible, we will refer to a set of movements (organisations) active in Germany
to be introduced later
Aims
acquire substantive knowledge of aspects of social movements (theory, cases) and manifestation within Germany and elsewhere
enhance critical knowledge to evaluate research thereof
gain familiarity with methodological approaches to studying social movements
(further) develop the capacity to…
assess episodes and broader cycles of movement activity, especially by identifying underlying factors and comparing across contexts
critically evaluate reporting and research on social movements, especially by evaluating the data and methods used
Assessment: related to BRD lecture
Studiengang
Belegung
Leistungsnachweis(e)
Klausurinhalte
BA Hauptfach
VL (Vorlesung BRD) und GK (Grundkurs)
Klausur (90 Min.)
3/5 Wissensfragen und 1/3 Essayfrage
BA Nebenfach 60 ECTS
VL und GK
Klausur (90 Min.)
3/5 Wissensfragen und 1/3 Essayfrage
Lehramt Unterrichtsfach
VL und GK
Klausur (90 Min.) & Referat
3/5 Wissensfragen und 1/3 Essayfrage
BA Nebenfach 30 ECTS
nur VL
Klausur (90 Min.)
3/5 Wissensfragen kein Essay
Lehramt Didaktikfach
nur VL
Klausur (60 Min.)
2/5 Wissensfragen kein Essay
Austauschstudierende für VL
VL
Klausur (90 Min.)
3/5 Wissensfragen kein Essay
Austauschstudierende für GK
GK
Festgelegt durch GK Dozent
N/A
Die Sprache der Essayfragen (Deutsch oder Englisch) richtet sich nach der Sprache des jeweiligen GKs. Unabhängig von der Sprache der Fragestellung (oder Teil der Veranstaltung) können Studierende je nach Präferenz auf Deutsch oder Englisch antworten.
Kontakt für prüfungsrechtliche Fragen, Kursanmeldung, - wechsel, - abmeldung, Fragen zur Anmeldung zur Prüfung: studienbuero@gsi.uni-muenchen.de
Assessment: within this course
Participation
Presentation
Essay
Klausur
BA Hauptfach
X
X
BA Nebenfach (60 ECTS)
X
X
Lehramt Unterrichtsfach
X
X
X
X
BA Nebenfach (30 ECTS)
X
X (nur VL)
Lehramt Didaktikfach
X
X (nur VL, 60 Min., 2 Wissensfragen)
Austauschstudierende für VL
X
X (nur VL)
Austauschstudierende für GK
X
X
X
Course assessment - Participation
No examination in this course, BUT there is in ‘Einführung Politisches System der BRD’. There, you respond to an essay question from this course.
Exam on 3 February (Monday) at 14.00
90-minutes written exam: response to 3 of 5 short-answer prompts from Prof. Bolleyer’s lecture and to 1 of 3 essay prompts from this course
attend class and actively participate
do required reading
Course assessment - Presentation
Presentation
short (max. 20 minutes) group (2-4 students) talk on a method for studying social movements
A method is a system of data collection and analysis
introduce method,
explain its utility for studying social movements,
[the crucial part] and discuss one applied example
Essay (Hausarbeit): Data report
data report on a social movement phenomenon (e.g., protests events, violence, framing, news coverage)
why a dataset? Helpful preparation for thinking about validity, reliability, etc. → relevant for quant. and qual.
gather and present data, generate analytical insights
2000-3000 words (excluding citations)
17 January: short synopsis due. 7 March: full, final report due.
consider working with data visualisation and analysis software!
A rule: no drawing any data from or citing Statista or other data curation services.
The Centre on Social Movement Studies maintains a list of resources for social movement research: https://cosmos.sns.it/resources/
Tarrow (2011) - a good textbook of social movements
provides overview of theory and concepts
summarises research (a more recent edition brings it up-to-date)
sets out a thesis (contentious politics), explains, and defends it
Other good overview books: Giugni, Mcadam, and Tilly (1999), Tilly (2004), della Porta and Diani (2009)
About me
tell me if you have problems understanding me
there’s an accent at work that I tragically cannot shake off
Ph.D. in political science from Central European University (CEU)
specialisation in qualitative methods (QCA, [Bayesian] process tracing), but also quant. text analysis, network analysis
researcher in funded projects on …
violent/banned far-right groups and online content moderation
radicalisation, violent extremism, polarisation, and resilience
current work: militant democracy; far-right activist networks; political violence (in 1970s Northern Ireland; in contemporary Italy); paths to female leadership in Asia; protest and polarisation
About the course
Q & A
md`## About you! Poll results (Respondents: ${respondentCount})`
import { liveGoogleSheet } from"@jimjamslam/live-google-sheet";import { aq, op } from"@uwdata/arquero";// UPDATE THE LINK FOR A NEW POLLsurveyResults =liveGoogleSheet("https://docs.google.com/spreadsheets/d/e/"+"2PACX-1vTYpr3h8MBAj2Le1HRxZZiPQlgEbiBa4I66jzpx-2x90Fy0gdEHKMDFd2B-_Q80iG3DFPFdLrhT5HZM/"+"pub?gid=1839178496&single=true&output=csv",10000,1,6);// adjust the last number to select all relevant columns respondentCount = surveyResults.length;
functionPieChart(data, { name = ([x]) => x,// given d in data, returns the (ordinal) label value = ([, y]) => y,// given d in data, returns the (quantitative) value title,// given d in data, returns the title text width =640,// outer width, in pixels height =400,// outer height, in pixels innerRadius =0,// inner radius of pie, in pixels (non-zero for donut) outerRadius =Math.min(width, height) /2,// outer radius of pie, in pixels labelRadius = (innerRadius *0.5+ outerRadius *0.5),// center radius of labels format =",",// a format specifier for values (in the label) names,// array of names (the domain of the color scale) colors,// array of colors for names stroke = innerRadius >0?"none":"white",// stroke separating widths strokeWidth =1,// width of stroke separating wedges strokeLinejoin ="round",// line join of stroke separating wedges padAngle = stroke ==="none"?1/ outerRadius :0,// angular separation between wedges, in radians} = {}) {// Compute values.const N = d3.map(data, name);const V = d3.map(data, value);const I = d3.range(N.length).filter(i =>!isNaN(V[i]));// Unique the names.if (names ===undefined) names = N; names =new d3.InternSet(names);// Chose a default color scheme based on cardinality.if (colors ===undefined) colors = d3.schemeSpectral[names.size];if (colors ===undefined) colors = d3.quantize(t => d3.interpolateSpectral(t *0.8+0.1), names.size);// Construct scales.const color = d3.scaleOrdinal(names, colors);// Compute titles.if (title ===undefined) {const formatValue = d3.format(format); title = i =>`${N[i]}\n${formatValue(V[i])}`; } else {const O = d3.map(data, d => d);const T = title; title = i =>T(O[i], i, data); }// Construct arcs.const arcs = d3.pie().padAngle(padAngle).sort(null).value(i => V[i])(I);const arc = d3.arc().innerRadius(innerRadius).outerRadius(outerRadius);const arcLabel = d3.arc().innerRadius(labelRadius).outerRadius(labelRadius);const svg = d3.create("svg").attr("width", width).attr("height", height).attr("viewBox", [-width /2,-height /2, width, height]).attr("style","max-width: 100%; height: auto; height: intrinsic;"); svg.append("g").attr("stroke", stroke).attr("stroke-width", strokeWidth).attr("stroke-linejoin", strokeLinejoin).selectAll("path").data(arcs).join("path").attr("fill", d =>color(N[d.data])).attr("d", arc).append("title").text(d =>title(d.data)); svg.append("g").attr("font-family","sans-serif").attr("font-size",100).attr("text-anchor","middle").selectAll("text").data(arcs).join("text").attr("transform", d =>`translate(${arcLabel.centroid(d)})`).selectAll("tspan").data(d => {const lines =`${title(d.data)}`.split(/\n/);return (d.endAngle- d.startAngle) >0.25? lines : lines.slice(0,1); }).join("tspan").attr("x",0).attr("y", (_, i) =>`${i *1.1}em`).attr("font-weight", (_, i) => i ?null:"bold").text(d => d);returnObject.assign(svg.node(), {scales: {color}});}
Prior methods class
methodsCounts = aq.from(surveyResults).select("methods").derive({ methods: d => (d.methods&& d.methods.trim() !==""? d.methods:"NA") }).groupby("methods").count().rename({ count:'value',methods:'name' }) // Rename for D3 pie chart.objects() // convert to array for D3methodsChart =PieChart(methodsCounts, {name: d => d.name,value: d => d.value,names: ["Yes","No","NA"],// orderingcolors: ["#4CAF50","#F44336","#CCCCCC"],// green 'yes', red 'no', grey 'NA' width,height:800})
Prior analytical software use
softwareCounts = aq.from(surveyResults).select("software").derive({ software: d => (d.software&& d.software.trim() !==""? d.software:"NA") }).groupby("software").count().rename({ count:'value',software:'name' }) // Rename for D3 pie chart.objects() // convert to array for D3softwareChart =PieChart(softwareCounts, {name: d => d.name,value: d => d.value,names: ["Yes","No","NA"],// orderingcolors: ["#4CAF50","#F44336","#CCCCCC"],// green 'yes', red 'no', grey 'NA' width,height:800})
About you! Poll results
influence_successCounts = aq.from(surveyResults).select("influence_success").groupby("influence_success").count().derive({ measure: d =>"" })// Calculate the maximum count from your datasetinfluence_success_maxCountRE =Math.max(...influence_successCounts.objects().map(d => d.count));plot_influence_success = Plot.plot({marks: [ Plot.barY(influence_successCounts, {x:"influence_success",y:"count",fill:"influence_success",stroke:"black",strokeWidth:1 }), Plot.ruleY([respondentCount], { stroke:"#ffffff99" }) ],color: {domain: ["media coverage","public support","mass participation","elite alliances","ability to disrupt","coalition building","other" ],range: ["darkred","darkorange","goldenrod","forestgreen","blue","indigo","violet" ] },marginBottom:300,x: { label:"",tickSize:2,tickRotate:-35,padding:0.3,domain: ["media coverage","public support","mass participation","elite alliances","ability to disrupt","coalition building","other"] },y: {label:"",tickSize:10,tickFormat: d => d,tickValues:Array.from(newSet(influence_successCounts.objects().map(d => d.count)) ).sort((a, b) => a - b),domain: [0, influence_success_maxCountRE] },facet: { data: influence_successCounts,x:"measure",label:"" },marginLeft:70,style: {width:1600,height:500,fontSize:40, },});
About you! Poll results
Any particular politically violent group you want to learn more about?
concernCounts = aq.from(surveyResults).select("concern").groupby("concern").count().derive({ measure: d =>"" })// Calculate the maximum count from your datasetconcern_maxCountRE =Math.max(...concernCounts.objects().map(d => d.count));plot_concern = Plot.plot({marks: [ Plot.barY(concernCounts, {x:"concern",y:"count",fill:"concern",stroke:"black",strokeWidth:1 }), Plot.ruleY([respondentCount], { stroke:"#ffffff99" }) ],color: {domain: ["Participating in class discussions","Passing the Klausur","Studying and discussing in English","Talking about politics and political views (about movements)","Understanding abstract concepts" ],range: ["darkred","darkorange","goldenrod","forestgreen","blue" ] },marginBottom:600,x: { label:"",tickSize:2,tickRotate:-35,padding:0.3,domain: ["Participating in class discussions","Passing the Klausur","Studying and discussing in English","Talking about politics and political views (about movements)","Understanding abstract concepts"] },y: {label:"",tickSize:10,tickFormat: d => d,tickValues:Array.from(newSet(concernCounts.objects().map(d => d.count)) ).sort((a, b) => a - b),domain: [0, concern_maxCountRE] },facet: { data: concernCounts,x:"measure",label:"" },marginLeft:70,style: {width:1600,height:500,fontSize:40, },});
Contentious politics is triggered when changing political opportunities and constraints create incentives to take action for actors who lack resources on their own. People contend through known repertoires of contention and expand them by creating innovations at their margins. When backed by well-structured social networks and galvanized by culturally resonant, action-oriented symbols, contentious politics leads to sustained interaction with opponents – to social movements.
social movements (p. 7): “sequences of contentious politics based on underlying social networks, on resonant collective action frames, and on the capacity to maintain sustained challenges against powerful opponents”
framing (p. 31): “relates to the generalization of a grievance and defines the “us” and “them” in a movement’s structure of conflict and alliances.”
opportunities (p. 32): “consistent – but not necessarily formal, permanent, or national – sets of clues that encourage people to engage in contentious politics.”
threats (p. 32): “those factors – repression, but also the capacity of authorities to present a solid front to insurgents – that discourage contention.”
Alternatively, please send me an email: m.zeller@lmu.de
References
Adcock, Robert, and David Collier. 2001. “Measurement Validity: A Shared Standard for Qualitative and Quantitative Research.”American Political Science Review 95 (3): 529–46. https://doi.org/10.1017/S0003055401003100.
Collier, David, and James E. Mahon. 1993. “Conceptual ‘Stretching’Revisited: Adapting Categories in Comparative Analysis.”American Political Science Review 87 (4): 845–55. https://doi.org/10.2307/2938818.
Giugni, Marco, Doug Mcadam, and Charles Tilly. 1999. How Social Movements Matter. Minneapolis: University of Minnesota Press.
Sartori, Giovanni. 1970. “Concept Misformation in Comparative Politics.”The American Political Science Review 64 (4): 1033–53.
Tarrow, Sidney G. 2011. Power in Movement: Social Movements and Contentious Politics. Cambridge: Cambridge University Press. https://doi.org/10.1017/CBO9780511973529.
Tilly, Charles. 2004. Social Movements, 1768-2004. Boulder: Paradigm Publishers.
Social movements in contention (Tarrow 2011, 33)