Please use the pdf attached for B2+ ESL student and prepare by yourself some new and interesting logical conversation questions along with answers from the topic "Movie parasite" and along with that also prepare list of vocabulary words and phrases list with their meanings .and True and false and fill in the blanks exercise.Make a colorful handbook worksheet pdf.
~/
~/attachments/f5eb9af9-9d03-4d40-bad0-0c2eb5ff777d
python -c "from pypdf import PdfReader; p='/tmp/workspace/attachments/f5eb9af9-9d03-4d40-bad0-0c2eb5ff777d/DOC-20260907-WA0003.pdf'; r=PdfReader(p); print('PAGES',len(r.pages)); [print('---PAGE',i+1,'---\n', (pg.extract_text() or '')[:8000]) for i,pg in enumerate(r.pages)]"
Academy Awards Parasite Best Picture first non-English language film official Oscars
mkdir -p "/tmp/workspace/parasite-esl-handbook/src" "/tmp/workspace/parasite-esl-handbook/output" && python - <<'PY' from reportlab.lib.pagesizes import A4 from reportlab.lib import colors from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.enums import TA_CENTER, TA_LEFT from reportlab.lib.units import cm from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, PageBreak, KeepTogether from reportlab.pdfbase.pdfmetrics import stringWidth from reportlab.pdfbase.ttfonts import TTFont from reportlab.pdfbase import pdfmetrics from reportlab.lib.colors import HexColor out='/tmp/workspace/parasite-esl-handbook/output/Parasite_B2_Plus_ESL_Handbook_Worksheet.pdf' # Palette NAVY=HexColor('#173B5B'); TEAL=HexColor('#0E9C9A'); GOLD=HexColor('#F4B942'); CORAL=HexColor('#EC6A5C'); MINT=HexColor('#E7F7F4'); PALE=HexColor('#F8F4EA'); INK=HexColor('#263238'); LILAC=HexColor('#EEE9FA') styles=getSampleStyleSheet() styles.add(ParagraphStyle(name='TitleX', parent=styles['Title'], fontName='Helvetica-Bold', fontSize=25, leading=30, alignment=TA_CENTER, textColor=NAVY, spaceAfter=6)) styles.add(ParagraphStyle(name='SubX', parent=styles['Normal'], fontName='Helvetica', fontSize=11, leading=15, alignment=TA_CENTER, textColor=INK, spaceAfter=8)) styles.add(ParagraphStyle(name='H1X', parent=styles['Heading1'], fontName='Helvetica-Bold', fontSize=17, leading=21, textColor=NAVY, spaceBefore=3, spaceAfter=8)) styles.add(ParagraphStyle(name='H2X', parent=styles['Heading2'], fontName='Helvetica-Bold', fontSize=12, leading=15, textColor=TEAL, spaceBefore=5, spaceAfter=5)) styles.add(ParagraphStyle(name='BodyX', parent=styles['BodyText'], fontName='Helvetica', fontSize=9.5, leading=13.5, textColor=INK, spaceAfter=5)) styles.add(ParagraphStyle(name='SmallX', parent=styles['BodyText'], fontName='Helvetica', fontSize=8.2, leading=10.4, textColor=INK)) styles.add(ParagraphStyle(name='QX', parent=styles['BodyText'], fontName='Helvetica', fontSize=9.4, leading=13, leftIndent=2, textColor=INK, spaceAfter=5)) styles.add(ParagraphStyle(name='AnswerX', parent=styles['BodyText'], fontName='Helvetica', fontSize=8.7, leading=11.5, textColor=INK, spaceAfter=4)) def P(t, st='BodyX'): return Paragraph(t, styles[st]) def line(n=1): return '<br/>'.join(['________________________________________________________________________________']*n) def banner(text, color=TEAL): tab=Table([[P(text,'H2X')]], colWidths=[17.2*cm]) tab.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,-1),color),('TEXTCOLOR',(0,0),(-1,-1),colors.white),('LEFTPADDING',(0,0),(-1,-1),10),('RIGHTPADDING',(0,0),(-1,-1),10),('TOPPADDING',(0,0),(-1,-1),5),('BOTTOMPADDING',(0,0),(-1,-1),5)])) # header style cannot change text currently teal styled, override using direct text? Returned h2 teal may fail actual style fixed return tab def section(text, color=TEAL): return Table([[Paragraph('<font color="#FFFFFF"><b>'+text+'</b></font>', styles['H2X'])]], colWidths=[17.2*cm], style=[('BACKGROUND',(0,0),(-1,-1),color),('LEFTPADDING',(0,0),(-1,-1),9),('TOPPADDING',(0,0),(-1,-1),4),('BOTTOMPADDING',(0,0),(-1,-1),4)]) def footer(canvas,doc): canvas.saveState(); w,h=A4 canvas.setStrokeColor(TEAL); canvas.setLineWidth(1); canvas.line(1.4*cm,1.25*cm,w-1.4*cm,1.25*cm) canvas.setFont('Helvetica',8); canvas.setFillColor(NAVY) canvas.drawString(1.4*cm,.78*cm,'PARASITE | B2+ ESL conversation handbook') canvas.drawRightString(w-1.4*cm,.78*cm,f'Page {doc.page}') canvas.restoreState() doc=SimpleDocTemplate(out,pagesize=A4,rightMargin=1.4*cm,leftMargin=1.4*cm,topMargin=1.25*cm,bottomMargin=1.6*cm) story=[] # Page 1 story += [Spacer(1,0.3*cm), P('PARASITE', 'TitleX'), P('B2+ ESL Conversation & Language Handbook', 'SubX')] intro=Table([[P('<b>Based on the supplied reading:</b> a short article about <i>Parasite</i>, non-English-language films, streaming platforms, dubbing, and audience tastes. This worksheet adds fresh speaking tasks and language practice. It discusses the film’s ideas without revealing major plot events.', 'BodyX')]],colWidths=[17.2*cm]) intro.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,-1),MINT),('BOX',(0,0),(-1,-1),.7,TEAL),('LEFTPADDING',(0,0),(-1,-1),10),('RIGHTPADDING',(0,0),(-1,-1),10),('TOPPADDING',(0,0),(-1,-1),8),('BOTTOMPADDING',(0,0),(-1,-1),8)])); story += [intro,Spacer(1,.35*cm)] story += [section('1. WARM-UP: QUICK OPINIONS',CORAL),Spacer(1,.14*cm),P('Discuss in pairs. Give a reason and an example for each answer.', 'BodyX')] warm=[['1','When you choose a film, which matters most: the story, the actors, the language, or recommendations? Why?'],['2','Would you watch a film with subtitles if everyone said it was excellent? What would persuade you?'],['3','Can a film about one city or country still feel universal? Explain.'],['4','Is entertainment a good place to discuss serious social issues, such as wealth inequality?'],['5','Do streaming platforms help audiences discover different cultures, or do they mainly promote trends?']] t=Table([[P(a,'SmallX'),P(b,'QX')] for a,b in warm],colWidths=[.7*cm,16.5*cm]);t.setStyle(TableStyle([('BACKGROUND',(0,0),(0,-1),GOLD),('GRID',(0,0),(-1,-1),.35,HexColor('#B5D9D6')),('VALIGN',(0,0),(-1,-1),'TOP'),('LEFTPADDING',(0,0),(-1,-1),7),('RIGHTPADDING',(0,0),(-1,-1),7),('TOPPADDING',(0,0),(-1,-1),5),('BOTTOMPADDING',(0,0),(-1,-1),5)]));story += [t,Spacer(1,.28*cm)] story += [section('2. FILM SNAPSHOT',TEAL),Spacer(1,.14*cm)] snap='In the reading, <i>Parasite</i> is described as a sharp <b>satire</b> set in Seoul. It contrasts two families from very different social classes: one lives in a basement flat and the other in a large house on a hill. The text suggests that the film’s focus on social divisions helped it connect with global audiences. It won the Oscar for Best Picture in 2020.' story += [Table([[P(snap,'BodyX')]],colWidths=[17.2*cm],style=[('BACKGROUND',(0,0),(-1,-1),PALE),('BOX',(0,0),(-1,-1),.5,GOLD),('LEFTPADDING',(0,0),(-1,-1),10),('RIGHTPADDING',(0,0),(-1,-1),10),('TOPPADDING',(0,0),(-1,-1),8),('BOTTOMPADDING',(0,0),(-1,-1),8)]),Spacer(1,.25*cm)] story += [section('3. CONVERSATION TOOLKIT',NAVY),Spacer(1,.12*cm),P('<b>Use these useful frames when responding:</b> “What strikes me most is …”; “I can see why …, although …”; “It raises the question of whether …”; “From the audience’s point of view, …”; “A possible counterargument is …”', 'BodyX'),Spacer(1,.1*cm),P('<b>Challenge:</b> In each answer, use one connector: <i>whereas, despite, therefore, in addition, however</i>.', 'BodyX')] story.append(PageBreak()) # Page 2 story += [P('DISCUSS DEEPLY', 'H1X'),P('Logical conversation questions about <i>Parasite</i> and global cinema', 'SubX'),section('4. SPEAKING QUESTIONS',TEAL),Spacer(1,.14*cm),P('Work in pairs or small groups. Do not only give your opinion: explain your reasoning, react to another idea, and use an example.', 'BodyX')] qs=[ ('1. Social divisions','The two homes in the reading are very different. How can a setting communicate a message about class before characters say anything?'), ('2. Local story, global response','Why might a film about social divisions in Seoul appeal to viewers who have never visited South Korea?'), ('3. Satire and impact','Is satire more effective than a serious drama for making audiences think about unfairness? Under what conditions might satire fail?'), ('4. Awards and attention','Did the Best Picture award make <i>Parasite</i> successful, or did its existing success make the award more likely? Defend your view.'), ('5. Subtitles versus dubbing','Dubbing makes content easier to access. What might be gained and lost when viewers hear a film in their own language?'), ('6. Streaming choices','Streaming services invest in local-language shows to reach new markets. Is this mainly a cultural opportunity, a business strategy, or both?'), ('7. Originality','The article says Hollywood relies heavily on remakes, sequels, and superhero films. Why might audiences sometimes prefer familiar stories, despite wanting originality?'), ('8. Recommendation test','Recommend <i>Parasite</i> to a friend who avoids subtitled films. What would you say, and what concern would you acknowledge?')] data=[] for title,q in qs: data.append([P('<b>'+title+'</b><br/>'+q+'<br/><font color="#607D8B">Notes: '+line(1)+'</font>','QX')]) t=Table(data,colWidths=[17.2*cm]);t.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,-1),colors.white),('GRID',(0,0),(-1,-1),.45,HexColor('#B7D7DD')),('VALIGN',(0,0),(-1,-1),'TOP'),('LEFTPADDING',(0,0),(-1,-1),8),('RIGHTPADDING',(0,0),(-1,-1),8),('TOPPADDING',(0,0),(-1,-1),5),('BOTTOMPADDING',(0,0),(-1,-1),5),('ROWBACKGROUNDS',(0,0),(-1,-1),[colors.white,HexColor('#F4FAFA')])])) story += [t,Spacer(1,.2*cm),P('<b>Conversation rule:</b> Ask one follow-up question after every answer: “What makes you say that?”, “Could you give an example?”, or “Would that change in another culture?”', 'BodyX')] story.append(PageBreak()) # Page 3 vocabulary story += [P('LANGUAGE BANK', 'H1X'),section('5. VOCABULARY: FILMS, SOCIETY & GLOBAL VIEWING',GOLD),Spacer(1,.15*cm),P('Read the meanings. Then use at least five items in the speaking tasks.', 'BodyX')] vocab=[ ('satire','a work that uses humour or exaggeration to criticize people or society'),('social division','a separation between groups in society, often caused by money, status, or opportunity'),('wealth gap','the difference between rich and poor people'),('basement flat','an apartment partly or completely below street level'),('prestigious','respected and admired because of high quality or importance'),('global reach','the ability to attract or influence people in many countries'),('local-language programming','films or shows made in the language of a particular place'),('dubbing','replacing the original voices with voices in another language'),('common ground','shared experiences, values, or interests'),('creative risk','a choice that may fail but could produce something new or original'),('remake','a new version of an older film'),('sequel','a film that continues the story of an earlier film'),('plot revolves around','the main story is focused on a particular person, event, or idea'),('twists and turns','surprising changes in a story'),('appeal to','be attractive or interesting to someone')] data=[[P('<b>Word / phrase</b>','SmallX'),P('<b>Meaning</b>','SmallX'),P('<b>My example / translation</b>','SmallX')]] for w,m in vocab: data.append([P(w,'SmallX'),P(m,'SmallX'),P('____________________________','SmallX')]) t=Table(data,colWidths=[4.2*cm,7.15*cm,5.85*cm],repeatRows=1);t.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,0),NAVY),('TEXTCOLOR',(0,0),(-1,0),colors.white),('GRID',(0,0),(-1,-1),.35,HexColor('#B7D7DD')),('VALIGN',(0,0),(-1,-1),'TOP'),('LEFTPADDING',(0,0),(-1,-1),6),('RIGHTPADDING',(0,0),(-1,-1),6),('TOPPADDING',(0,0),(-1,-1),4),('BOTTOMPADDING',(0,0),(-1,-1),4),('ROWBACKGROUNDS',(0,1),(-1,-1),[colors.white,LILAC])])) story += [t,Spacer(1,.22*cm),section('6. COLLOCATIONS: CHOOSE THE BEST WORD',CORAL),Spacer(1,.12*cm),P('Complete with: <i>reach, ground, risks, gap, dubbing, plot</i>.', 'BodyX'),P('1. The __________ of the film revolves around two families. 2. Improved __________ helps viewers follow films in a different language.<br/>3. Streaming platforms want to expand their global __________. 4. The film explores the wealth __________.<br/>5. People from different cultures can find common __________. 6. Studios may avoid taking creative __________.', 'QX')] story.append(PageBreak()) # Page 4 Exercises story += [P('CHECK YOUR UNDERSTANDING', 'H1X'),section('7. TRUE OR FALSE?',TEAL),Spacer(1,.12*cm),P('Write T (true) or F (false). Correct each false statement.', 'BodyX')] tf=[ '1. <i>Parasite</i> is set in Seoul. T / F Correction: ________________________________', '2. The two families in the reading have similar lifestyles and homes. T / F Correction: ________________________________', '3. The reading says the film’s social themes may have helped its international popularity. T / F Correction: ________________________________', '4. The growth of non-English-language content is linked only to cinemas, not streaming services. T / F Correction: ________________________________', '5. The article says dubbing technology has improved greatly. T / F Correction: ________________________________', '6. The article suggests viewers may want more variety and original entertainment. T / F Correction: ________________________________', '7. According to the article, Hollywood has become more willing to take creative risks. T / F Correction: ________________________________', '8. <i>Parasite</i> was the first non-English-language film to win the Best Picture Oscar. T / F Correction: ________________________________'] story += [Table([[P(x,'QX')] for x in tf],colWidths=[17.2*cm],style=[('GRID',(0,0),(-1,-1),.4,HexColor('#B7D7DD')),('BACKGROUND',(0,0),(-1,-1),colors.white),('LEFTPADDING',(0,0),(-1,-1),8),('RIGHTPADDING',(0,0),(-1,-1),8),('TOPPADDING',(0,0),(-1,-1),6),('BOTTOMPADDING',(0,0),(-1,-1),6),('ROWBACKGROUNDS',(0,0),(-1,-1),[HexColor('#F3FBFA'),colors.white])]),Spacer(1,.22*cm)] story += [section('8. FILL IN THE BLANKS',GOLD),Spacer(1,.12*cm),P('Use each word once: <i>satire, poverty, audiences, dubbing, platform, sequels, divisions, original</i>.', 'BodyX')] blanks=['1. The film is a sharp __________ about two families from different social classes.','2. One family in the article lives in __________ in a basement flat.','3. The film connected with __________ around the world.','4. Better __________ allows people to watch films in their local language.','5. A streaming __________ can bring shows to viewers in new markets.','6. Hollywood often produces remakes and __________ to successful films.','7. The story focuses on tensions around social __________.','8. Some viewers search for __________ entertainment rather than familiar formulas.'] story += [Table([[P(x,'QX')] for x in blanks],colWidths=[17.2*cm],style=[('GRID',(0,0),(-1,-1),.4,HexColor('#E7C979')),('LEFTPADDING',(0,0),(-1,-1),8),('RIGHTPADDING',(0,0),(-1,-1),8),('TOPPADDING',(0,0),(-1,-1),5),('BOTTOMPADDING',(0,0),(-1,-1),5),('ROWBACKGROUNDS',(0,0),(-1,-1),[PALE,colors.white])]),Spacer(1,.22*cm)] story += [section('9. MINI WRITING',CORAL),Spacer(1,.12*cm),P('<b>Write 90-120 words:</b> “A local film can become internationally successful without changing its cultural identity.” Do you agree? Use at least four words from the Language Bank and one contrast connector.', 'BodyX'),P(line(5),'SmallX')] story.append(PageBreak()) # answer key story += [P('TEACHER / SELF-CHECK ANSWER KEY', 'H1X'),P('Suggested answers. Conversation questions have no single correct answer. Strong answers give a clear claim, a reason, an example, and, where possible, a counterargument.', 'BodyX'),section('10. MODEL RESPONSES FOR THE SPEAKING TASKS',NAVY),Spacer(1,.12*cm)] models=[ ('<b>1. Social divisions:</b> The contrast between a basement flat and a hilltop house visually suggests unequal access to space, security, and status. Viewers can infer the class difference before the dialogue explains it.'), ('<b>2. Local story, global response:</b> Although the details are Korean, many societies have a wealth gap. People may recognize worries about housing, work, or social status in their own communities.'), ('<b>3. Satire and impact:</b> Satire can make a difficult subject easier to approach because humour attracts attention. However, it can fail if audiences focus only on the comedy and miss the criticism.'), ('<b>4. Awards and attention:</b> Both ideas are plausible. The film needed quality and early interest to be considered for awards, but the Oscar probably introduced it to much larger audiences.'), ('<b>5. Subtitles versus dubbing:</b> Dubbing reduces the effort needed to follow a story, but subtitles preserve more of the actors’ original voices. The best choice may depend on the viewer and the type of film.'), ('<b>6. Streaming choices:</b> It is both. Companies want subscribers, yet investment can also give local creators larger audiences. The cultural benefit is weaker if platforms only copy the same formula everywhere.'), ('<b>7. Originality:</b> Familiar stories feel safe and easy to market. Despite this, audiences may become bored if too many films repeat the same patterns.'), ('<b>8. Recommendation test:</b> “Try it because it mixes suspense, humour, and social commentary. The subtitles take a little attention at first, but they help you experience the performances more directly.”')] story += [Table([[P(x,'AnswerX')] for x in models],colWidths=[17.2*cm],style=[('GRID',(0,0),(-1,-1),.35,HexColor('#B7D7DD')),('LEFTPADDING',(0,0),(-1,-1),8),('RIGHTPADDING',(0,0),(-1,-1),8),('TOPPADDING',(0,0),(-1,-1),4),('BOTTOMPADDING',(0,0),(-1,-1),4),('ROWBACKGROUNDS',(0,0),(-1,-1),[HexColor('#F4FAFA'),colors.white])]),Spacer(1,.2*cm),section('11. EXERCISE ANSWERS',TEAL),Spacer(1,.1*cm)] answers='<b>Collocations:</b> 1 plot; 2 dubbing; 3 reach; 4 gap; 5 ground; 6 risks.<br/><br/><b>True / False:</b> 1 T. 2 F - The families have very different lifestyles and homes. 3 T. 4 F - Streaming services are a major reason. 5 T. 6 T. 7 F - It says Hollywood is less ready to take creative risks. 8 T.<br/><br/><b>Fill in the blanks:</b> 1 satire; 2 poverty; 3 audiences; 4 dubbing; 5 platform; 6 sequels; 7 divisions; 8 original.' story += [Table([[P(answers,'BodyX')]],colWidths=[17.2*cm],style=[('BACKGROUND',(0,0),(-1,-1),MINT),('BOX',(0,0),(-1,-1),.6,TEAL),('LEFTPADDING',(0,0),(-1,-1),10),('RIGHTPADDING',(0,0),(-1,-1),10),('TOPPADDING',(0,0),(-1,-1),8),('BOTTOMPADDING',(0,0),(-1,-1),8)]),Spacer(1,.2*cm),P('<b>Source note:</b> Content facts and topic focus are adapted from the user-supplied ESL reading “A World of Difference.” New questions, model responses, vocabulary support, and exercises were created for this worksheet.', 'SmallX')] doc.build(story,onFirstPage=footer,onLaterPages=footer) print(out) PY python -c "from pypdf import PdfReader; p='/tmp/workspace/parasite-esl-handbook/output/Parasite_B2_Plus_ESL_Handbook_Worksheet.pdf'; r=PdfReader(p); print('pages',len(r.pages)); print('size',__import__('os').path.getsize(p)); [print(i+1, (x.extract_text() or '')[:90].replace('\\n',' | ')) for i,x in enumerate(r.pages)]"
~/parasite-esl-handbook/output
Parasite B2 Plus ESL Handbook Worksheet
PDF Document · PDF
Please remove the following sections discuss deeply, snapshots, conversation toolkit,, remove the heading warm-up and write 10 questions from intensive speaking practice..Also don't mention that this colorful handbook pdf is for B2+.
~/
Parasite film Best Picture Oscar 2020 official academy
~/parasite-esl-handbook/src
mkdir -p "/tmp/workspace/parasite-esl-handbook-revised/src" "/tmp/workspace/parasite-esl-handbook-revised/output" && python - <<'PY' from reportlab.lib.pagesizes import A4 from reportlab.lib import colors from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.enums import TA_CENTER from reportlab.lib.units import cm from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, PageBreak from reportlab.lib.colors import HexColor out='/tmp/workspace/parasite-esl-handbook-revised/output/Parasite_ESL_Conversation_Handbook_Worksheet.pdf' NAVY=HexColor('#173B5B'); TEAL=HexColor('#0E9C9A'); GOLD=HexColor('#F4B942'); CORAL=HexColor('#EC6A5C'); MINT=HexColor('#E7F7F4'); PALE=HexColor('#F8F4EA'); INK=HexColor('#263238'); LILAC=HexColor('#EEE9FA') styles=getSampleStyleSheet() for n,par in { 'TitleX':dict(parent=styles['Title'],fontName='Helvetica-Bold',fontSize=25,leading=30,alignment=TA_CENTER,textColor=NAVY,spaceAfter=6), 'SubX':dict(parent=styles['Normal'],fontName='Helvetica',fontSize=11,leading=15,alignment=TA_CENTER,textColor=INK,spaceAfter=8), 'H1X':dict(parent=styles['Heading1'],fontName='Helvetica-Bold',fontSize=17,leading=21,textColor=NAVY,spaceBefore=3,spaceAfter=8), 'H2X':dict(parent=styles['Heading2'],fontName='Helvetica-Bold',fontSize=12,leading=15,textColor=TEAL,spaceBefore=5,spaceAfter=5), 'BodyX':dict(parent=styles['BodyText'],fontName='Helvetica',fontSize=9.5,leading=13.5,textColor=INK,spaceAfter=5), 'SmallX':dict(parent=styles['BodyText'],fontName='Helvetica',fontSize=8.2,leading=10.4,textColor=INK), 'QX':dict(parent=styles['BodyText'],fontName='Helvetica',fontSize=9.4,leading=13,textColor=INK,spaceAfter=4), 'AnswerX':dict(parent=styles['BodyText'],fontName='Helvetica',fontSize=8.7,leading=11.5,textColor=INK,spaceAfter=3), }.items(): styles.add(ParagraphStyle(name=n,**par)) def P(t,st='BodyX'): return Paragraph(t,styles[st]) def section(text,color=TEAL): return Table([[Paragraph(f'<font color="#FFFFFF"><b>{text}</b></font>',styles['H2X'])]],colWidths=[17.2*cm],style=[('BACKGROUND',(0,0),(-1,-1),color),('LEFTPADDING',(0,0),(-1,-1),9),('TOPPADDING',(0,0),(-1,-1),4),('BOTTOMPADDING',(0,0),(-1,-1),4)]) def footer(c,d): c.saveState();w,h=A4;c.setStrokeColor(TEAL);c.line(1.4*cm,1.25*cm,w-1.4*cm,1.25*cm);c.setFont('Helvetica',8);c.setFillColor(NAVY);c.drawString(1.4*cm,.78*cm,'PARASITE | ESL conversation handbook');c.drawRightString(w-1.4*cm,.78*cm,f'Page {d.page}');c.restoreState() doc=SimpleDocTemplate(out,pagesize=A4,rightMargin=1.4*cm,leftMargin=1.4*cm,topMargin=1.25*cm,bottomMargin=1.6*cm) story=[Spacer(1,.28*cm),P('PARASITE','TitleX'),P('ESL Conversation & Language Handbook','SubX')] intro=Table([[P('<b>Based on the supplied reading:</b> a short article about <i>Parasite</i>, non-English-language films, streaming platforms, dubbing, and audience tastes. This worksheet discusses the film’s ideas without revealing major plot events.','BodyX')]],colWidths=[17.2*cm],style=[('BACKGROUND',(0,0),(-1,-1),MINT),('BOX',(0,0),(-1,-1),.7,TEAL),('LEFTPADDING',(0,0),(-1,-1),10),('RIGHTPADDING',(0,0),(-1,-1),10),('TOPPADDING',(0,0),(-1,-1),8),('BOTTOMPADDING',(0,0),(-1,-1),8)]) story += [intro,Spacer(1,.28*cm),section('1. INTENSIVE SPEAKING PRACTICE',CORAL),Spacer(1,.12*cm),P('Work in pairs or small groups. Give a clear opinion, explain your reasons, add an example, and respond to a classmate’s idea.','BodyX')] qs=[ ('1. A visual message','The reading contrasts a basement flat with a house on a hill. What ideas about class, power, or opportunity can these places communicate before any dialogue begins?'), ('2. A universal theme','Why might a film about social inequality in Seoul connect with people who live in very different countries? Give two possible reasons.'), ('3. Comedy or drama?','Is satire a better way to make people think about unfairness than a serious drama? Explain one advantage and one limitation.'), ('4. Culture and access','Would you rather watch a foreign film with subtitles or dubbing? What is gained and lost with each option?'), ('5. Awards and popularity','Did the Best Picture Oscar make <i>Parasite</i> popular, or did its popularity make the award more likely? Can both be true?'), ('6. Business and culture','Streaming platforms invest in local-language shows to reach new viewers. Is that mainly a business decision, a cultural opportunity, or both?'), ('7. Familiar versus fresh','Why do studios continue to make remakes and sequels if audiences say they want original stories?'), ('8. The global viewer','Do you think global streaming makes people more curious about other cultures, or does it make films more similar? Support your view.'), ('9. Fair representation','When a local film becomes popular internationally, should it try to make its culture easier for foreign audiences to understand? Why or why not?'), ('10. Recommendation challenge','Recommend <i>Parasite</i> to someone who does not usually watch subtitled films. What would you say, and what concern would you honestly acknowledge?')] data=[] for head,q in qs: data.append([P(f'<b>{head}</b><br/>{q}<br/><font color="#607D8B">Notes: __________________________________________________________________________</font>','QX')]) story += [Table(data,colWidths=[17.2*cm],style=[('GRID',(0,0),(-1,-1),.4,HexColor('#B7D7DD')),('VALIGN',(0,0),(-1,-1),'TOP'),('LEFTPADDING',(0,0),(-1,-1),8),('RIGHTPADDING',(0,0),(-1,-1),8),('TOPPADDING',(0,0),(-1,-1),5),('BOTTOMPADDING',(0,0),(-1,-1),5),('ROWBACKGROUNDS',(0,0),(-1,-1),[colors.white,HexColor('#F4FAFA')])]),Spacer(1,.2*cm),P('<b>Useful response frames:</b> “What strikes me most is …”; “I can see why …, although …”; “It raises the question of whether …”; “A possible counterargument is …”','BodyX')] story.append(PageBreak()) # vocab story += [P('LANGUAGE BANK','H1X'),section('2. VOCABULARY: FILMS, SOCIETY & GLOBAL VIEWING',GOLD),Spacer(1,.15*cm),P('Read the meanings. Then use at least five items in the speaking tasks.','BodyX')] vocab=[('satire','a work that uses humour or exaggeration to criticize people or society'),('social division','a separation between groups in society, often caused by money, status, or opportunity'),('wealth gap','the difference between rich and poor people'),('basement flat','an apartment partly or completely below street level'),('prestigious','respected and admired because of high quality or importance'),('global reach','the ability to attract or influence people in many countries'),('local-language programming','films or shows made in the language of a particular place'),('dubbing','replacing the original voices with voices in another language'),('common ground','shared experiences, values, or interests'),('creative risk','a choice that may fail but could produce something new or original'),('remake','a new version of an older film'),('sequel','a film that continues the story of an earlier film'),('plot revolves around','the main story is focused on a particular person, event, or idea'),('twists and turns','surprising changes in a story'),('appeal to','be attractive or interesting to someone')] data=[[P('<b>Word / phrase</b>','SmallX'),P('<b>Meaning</b>','SmallX'),P('<b>My example / translation</b>','SmallX')]]+[[P(w,'SmallX'),P(m,'SmallX'),P('____________________________','SmallX')] for w,m in vocab] story += [Table(data,colWidths=[4.2*cm,7.15*cm,5.85*cm],repeatRows=1,style=[('BACKGROUND',(0,0),(-1,0),NAVY),('TEXTCOLOR',(0,0),(-1,0),colors.white),('GRID',(0,0),(-1,-1),.35,HexColor('#B7D7DD')),('VALIGN',(0,0),(-1,-1),'TOP'),('LEFTPADDING',(0,0),(-1,-1),6),('RIGHTPADDING',(0,0),(-1,-1),6),('TOPPADDING',(0,0),(-1,-1),4),('BOTTOMPADDING',(0,0),(-1,-1),4),('ROWBACKGROUNDS',(0,1),(-1,-1),[colors.white,LILAC])]),Spacer(1,.22*cm),section('3. COLLOCATIONS: CHOOSE THE BEST WORD',CORAL),Spacer(1,.12*cm),P('Complete with: <i>reach, ground, risks, gap, dubbing, plot</i>.','BodyX'),P('1. The __________ of the film revolves around two families. 2. Improved __________ helps viewers follow films in a different language.<br/>3. Streaming platforms want to expand their global __________. 4. The film explores the wealth __________.<br/>5. People from different cultures can find common __________. 6. Studios may avoid taking creative __________.','QX')] story.append(PageBreak()) # exercise story += [P('CHECK YOUR UNDERSTANDING','H1X'),section('4. TRUE OR FALSE?',TEAL),Spacer(1,.12*cm),P('Write T (true) or F (false). Correct each false statement.','BodyX')] tf=['1. <i>Parasite</i> is set in Seoul. T / F Correction: ________________________________','2. The two families in the reading have similar lifestyles and homes. T / F Correction: ________________________________','3. The reading says the film’s social themes may have helped its international popularity. T / F Correction: ________________________________','4. The growth of non-English-language content is linked only to cinemas, not streaming services. T / F Correction: ________________________________','5. The article says dubbing technology has improved greatly. T / F Correction: ________________________________','6. The article suggests viewers may want more variety and original entertainment. T / F Correction: ________________________________','7. According to the article, Hollywood has become more willing to take creative risks. T / F Correction: ________________________________','8. <i>Parasite</i> was the first non-English-language film to win the Best Picture Oscar. T / F Correction: ________________________________'] story += [Table([[P(x,'QX')] for x in tf],colWidths=[17.2*cm],style=[('GRID',(0,0),(-1,-1),.4,HexColor('#B7D7DD')),('LEFTPADDING',(0,0),(-1,-1),8),('RIGHTPADDING',(0,0),(-1,-1),8),('TOPPADDING',(0,0),(-1,-1),6),('BOTTOMPADDING',(0,0),(-1,-1),6),('ROWBACKGROUNDS',(0,0),(-1,-1),[HexColor('#F3FBFA'),colors.white])]),Spacer(1,.22*cm),section('5. FILL IN THE BLANKS',GOLD),Spacer(1,.12*cm),P('Use each word once: <i>satire, poverty, audiences, dubbing, platform, sequels, divisions, original</i>.','BodyX')] blanks=['1. The film is a sharp __________ about two families from different social classes.','2. One family in the article lives in __________ in a basement flat.','3. The film connected with __________ around the world.','4. Better __________ allows people to watch films in their local language.','5. A streaming __________ can bring shows to viewers in new markets.','6. Hollywood often produces remakes and __________ to successful films.','7. The story focuses on tensions around social __________.','8. Some viewers search for __________ entertainment rather than familiar formulas.'] story += [Table([[P(x,'QX')] for x in blanks],colWidths=[17.2*cm],style=[('GRID',(0,0),(-1,-1),.4,HexColor('#E7C979')),('LEFTPADDING',(0,0),(-1,-1),8),('RIGHTPADDING',(0,0),(-1,-1),8),('TOPPADDING',(0,0),(-1,-1),5),('BOTTOMPADDING',(0,0),(-1,-1),5),('ROWBACKGROUNDS',(0,0),(-1,-1),[PALE,colors.white])]),Spacer(1,.22*cm),section('6. MINI WRITING',CORAL),Spacer(1,.12*cm),P('<b>Write 90-120 words:</b> “A local film can become internationally successful without changing its cultural identity.” Do you agree? Use at least four words from the Language Bank and one contrast connector.','BodyX'),P('________________________________________________________________________________<br/>________________________________________________________________________________<br/>________________________________________________________________________________<br/>________________________________________________________________________________<br/>________________________________________________________________________________','SmallX')] story.append(PageBreak()) # key story += [P('TEACHER / SELF-CHECK ANSWER KEY','H1X'),P('Suggested answers. The intensive speaking questions have no single correct answer. Strong answers give a clear claim, a reason, an example, and a counterargument where appropriate.','BodyX'),section('7. SAMPLE IDEAS FOR INTENSIVE SPEAKING',NAVY),Spacer(1,.12*cm)] models=['<b>1.</b> The difference in housing can suggest unequal access to security, space, and social status before characters explain it.','<b>2.</b> Social inequality, housing, and status are familiar issues in many places, so viewers may find common ground with the characters.','<b>3.</b> Satire can make a difficult subject easier to approach, but it may fail if people only notice the humour and miss the criticism.','<b>4.</b> Dubbing is convenient, whereas subtitles preserve the original voices and performances. The better option depends on the viewer.','<b>5.</b> Both can be true: awards increase attention, but a film needs strong early interest and quality to be considered for them.','<b>6.</b> It is both a business strategy and a cultural opportunity, although cultural benefits are weaker if every programme follows the same formula.','<b>7.</b> Familiar stories are less risky to market, even if audiences can become bored by repetition.','<b>8.</b> Streaming can encourage curiosity about other cultures, but its recommendation systems may also push similar types of content.','<b>9.</b> A film does not need to simplify its identity, but it can provide enough context for viewers to follow the story.','<b>10.</b> “Try it because it combines suspense, humour, and social commentary. The subtitles require attention at first, but they preserve the original performances.”'] story += [Table([[P(x,'AnswerX')] for x in models],colWidths=[17.2*cm],style=[('GRID',(0,0),(-1,-1),.35,HexColor('#B7D7DD')),('LEFTPADDING',(0,0),(-1,-1),8),('RIGHTPADDING',(0,0),(-1,-1),8),('TOPPADDING',(0,0),(-1,-1),4),('BOTTOMPADDING',(0,0),(-1,-1),4),('ROWBACKGROUNDS',(0,0),(-1,-1),[HexColor('#F4FAFA'),colors.white])]),Spacer(1,.2*cm),section('8. EXERCISE ANSWERS',TEAL),Spacer(1,.1*cm)] ans='<b>Collocations:</b> 1 plot; 2 dubbing; 3 reach; 4 gap; 5 ground; 6 risks.<br/><br/><b>True / False:</b> 1 T. 2 F - The families have very different lifestyles and homes. 3 T. 4 F - Streaming services are a major reason. 5 T. 6 T. 7 F - It says Hollywood is less ready to take creative risks. 8 T.<br/><br/><b>Fill in the blanks:</b> 1 satire; 2 poverty; 3 audiences; 4 dubbing; 5 platform; 6 sequels; 7 divisions; 8 original.' story += [Table([[P(ans,'BodyX')]],colWidths=[17.2*cm],style=[('BACKGROUND',(0,0),(-1,-1),MINT),('BOX',(0,0),(-1,-1),.6,TEAL),('LEFTPADDING',(0,0),(-1,-1),10),('RIGHTPADDING',(0,0),(-1,-1),10),('TOPPADDING',(0,0),(-1,-1),8),('BOTTOMPADDING',(0,0),(-1,-1),8)]),Spacer(1,.2*cm),P('<b>Source note:</b> Topic facts are adapted from the user-supplied reading “A World of Difference.” The questions, language support, exercises, and sample ideas were newly created for this worksheet.','SmallX')] doc.build(story,onFirstPage=footer,onLaterPages=footer) print(out) PY python -c "from pypdf import PdfReader; import os; p='/tmp/workspace/parasite-esl-handbook-revised/output/Parasite_ESL_Conversation_Handbook_Worksheet.pdf'; r=PdfReader(p); txt=' '.join((pg.extract_text() or '') for pg in r.pages); print('pages:',len(r.pages),'bytes:',os.path.getsize(p)); print('has B2+', 'B2+' in txt); print('has Discuss Deeply', 'DISCUSS DEEPLY' in txt); print('has Snapshot', 'SNAPSHOT' in txt); print('questions',txt.count('1. A visual message'), txt.count('10. Recommendation challenge'))"
Parasite ESL Conversation Handbook Worksheet
PDF Document · PDF