The images are given these are my physiology syllabus Tommorow is final exam of bpt please tell important topics and answer all the topics
Prepare a pdf off the topics with answers and important topics and diagrams and image's
mkdir -p /tmp/workspace/bpt-psychology && ls /tmp/workspace/
~/bpt-psychology/make_pdf.py
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import inch, cm
from reportlab.platypus import (SimpleDocTemplate, Paragraph, Spacer, Table,
TableStyle, PageBreak, HRFlowable, KeepTogether)
from reportlab.platypus import Flowable
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
from reportlab.graphics.shapes import Drawing, Rect, String, Line, Circle, Polygon
from reportlab.graphics import renderPDF
from reportlab.platypus import Image as RLImage
import io
# βββ Color Palette βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
DARK_BLUE = colors.HexColor("#1a237e")
MID_BLUE = colors.HexColor("#1565c0")
LIGHT_BLUE = colors.HexColor("#e3f2fd")
ACCENT = colors.HexColor("#ff6f00")
ACCENT_LIGHT= colors.HexColor("#fff8e1")
GREEN = colors.HexColor("#2e7d32")
GREEN_LIGHT = colors.HexColor("#e8f5e9")
RED = colors.HexColor("#c62828")
RED_LIGHT = colors.HexColor("#ffebee")
PURPLE = colors.HexColor("#6a1b9a")
PURPLE_LIGHT= colors.HexColor("#f3e5f5")
TEAL = colors.HexColor("#00695c")
TEAL_LIGHT = colors.HexColor("#e0f2f1")
GRAY_BG = colors.HexColor("#f5f5f5")
DARK_TEXT = colors.HexColor("#212121")
WHITE = colors.white
PAGE_W, PAGE_H = A4
# βββ Styles ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
styles = getSampleStyleSheet()
def S(name, **kw):
return ParagraphStyle(name, **kw)
cover_title = S("CoverTitle", fontSize=32, textColor=WHITE,
fontName="Helvetica-Bold", alignment=TA_CENTER, leading=40)
cover_sub = S("CoverSub", fontSize=16, textColor=WHITE,
fontName="Helvetica", alignment=TA_CENTER, leading=22)
cover_info = S("CoverInfo", fontSize=12, textColor=WHITE,
fontName="Helvetica", alignment=TA_CENTER, leading=18)
unit_title = S("UnitTitle", fontSize=18, textColor=WHITE,
fontName="Helvetica-Bold", alignment=TA_CENTER,
backColor=DARK_BLUE, borderPadding=(8,10,8,10), leading=26)
ch_title = S("ChTitle", fontSize=14, textColor=WHITE,
fontName="Helvetica-Bold", alignment=TA_LEFT,
backColor=MID_BLUE, borderPadding=(6,8,6,8), leading=20)
topic_title = S("TopicTitle", fontSize=13, textColor=DARK_BLUE,
fontName="Helvetica-Bold", leading=18, spaceBefore=10)
important = S("Important", fontSize=12, textColor=ACCENT,
fontName="Helvetica-Bold", leading=16)
body = S("Body", fontSize=10, textColor=DARK_TEXT,
fontName="Helvetica", leading=15, spaceAfter=4,
alignment=TA_JUSTIFY)
bullet = S("Bullet", fontSize=10, textColor=DARK_TEXT,
fontName="Helvetica", leading=15, leftIndent=18,
spaceAfter=3, bulletIndent=8)
note_style = S("Note", fontSize=9.5, textColor=colors.HexColor("#5d4037"),
fontName="Helvetica-Oblique", leading=14,
borderPadding=(6,8,6,8), backColor=ACCENT_LIGHT,
leftIndent=10, rightIndent=10)
def_style = S("Def", fontSize=10, textColor=DARK_TEXT,
fontName="Helvetica", leading=15,
borderPadding=(6,8,6,8), backColor=LIGHT_BLUE,
leftIndent=10, rightIndent=10)
# βββ Helpers βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
def sp(h=8):
return Spacer(1, h)
def hr(color=MID_BLUE, thickness=1):
return HRFlowable(width="100%", thickness=thickness, color=color,
spaceAfter=6, spaceBefore=4)
def star_para(text, style=body):
return Paragraph(f"<b>β
</b> {text}", style)
def bullet_para(text, style=bullet):
return Paragraph(f"β’ {text}", style)
def heading(text, level=1):
if level == 1:
return Paragraph(text, unit_title)
elif level == 2:
return Paragraph(text, ch_title)
else:
return Paragraph(text, topic_title)
def important_box(text):
data = [[Paragraph(f"<b>β IMPORTANT:</b> {text}", note_style)]]
t = Table(data, colWidths=[450])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), ACCENT_LIGHT),
("BOX", (0,0), (-1,-1), 1, ACCENT),
("ROUNDEDCORNERS", [6]),
("TOPPADDING", (0,0), (-1,-1), 6),
("BOTTOMPADDING",(0,0), (-1,-1), 6),
]))
return t
def section_box(title, items, bg=LIGHT_BLUE, border=MID_BLUE):
content = [Paragraph(f"<b>{title}</b>", S("bh", fontSize=11,
textColor=border, fontName="Helvetica-Bold", leading=16))]
for item in items:
content.append(Paragraph(f"β’ {item}", bullet))
data = [[content]]
t = Table(data, colWidths=[450])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), bg),
("BOX", (0,0), (-1,-1), 1.5, border),
("TOPPADDING", (0,0), (-1,-1), 8),
("BOTTOMPADDING",(0,0), (-1,-1), 8),
("LEFTPADDING", (0,0), (-1,-1), 10),
]))
return t
def comparison_table(headers, rows, col_colors=None):
header_row = [Paragraph(f"<b>{h}</b>",
S("th", fontSize=10, textColor=WHITE,
fontName="Helvetica-Bold", alignment=TA_CENTER, leading=14))
for h in headers]
data = [header_row]
for row in rows:
data.append([Paragraph(str(c), S("td", fontSize=9.5,
textColor=DARK_TEXT, fontName="Helvetica", leading=14))
for c in row])
col_w = 450 / len(headers)
t = Table(data, colWidths=[col_w]*len(headers))
style = [
("BACKGROUND", (0,0), (-1,0), DARK_BLUE),
("TEXTCOLOR", (0,0), (-1,0), WHITE),
("GRID", (0,0), (-1,-1), 0.5, colors.HexColor("#90caf9")),
("ROWBACKGROUNDS",(0,1), (-1,-1), [WHITE, LIGHT_BLUE]),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6),
("ALIGN", (0,0), (-1,-1), "LEFT"),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
]
t.setStyle(TableStyle(style))
return t
# βββ Diagrams ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
def maslow_diagram():
"""Draw Maslow's Hierarchy of Needs pyramid."""
d = Drawing(460, 240)
levels = [
("Self-Actualization", colors.HexColor("#7b1fa2")),
("Esteem Needs", colors.HexColor("#1565c0")),
("Love & Belonging", colors.HexColor("#00838f")),
("Safety Needs", colors.HexColor("#2e7d32")),
("Physiological", colors.HexColor("#e65100")),
]
base_y = 10
level_h = 38
cx = 230
for i, (label, col) in enumerate(levels):
# bottom = widest, top = narrowest
half_w = 40 + i * 38
inv = 4 - i # invert so physiological is at bottom
half_w2 = 40 + inv * 38
y = base_y + i * level_h
# trapezoid
pts = [cx - half_w2, y,
cx + half_w2, y,
cx + half_w2 - 30, y + level_h,
cx - half_w2 + 30, y + level_h]
# actually draw rectangle bands with tapering
x0 = cx - half_w2
x1 = cx + half_w2
rect = Rect(x0, y, x1 - x0, level_h - 1, fillColor=col,
strokeColor=WHITE, strokeWidth=1)
d.add(rect)
txt = String(cx, y + level_h/2 - 5, label,
fontSize=9, fillColor=WHITE,
fontName="Helvetica-Bold", textAnchor="middle")
d.add(txt)
# Label
lbl = String(cx, 205, "MASLOW'S HIERARCHY OF NEEDS",
fontSize=11, fillColor=DARK_BLUE,
fontName="Helvetica-Bold", textAnchor="middle")
d.add(lbl)
return d
def gas_diagram():
"""Draw Selye's GAS 3-stage diagram."""
d = Drawing(460, 120)
stages = [
("ALARM\nSTAGE", "Fight or Flight\nAdrenaline surge", colors.HexColor("#c62828")),
("RESISTANCE\nSTAGE", "Body adapts\nResources mobilized", colors.HexColor("#e65100")),
("EXHAUSTION\nSTAGE", "Resources depleted\nIllness / Breakdown", colors.HexColor("#4a148c")),
]
bw = 130
for i, (title, desc, col) in enumerate(stages):
x = 10 + i * 150
r = Rect(x, 20, bw, 80, fillColor=col, strokeColor=WHITE, strokeWidth=1.5,
rx=8, ry=8)
d.add(r)
for j, line in enumerate(title.split("\n")):
d.add(String(x + bw/2, 90 - j*14, line,
fontSize=9, fillColor=WHITE,
fontName="Helvetica-Bold", textAnchor="middle"))
for j, line in enumerate(desc.split("\n")):
d.add(String(x + bw/2, 55 - j*12, line,
fontSize=8, fillColor=WHITE,
fontName="Helvetica", textAnchor="middle"))
if i < 2:
ax = x + bw + 1
ay = 60
d.add(Line(ax, ay, ax + 18, ay,
strokeColor=DARK_BLUE, strokeWidth=2))
d.add(String(ax + 10, ay + 2, "β",
fontSize=14, fillColor=DARK_BLUE, textAnchor="middle"))
d.add(String(230, 10, "SELYE'S GENERAL ADAPTATION SYNDROME (GAS)",
fontSize=9, fillColor=DARK_BLUE,
fontName="Helvetica-Bold", textAnchor="middle"))
return d
def emotion_theory_diagram():
"""James-Lange vs Cannon-Bard flow diagram."""
d = Drawing(460, 150)
# JL chain
d.add(String(10, 135, "James-Lange Theory:", fontSize=9,
fillColor=RED, fontName="Helvetica-Bold"))
jl = [("Stimulus", colors.HexColor("#1565c0")),
("Physiological\nChange", colors.HexColor("#c62828")),
("EMOTION\n(Felt)", colors.HexColor("#2e7d32"))]
for i, (lbl, col) in enumerate(jl):
x = 10 + i*140
d.add(Rect(x, 100, 120, 32, fillColor=col, strokeColor=WHITE,
strokeWidth=1, rx=5, ry=5))
for j, ln in enumerate(lbl.split("\n")):
d.add(String(x+60, 123 - j*12, ln, fontSize=8, fillColor=WHITE,
fontName="Helvetica-Bold", textAnchor="middle"))
if i < 2:
d.add(String(x+130, 119, "β", fontSize=14,
fillColor=DARK_BLUE, textAnchor="middle"))
# CB chain
d.add(String(10, 88, "Cannon-Bard Theory:", fontSize=9,
fillColor=PURPLE, fontName="Helvetica-Bold"))
d.add(Rect(10, 50, 100, 30, fillColor=colors.HexColor("#1565c0"),
strokeColor=WHITE, strokeWidth=1, rx=5, ry=5))
d.add(String(60, 68, "Stimulus", fontSize=8, fillColor=WHITE,
fontName="Helvetica-Bold", textAnchor="middle"))
d.add(String(120, 70, "β", fontSize=14, fillColor=DARK_BLUE,
textAnchor="middle"))
d.add(Rect(130, 50, 100, 30, fillColor=PURPLE,
strokeColor=WHITE, strokeWidth=1, rx=5, ry=5))
d.add(String(180, 68, "Thalamus", fontSize=8, fillColor=WHITE,
fontName="Helvetica-Bold", textAnchor="middle"))
# Two arrows up and down
d.add(String(240, 78, "β", fontSize=14, fillColor=RED,
textAnchor="middle"))
d.add(String(240, 55, "β", fontSize=14, fillColor=GREEN,
textAnchor="middle"))
d.add(Rect(260, 65, 110, 24, fillColor=RED, strokeColor=WHITE,
strokeWidth=1, rx=4, ry=4))
d.add(String(315, 80, "EMOTION", fontSize=8, fillColor=WHITE,
fontName="Helvetica-Bold", textAnchor="middle"))
d.add(Rect(260, 35, 110, 24, fillColor=GREEN, strokeColor=WHITE,
strokeWidth=1, rx=4, ry=4))
d.add(String(315, 50, "Body Response", fontSize=8, fillColor=WHITE,
fontName="Helvetica-Bold", textAnchor="middle"))
d.add(String(230, 115, "β
Emotion and body response occur SIMULTANEOUSLY via thalamus",
fontSize=8, fillColor=PURPLE, fontName="Helvetica-Oblique",
textAnchor="middle"))
return d
def stm_ltm_diagram():
d = Drawing(460, 80)
cols = [
("SHORT-TERM MEMORY\n(STM)", ["Duration: 15-30 sec", "Capacity: 7Β±2 items",
"Acoustic encoding", "Displacement forgetting"], colors.HexColor("#1565c0")),
("LONG-TERM MEMORY\n(LTM)", ["Duration: Unlimited", "Capacity: Unlimited",
"Semantic encoding", "Interference/decay"], colors.HexColor("#2e7d32")),
]
for i, (title, items, col) in enumerate(cols):
x = 10 + i*230
d.add(Rect(x, 5, 215, 70, fillColor=col, strokeColor=WHITE,
strokeWidth=1.5, rx=6, ry=6))
for j, ln in enumerate(title.split("\n")):
d.add(String(x+107, 68 - j*12, ln, fontSize=9, fillColor=WHITE,
fontName="Helvetica-Bold", textAnchor="middle"))
for j, item in enumerate(items):
d.add(String(x+107, 42 - j*11, "β’ " + item, fontSize=7.5,
fillColor=WHITE, fontName="Helvetica",
textAnchor="middle"))
d.add(String(230, 77, "STM ββ LTM (via Rehearsal & Encoding)",
fontSize=8.5, fillColor=DARK_BLUE,
fontName="Helvetica-Bold", textAnchor="middle"))
return d
def learning_diagram():
d = Drawing(460, 90)
types = [
("Trial &\nError", "Thorndike", colors.HexColor("#e65100")),
("Classical\nCond.", "Pavlov", colors.HexColor("#1565c0")),
("Operant\nCond.", "Skinner", colors.HexColor("#2e7d32")),
("Insight\nLearning", "Kohler", colors.HexColor("#6a1b9a")),
]
bw = 100
for i, (title, person, col) in enumerate(types):
x = 10 + i*112
d.add(Rect(x, 20, bw, 60, fillColor=col, strokeColor=WHITE,
strokeWidth=1.5, rx=6, ry=6))
for j, ln in enumerate(title.split("\n")):
d.add(String(x+50, 72 - j*12, ln, fontSize=9, fillColor=WHITE,
fontName="Helvetica-Bold", textAnchor="middle"))
d.add(String(x+50, 32, person, fontSize=8, fillColor=WHITE,
fontName="Helvetica-Oblique", textAnchor="middle"))
d.add(String(230, 10, "4 TYPES OF LEARNING", fontSize=10, fillColor=DARK_BLUE,
fontName="Helvetica-Bold", textAnchor="middle"))
return d
def psychotherapy_diagram():
d = Drawing(460, 110)
types = [
("Psycho-\nanalytic", "Freud", colors.HexColor("#4a148c")),
("Behaviour\nTherapy", "Skinner", colors.HexColor("#1565c0")),
("CBT", "Beck", colors.HexColor("#c62828")),
("Humanistic", "Rogers", colors.HexColor("#2e7d32")),
("Group\nTherapy", "Multiple", colors.HexColor("#e65100")),
]
bw = 80
for i, (title, person, col) in enumerate(types):
x = 10 + i*90
d.add(Rect(x, 20, bw, 70, fillColor=col, strokeColor=WHITE,
strokeWidth=1.5, rx=6, ry=6))
for j, ln in enumerate(title.split("\n")):
d.add(String(x+40, 80 - j*13, ln, fontSize=8.5, fillColor=WHITE,
fontName="Helvetica-Bold", textAnchor="middle"))
d.add(String(x+40, 30, person, fontSize=7.5, fillColor=WHITE,
fontName="Helvetica-Oblique", textAnchor="middle"))
d.add(String(230, 10, "TYPES OF PSYCHOTHERAPY", fontSize=10, fillColor=DARK_BLUE,
fontName="Helvetica-Bold", textAnchor="middle"))
return d
def acceptance_stages_diagram():
d = Drawing(460, 80)
stages = ["Denial", "Anger", "Bargaining", "Depression", "Acceptance"]
cols_list = [colors.HexColor("#c62828"), colors.HexColor("#e65100"),
colors.HexColor("#f9a825"), colors.HexColor("#1565c0"),
colors.HexColor("#2e7d32")]
bw = 82
for i, (stage, col) in enumerate(zip(stages, cols_list)):
x = 5 + i*90
d.add(Rect(x, 20, bw, 45, fillColor=col, strokeColor=WHITE,
strokeWidth=1, rx=5, ry=5))
d.add(String(x+41, 45, stage, fontSize=9, fillColor=WHITE,
fontName="Helvetica-Bold", textAnchor="middle"))
if i < 4:
d.add(String(x+bw+3, 46, "β", fontSize=12, fillColor=DARK_BLUE,
textAnchor="middle"))
d.add(String(230, 10, "STAGES OF ACCEPTANCE OF DISABILITY (KΓΌbler-Ross)",
fontSize=9, fillColor=DARK_BLUE, fontName="Helvetica-Bold",
textAnchor="middle"))
return d
# βββ Cover Page ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
class CoverBackground(Flowable):
def draw(self):
c = self.canv
w, h = PAGE_W, PAGE_H
# background gradient simulation
c.setFillColor(DARK_BLUE)
c.rect(0, 0, w, h, fill=1, stroke=0)
c.setFillColor(MID_BLUE)
c.rect(0, h*0.35, w, h*0.65, fill=1, stroke=0)
# decorative circles
c.setFillColor(colors.HexColor("#ffffff18"))
c.circle(w*0.85, h*0.8, 130, fill=1, stroke=0)
c.circle(w*0.1, h*0.2, 90, fill=1, stroke=0)
c.circle(w*0.5, h*0.92, 60, fill=1, stroke=0)
def wrap(self, *args):
return (0, 0)
# βββ Build Document ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
def build_pdf(output_path):
doc = SimpleDocTemplate(
output_path, pagesize=A4,
leftMargin=2.2*cm, rightMargin=2.2*cm,
topMargin=2*cm, bottomMargin=2*cm,
title="BPT Psychology - Complete Exam Notes",
author="Orris AI"
)
story = []
# ββ COVER ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(CoverBackground())
story.append(sp(80))
story.append(Paragraph("π§ PSYCHOLOGY", cover_title))
story.append(sp(12))
story.append(Paragraph("Complete Exam Notes for BPT Students", cover_sub))
story.append(sp(8))
story.append(Paragraph("All 5 Units | Important Topics Highlighted | Diagrams & Tables",
cover_info))
story.append(sp(20))
story.append(Paragraph("ββββββββββββββββββββββββββββββββ", cover_info))
story.append(sp(10))
story.append(Paragraph("BPT Final Examination Preparation", cover_sub))
story.append(sp(6))
story.append(Paragraph("Prepared by Orris AI Β· July 2026", cover_info))
story.append(PageBreak())
# ββ TABLE OF CONTENTS ββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(heading("TABLE OF CONTENTS", 1))
story.append(sp(6))
toc_data = [
["Unit", "Topic", "Page"],
["1", "General Psychology - Definition, Methods, Heredity & Environment", "3"],
["2", "Learning, Memory, Perceptual Process", "5"],
["3", "Emotion, Motivation, Intelligence, Personality, Child Psychology", "9"],
["4", "Applied Psychology - Human Engineering, Decision Making, Stress", "14"],
["5", "Rehabilitation Psychology, Mental Disorders, Psychotherapy", "18"],
["β
", "Important Topics Quick Revision Summary", "25"],
]
toc_style = [
("BACKGROUND", (0,0), (-1,0), DARK_BLUE),
("TEXTCOLOR", (0,0), (-1,0), WHITE),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,-1), 10),
("GRID", (0,0), (-1,-1), 0.5, colors.HexColor("#90caf9")),
("ROWBACKGROUNDS",(0,1), (-1,-1), [WHITE, LIGHT_BLUE]),
("TOPPADDING", (0,0), (-1,-1), 6),
("BOTTOMPADDING", (0,0), (-1,-1), 6),
("LEFTPADDING", (0,0), (-1,-1), 8),
]
toc_table = Table(toc_data, colWidths=[40, 350, 50])
toc_table.setStyle(TableStyle(toc_style))
story.append(toc_table)
story.append(PageBreak())
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# UNIT 1
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(heading("UNIT 1 - GENERAL PSYCHOLOGY", 1))
story.append(sp(8))
# Ch1
story.append(heading("Chapter 1: Definition & Scope of Psychology", 2))
story.append(sp(4))
story.append(Paragraph("<b>Definition of Psychology</b>", topic_title))
story.append(Paragraph(
"Psychology is the <b>scientific study of mind, consciousness, and behavior</b>. "
"The word derives from Greek: <i>Psyche</i> (mind/soul) + <i>Logos</i> (study).",
body))
story.append(Paragraph(
"Modern definition (Watson): <i>'Psychology is the science of behavior and mental processes.'</i>",
def_style))
story.append(sp(6))
story.append(Paragraph("<b>β Scope and Branches of Psychology</b>", topic_title))
branches = comparison_table(
["Branch", "Focus Area"],
[["Clinical Psychology", "Mental disorders, assessment & treatment"],
["Rehabilitation Psychology", "Disability, recovery, adjustment"],
["Educational Psychology", "Learning, teaching, school behavior"],
["Industrial/Org. Psychology", "Workplace behavior, HR"],
["Social Psychology", "Group behavior, social influence"],
["Developmental Psychology", "Growth across the lifespan"],
["Health Psychology", "Mind-body relationship, illness behavior"],
["Neuropsychology", "Brain structure and behavior"]])
story.append(branches)
story.append(sp(8))
# Ch2
story.append(heading("Chapter 2: Methods, Heredity & Environment", 2))
story.append(sp(4))
story.append(Paragraph("<b>β Methods of Psychology</b>", topic_title))
for m, d in [
("1. Introspection",
"Looking inward at one's own mental processes. Oldest method. <b>Limitation</b>: subjective, cannot be verified."),
("2. Observation",
"Systematic watching of behavior. Naturalistic (natural setting) vs Controlled (lab setting). More objective."),
("3. Experimentation",
"Most scientific method. Uses Independent Variable (IV) and Dependent Variable (DV). Establishes cause-effect relationships."),
]:
story.append(Paragraph(f"<b>{m}</b> - {d}", bullet))
story.append(sp(6))
story.append(Paragraph("<b>β Heredity vs Environment (Nature vs Nurture)</b>", topic_title))
story.append(comparison_table(
["Aspect", "Heredity (Nature)", "Environment (Nurture)"],
[["Source", "Genes from parents", "Experiences after birth"],
["Examples", "Eye color, blood type, temperament", "Language, culture, education"],
["Role in Intelligence", "~50%", "~50%"],
["Supporters", "Nativists (Chomsky, Descartes)", "Empiricists (Locke, Watson)"],
["Modern View", "Both interact (Interactionist approach)", "Both interact"]]))
story.append(sp(4))
story.append(important_box(
"Nature vs Nurture: Modern view is INTERACTIONIST - both heredity and environment "
"work together to shape personality, intelligence, and behavior."))
story.append(PageBreak())
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# UNIT 2
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(heading("UNIT 2 - LEARNING, MEMORY & PERCEPTION", 1))
story.append(sp(8))
story.append(heading("Chapter 1: Learning", 2))
story.append(sp(4))
story.append(important_box("Types of Learning is one of the MOST ASKED topics in BPT exams!"))
story.append(sp(6))
story.append(Paragraph("Diagram: 4 Types of Learning", important))
story.append(learning_diagram())
story.append(sp(8))
learning_rows = [
["Trial & Error", "Thorndike", "Repeated attempts until success; Law of Effect",
"Cat in puzzle box"],
["Classical Conditioning", "Pavlov", "Learning by association (CS+USβCR)",
"Dog salivates to bell"],
["Operant/Instrumental", "Skinner", "Learning through consequences (reinforcement/punishment)",
"Rat pressing lever"],
["Insight Learning", "Kohler", "Sudden understanding; 'Aha!' moment",
"Ape using stick for banana"],
]
story.append(comparison_table(
["Type", "Theorist", "Key Principle", "Example"],
learning_rows))
story.append(sp(6))
story.append(Paragraph("<b>Classical Conditioning - Key Terms</b>", topic_title))
for term, defn in [
("US (Unconditioned Stimulus)", "Naturally triggers a response (e.g. food)"),
("UR (Unconditioned Response)", "Natural response to US (e.g. salivation)"),
("CS (Conditioned Stimulus)", "Neutral stimulus paired with US (e.g. bell)"),
("CR (Conditioned Response)", "Learned response to CS (e.g. salivation to bell)"),
("Extinction", "CS presented without US β CR weakens and disappears"),
("Generalization", "Similar stimuli produce same response"),
("Discrimination", "Distinguishing between similar stimuli"),
]:
story.append(Paragraph(f"<b>{term}</b>: {defn}", bullet))
story.append(sp(6))
story.append(Paragraph("<b>Operant Conditioning - Key Terms</b>", topic_title))
story.append(comparison_table(
["Term", "Definition", "Effect on Behavior"],
[["Positive Reinforcement", "Adding pleasant stimulus", "Increases behavior"],
["Negative Reinforcement", "Removing unpleasant stimulus", "Increases behavior"],
["Punishment", "Adding unpleasant / removing pleasant stimulus", "Decreases behavior"],
["Extinction", "Withholding reinforcement", "Behavior gradually disappears"]]))
story.append(sp(8))
# Memory
story.append(heading("Chapter 2: Memory", 2))
story.append(sp(4))
story.append(important_box("Memory - STM vs LTM comparison is almost always asked in exams!"))
story.append(sp(6))
story.append(Paragraph("Diagram: STM vs LTM", important))
story.append(stm_ltm_diagram())
story.append(sp(8))
story.append(Paragraph("<b>Stages/Steps of Memory</b>", topic_title))
for s, d in [("1. Encoding", "Converting information into memory code"),
("2. Storage", "Retaining encoded information over time"),
("3. Retrieval", "Accessing and bringing stored info to consciousness")]:
story.append(Paragraph(f"<b>{s}</b>: {d}", bullet))
story.append(sp(6))
story.append(comparison_table(
["Feature", "STM", "LTM"],
[["Duration", "15-30 seconds", "Lifetime (unlimited)"],
["Capacity", "7 Β± 2 items (Miller's Law)", "Unlimited"],
["Encoding type", "Acoustic (sound)", "Semantic (meaning)"],
["Forgetting cause", "Displacement", "Interference / Decay"],
["Example", "Phone number just heard", "Childhood memories, skills"]]))
story.append(sp(6))
story.append(Paragraph("<b>β Causes of Forgetting</b>", topic_title))
for cause, detail in [
("Decay Theory", "Memory trace fades with disuse over time"),
("Interference Theory",
"Proactive: Old memories interfere with new | Retroactive: New memories interfere with old"),
("Retrieval Failure", "Tip-of-tongue phenomenon; cue-dependent forgetting"),
("Repression (Freud)", "Motivated forgetting - painful memories pushed into unconscious"),
("Organic Causes", "Brain damage, disease, aging (Dementia)"),
]:
story.append(Paragraph(f"<b>{cause}</b>: {detail}", bullet))
story.append(sp(6))
story.append(Paragraph("<b>Measurement of Memory</b>", topic_title))
for m, d in [
("Recall", "Reproduce info without cues (e.g. essay questions)"),
("Recognition", "Identify correct answer from options (e.g. MCQs)"),
("Relearning / Savings Method", "Faster relearning = more retained; measures residual memory"),
]:
story.append(Paragraph(f"<b>{m}</b>: {d}", bullet))
story.append(sp(8))
# Perception
story.append(heading("Chapter 3: Perceptual Process", 2))
story.append(sp(4))
story.append(Paragraph(
"Perception is the process of <b>organizing and interpreting sensory information</b>. "
"It goes beyond raw sensation - the brain adds meaning.", body))
story.append(sp(4))
story.append(comparison_table(
["Factor Type", "Examples"],
[["Structural factors", "Stimulus intensity, size, contrast, novelty, movement"],
["Functional factors", "Past experience, motivation, set, emotional state, culture"]]))
story.append(sp(6))
story.append(Paragraph("<b>β Illusion vs Hallucination</b>", topic_title))
story.append(comparison_table(
["Feature", "Illusion", "Hallucination"],
[["Definition", "Misperception of a REAL stimulus", "Perception with NO external stimulus"],
["Stimulus", "Present but misinterpreted", "Completely absent"],
["Example", "Muller-Lyer lines illusion, mirage", "Hearing voices in schizophrenia"],
["Normal?", "Yes - can occur in normal people", "Usually pathological"],
["Treatment needed?", "No (usually)", "Yes - indicates mental disorder"]]))
story.append(sp(4))
story.append(Paragraph(
"<b>Gestalt Principles</b>: Figure-Ground, Proximity, Similarity, Closure, Continuity",
bullet))
story.append(PageBreak())
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# UNIT 3
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(heading("UNIT 3 - EMOTION, MOTIVATION & INTELLIGENCE", 1))
story.append(sp(8))
story.append(heading("Chapter 1: Emotion", 2))
story.append(sp(4))
story.append(Paragraph(
"<b>Emotion</b>: A complex psychological state involving subjective experience, "
"physiological response, and behavioral expression.<br/>"
"<b>Feeling</b>: The conscious, subjective experience of an emotion.", body))
story.append(sp(6))
story.append(Paragraph("<b>Physiological Changes in Emotion</b>", topic_title))
story.append(section_box("Physiological Changes During Emotion", [
"Increased heart rate and blood pressure",
"Increased secretion of adrenaline (epinephrine) from adrenal glands",
"Dilated pupils (sympathetic activation)",
"Increased sweating (galvanic skin response)",
"Faster breathing rate",
"Muscle tension and increased blood sugar",
"Decreased digestive activity",
], bg=RED_LIGHT, border=RED))
story.append(sp(8))
story.append(important_box("THEORIES OF EMOTION are the most frequently asked topic - "
"always comes in long questions!"))
story.append(sp(6))
story.append(Paragraph("Diagram: Theories of Emotion", important))
story.append(emotion_theory_diagram())
story.append(sp(8))
story.append(comparison_table(
["Feature", "James-Lange Theory", "Cannon-Bard Theory"],
[["Proposed by", "William James & Carl Lange", "Walter Cannon & Philip Bard"],
["Core Idea",
"Physiological change comes FIRST, then emotion",
"Emotion and physiology occur SIMULTANEOUSLY"],
["Sequence",
"Stimulus β Body response β Emotion felt",
"Stimulus β Thalamus β Cortex (emotion) AND Body (simultaneously)"],
["Key Organ", "Peripheral nervous system / body", "Thalamus (central brain)"],
["Famous Quote",
"'We feel afraid because we run, not we run because we feel afraid'",
"Criticized JL: visceral changes are too slow and similar across emotions"],
["Limitation",
"Cannot explain emotions with similar physiology",
"Does not fully explain subjective feeling quality"]]))
story.append(sp(8))
# Motivation
story.append(heading("Chapter 2: Motivation", 2))
story.append(sp(4))
story.append(comparison_table(
["Term", "Definition"],
[["Motive", "Internal state that activates and directs behavior toward a goal"],
["Need", "Deficit/lack within the organism (physiological or psychological)"],
["Drive", "Tension/arousal created by a need that pushes the organism to act"]]))
story.append(sp(6))
story.append(Paragraph("<b>β Types of Motives</b>", topic_title))
story.append(comparison_table(
["Type", "Examples", "Basis"],
[["Physiological (Primary/Biological)", "Hunger, thirst, sex, sleep, pain avoidance",
"Body tissue needs; homeostasis"],
["Psychological (Personal)", "Achievement (n-Ach), affiliation, power, curiosity",
"Personal growth; McClelland's theory"],
["Social (Secondary)", "Status, prestige, conformity, approval, belonging",
"Learned through social interaction; culturally influenced"]]))
story.append(sp(6))
story.append(important_box("Maslow's Hierarchy of Needs - Almost always in exams. "
"Draw the pyramid!"))
story.append(sp(6))
story.append(Paragraph("Diagram: Maslow's Hierarchy of Needs", important))
story.append(maslow_diagram())
story.append(sp(6))
for lvl, ex in [
("1. Physiological (Base)", "Food, water, shelter, air, sleep"),
("2. Safety", "Security, stability, freedom from fear"),
("3. Love & Belonging", "Friendship, intimacy, family, sense of connection"),
("4. Esteem", "Self-esteem, achievement, respect from others"),
("5. Self-Actualization (Top)", "Reaching full potential; creativity; peak experiences"),
]:
story.append(Paragraph(f"<b>{lvl}</b>: {ex}", bullet))
story.append(sp(8))
# Intelligence
story.append(heading("Chapter 3: Intelligence, Personality & Child Psychology", 2))
story.append(sp(4))
story.append(Paragraph("<b>β Intelligence</b>", topic_title))
story.append(Paragraph(
"<b>IQ Formula</b> (Binet): IQ = (Mental Age Γ· Chronological Age) Γ 100", def_style))
story.append(sp(4))
story.append(comparison_table(
["IQ Range", "Classification"],
[["130+", "Gifted / Very Superior"],
["120-129", "Superior"],
["110-119", "High Average"],
["90-109", "Average (Normal)"],
["80-89", "Low Average"],
["70-79", "Borderline"],
["Below 70", "Intellectual Disability"]]))
story.append(sp(6))
story.append(Paragraph("<b>Theories of Intelligence</b>", topic_title))
story.append(comparison_table(
["Theory", "Theorist", "Key Idea"],
[["Two-Factor Theory", "Spearman",
"G factor (general intelligence) + S factors (specific abilities)"],
["Primary Mental Abilities", "Thurstone",
"7 distinct factors: verbal, numerical, spatial, memory, etc."],
["Multiple Intelligences", "Howard Gardner",
"8 intelligences: linguistic, logical, spatial, musical, bodily, interpersonal, etc."],
["Triarchic Theory", "Sternberg",
"Analytical + Creative + Practical intelligence"]]))
story.append(sp(6))
story.append(Paragraph("<b>Personality</b>", topic_title))
story.append(Paragraph(
"<b>Definition</b>: Unique and stable pattern of thoughts, feelings, and behaviors "
"that characterizes an individual.", body))
for theory, content in [
("Sheldon's Types",
"Endomorph (round, relaxed, sociable) | Mesomorph (muscular, assertive) | Ectomorph (thin, anxious, introverted)"),
("Freud's Structure of Personality",
"Id (instinctual drives, pleasure principle) | Ego (reality principle) | Superego (moral conscience)"),
("Measurement",
"MMPI (objective), Rorschach Inkblot Test (projective), TAT (projective), 16PF (trait-based)"),
]:
story.append(Paragraph(f"<b>{theory}</b>: {content}", bullet))
story.append(sp(6))
story.append(Paragraph("<b>β Child Psychology</b>", topic_title))
story.append(Paragraph(
"Child psychology is the study of <b>psychological development from birth to adolescence</b>, "
"including cognitive, emotional, social, and physical development.", body))
story.append(section_box(
"Importance of Child Psychology for Rehabilitation Professionals (BPT)",
["Identify developmental delays (motor, cognitive, language) early",
"Set age-appropriate treatment goals in pediatric physiotherapy",
"Guide parent counseling and home exercise programs",
"Plan sensory integration and motor skills therapy",
"Understand behavioral challenges in children with disability",
"Assess readiness for school and social participation"], bg=GREEN_LIGHT, border=GREEN))
story.append(sp(6))
story.append(Paragraph("<b>Methods of Studying Child Development</b>", topic_title))
story.append(comparison_table(
["Method", "Description", "Example"],
[["Baby Biography", "Detailed diary records kept by parents/observers about child's development; oldest method; Darwin used it",
"Darwin's record of his son's first year"],
["Case History", "Comprehensive record of individual's medical, psychological, social and developmental background",
"Clinical file with birth history, milestones, family info"],
["Behavior Rating", "Structured scales to rate observed behaviors systematically",
"Vineland Adaptive Behavior Scale; school rating forms"]]))
story.append(PageBreak())
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# UNIT 4
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(heading("UNIT 4 - APPLIED PSYCHOLOGY", 1))
story.append(sp(8))
story.append(heading("Chapter 1: Human Engineering", 2))
story.append(sp(4))
story.append(Paragraph(
"<b>Human Engineering (Ergonomics)</b>: The scientific study of designing machines, "
"tools, workplaces, and systems to fit human capabilities and limitations.", body))
story.append(sp(4))
story.append(section_box("Importance of Human Engineering", [
"Reduces workplace accidents and human errors",
"Increases efficiency and productivity",
"Reduces physical and mental fatigue (MSDs prevention - important for BPT!)",
"Improves workplace safety and comfort",
"Lowers cost due to fewer injuries and errors",
], bg=TEAL_LIGHT, border=TEAL))
story.append(sp(6))
story.append(comparison_table(
["Aspect", "Details"],
[["Development", "Grew during World War II - complex military equipment caused operator errors"],
["Taylor's Role", "Scientific Management principles laid foundation"],
["Modern scope", "Office design, tool handles, vehicle controls, software interfaces"],
["Problems", "Machine-human mismatch, poor tool design, information overload, bad lighting/noise"]]))
story.append(sp(8))
story.append(heading("Chapter 2: Decision Making", 2))
story.append(sp(4))
story.append(important_box(
"Decision Making process steps are frequently asked as short notes or long questions."))
story.append(sp(6))
story.append(Paragraph("<b>Steps in Decision Making</b>", topic_title))
for i, step in enumerate([
"Identify and define the problem",
"Gather relevant information",
"Generate possible alternatives",
"Evaluate each alternative",
"Select the best alternative",
"Implement the chosen decision",
"Evaluate and review the outcome",
], 1):
story.append(Paragraph(f"<b>Step {i}:</b> {step}", bullet))
story.append(sp(6))
story.append(comparison_table(
["Feature", "Individual Decision Making", "Organizational Decision Making"],
[["Basis", "Personal values, emotions, experience", "Organizational goals, policies, data"],
["Speed", "Faster", "Slower (more people involved)"],
["Cognitive biases", "More prone to heuristics and biases", "Group processes can reduce individual bias"],
["Risk", "Individual bears consequence", "Shared responsibility"],
["Examples", "Choosing a career, personal treatment", "Hospital policy, budget allocation"],
["Theory", "Bounded Rationality (Herbert Simon): 'good enough' decisions",
"Rational model; Administrative model; Garbage can model"]]))
story.append(sp(8))
story.append(heading("Chapter 3: Stress, Work Culture & Counseling", 2))
story.append(sp(4))
story.append(important_box(
"Stress - GAS Stages by Selye is a HIGH PRIORITY topic. Always in exams!"))
story.append(sp(6))
story.append(Paragraph("<b>Causes of Stress</b>", topic_title))
story.append(comparison_table(
["Type", "Examples"],
[["Physical stressors", "Illness, injury, pain, noise, heat, sleep deprivation"],
["Psychological stressors", "Frustration, conflict, pressure, life changes, uncertainty"],
["Social stressors", "Relationship problems, work conflict, social isolation"],
["Occupational stressors", "Work overload, poor management, lack of control"]]))
story.append(sp(6))
story.append(Paragraph("<b>ββ General Adaptation Syndrome (GAS) - Hans Selye</b>", topic_title))
story.append(Paragraph("Diagram: GAS Three Stages", important))
story.append(gas_diagram())
story.append(sp(6))
for stage, detail in [
("Stage 1 - ALARM",
"Body mobilizes resources; adrenaline released; 'fight or flight' response; "
"heart rate and blood pressure rise; immune function temporarily suppressed"),
("Stage 2 - RESISTANCE",
"Body adapts to stressor; cortisol secreted; resistance above normal; "
"body appears to cope but resources are being depleted"),
("Stage 3 - EXHAUSTION",
"Prolonged stress exhausts resources; immune system weakened; "
"disease/illness/breakdown occurs; can lead to burnout or death if unrelieved"),
]:
story.append(Paragraph(f"<b>{stage}</b>: {detail}", bullet))
story.append(sp(6))
story.append(Paragraph("<b>β Stress Management Techniques</b>", topic_title))
story.append(section_box("Stress Management Methods", [
"Deep breathing and diaphragmatic breathing exercises",
"Progressive Muscle Relaxation (PMR) - Jacobson's technique",
"Meditation and mindfulness",
"Regular physical exercise (reduces cortisol, increases endorphins)",
"Cognitive restructuring: identify and challenge negative thoughts",
"Time management and prioritization",
"Social support - talking to friends/family/counselor",
"Biofeedback - learn to control physiological responses",
"Yoga and relaxation response techniques",
], bg=GREEN_LIGHT, border=GREEN))
story.append(sp(6))
story.append(Paragraph("<b>Guidance and Counseling</b>", topic_title))
story.append(comparison_table(
["Feature", "Guidance", "Counseling"],
[["Nature", "Directive; providing information and advice", "Non-directive; facilitating self-exploration"],
["Focus", "Educational, vocational, personal decisions", "Personal/emotional problems, adjustment"],
["Relationship", "Expert-to-client; advisor-advisee", "Collaborative therapeutic relationship"],
["Goal", "Help choose right path", "Promote behavior change and emotional wellbeing"],
["Example", "Career guidance, study skills", "Therapy for anxiety, grief counseling"]]))
story.append(sp(4))
story.append(Paragraph("<b>Objectives of a Counselor</b>:", topic_title))
for obj in [
"Help clients gain self-awareness and self-understanding",
"Facilitate positive behavior change",
"Improve decision-making and problem-solving skills",
"Provide emotional support and empathy",
"Help client utilize their own resources and strengths",
]:
story.append(bullet_para(obj))
story.append(PageBreak())
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# UNIT 5
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(heading("UNIT 5 - REHABILITATION PSYCHOLOGY", 1))
story.append(sp(8))
story.append(heading("Chapter 1: Rehabilitation Psychology", 2))
story.append(sp(4))
story.append(Paragraph(
"Rehabilitation Psychology applies psychological knowledge to help people with "
"disabilities, chronic illness, and injury achieve maximum health and quality of life.", body))
story.append(sp(6))
story.append(Paragraph("<b>Interpersonal, Familial and Social Relationships in Disability</b>", topic_title))
story.append(section_box("Impact of Disability on Relationships", [
"Overprotection by family: reduces independence and self-efficacy",
"Social isolation: less community participation and friendships",
"Changed family roles: caregiver burden, altered dynamics",
"Stigma and discrimination in social settings",
"Adjustment in sexual and intimate relationships",
"Team approach needed: physiotherapist + psychologist + social worker + family",
], bg=LIGHT_BLUE, border=MID_BLUE))
story.append(sp(6))
story.append(important_box("Acceptance of Disability stages - frequently asked short note!"))
story.append(sp(4))
story.append(Paragraph("Diagram: Stages of Acceptance", important))
story.append(acceptance_stages_diagram())
story.append(sp(6))
for stage, detail in [
("1. Denial", "Refusing to accept the disability; 'This is not real'"),
("2. Anger", "Frustration and resentment; 'Why me?'"),
("3. Bargaining", "Seeking alternative cures or making deals"),
("4. Depression", "Grief, hopelessness, withdrawal from activities"),
("5. Acceptance", "Adjusting to new reality; moving forward with disability"),
]:
story.append(Paragraph(f"<b>{stage}</b>: {detail}", bullet))
story.append(sp(6))
story.append(Paragraph("<b>β Contribution of Psychology in Total Rehabilitation</b>", topic_title))
story.append(section_box("Psychological Contributions", [
"Psychological assessment (IQ, personality, emotional status)",
"Motivation therapy to increase participation and adherence",
"Behavior modification techniques (positive reinforcement)",
"Family counseling and caregiver support",
"Vocational guidance and rehabilitation planning",
"Stress management training for patient and family",
"Pain management through psychological techniques",
"Social skills training and community reintegration",
], bg=GREEN_LIGHT, border=GREEN))
story.append(sp(8))
story.append(heading("Chapter 2: Normality, Abnormality & Mental Disorders", 2))
story.append(sp(4))
story.append(important_box(
"Definition of Abnormality, Neurosis vs Psychosis, Types of disorders - "
"VERY HIGH probability in long questions!"))
story.append(sp(6))
story.append(Paragraph("<b>β Criteria of Normality</b>", topic_title))
for crit, detail in [
("Statistical Norm", "Behaviors that most people show (bell curve; average is normal)"),
("Social/Cultural Norm", "Behaviors acceptable within a given culture and time"),
("Ideal Norm (Jahoda's Criteria)", "Positive mental health: self-acceptance, personal growth, autonomy, accurate perception, environmental mastery"),
("Medical Model", "Absence of disease, disorder or biological dysfunction"),
]:
story.append(Paragraph(f"<b>{crit}</b>: {detail}", bullet))
story.append(sp(6))
story.append(Paragraph("<b>ββ Criteria of Abnormality - The 4 D's</b>", topic_title))
story.append(comparison_table(
["'D'", "Meaning", "Example"],
[["Distress", "Personal suffering and unhappiness", "Person feels extreme anxiety, cannot cope"],
["Deviance", "Violation of social and cultural norms", "Talking to oneself in public, unusual beliefs"],
["Dysfunction", "Impaired ability to function in daily life, work, relationships",
"Cannot maintain job, relationships break down"],
["Danger", "Risk of harm to self or others", "Suicidal thoughts, aggression toward others"]]))
story.append(sp(6))
story.append(Paragraph("<b>ββ Neurosis vs Psychosis</b>", topic_title))
story.append(comparison_table(
["Feature", "Neurotic Disorders", "Psychotic Disorders"],
[["Severity", "Mild to moderate", "Severe"],
["Contact with reality", "Intact - person knows they have a problem", "Lost - person has no insight"],
["Insight", "Present", "Absent"],
["Hallucinations", "Absent (usually)", "Common (especially auditory)"],
["Delusions", "Absent", "Present"],
["Hospitalization", "Rarely required", "Often required"],
["Daily functioning", "Mostly maintained", "Severely impaired"],
["Examples",
"Anxiety disorders, phobias, OCD, mild depression, conversion disorder",
"Schizophrenia, delusional disorder, bipolar (manic phase)"]]))
story.append(sp(6))
story.append(Paragraph("<b>Types of Mental Disorders</b>", topic_title))
story.append(comparison_table(
["Disorder Type", "Cause", "Examples"],
[["Neurotic", "Psychological/stress; anxiety-based", "Phobias, OCD, GAD, conversion disorder"],
["Psychotic", "Biological + environmental; severe", "Schizophrenia, delusional disorder"],
["Psychosomatic", "Psychological factors worsening physical illness",
"Peptic ulcer, hypertension, asthma, migraine"],
["Organic Mental", "Physical brain damage or disease",
"Dementia, delirium, amnesia (brain injury/aging)"],
["Substance Abuse", "Repeated use of mind-altering substances",
"Alcohol dependence, opioid addiction, sedative abuse"]]))
story.append(sp(6))
story.append(Paragraph("<b>Factors Contributing to Normal Mental Health</b>", topic_title))
for f in [
"Positive self-concept and high self-esteem",
"Effective coping strategies for stress",
"Satisfying interpersonal relationships",
"Realistic perception of self and environment",
"Emotional stability and regulation",
"Sense of purpose and meaning in life",
"Ability to work productively and contribute to society",
]:
story.append(bullet_para(f))
story.append(sp(8))
story.append(heading("Chapter 3: Old Age, Psychotherapy & Child Psychiatry", 2))
story.append(sp(4))
story.append(Paragraph("<b>Problems in Adjustment in Old Age</b>", topic_title))
story.append(comparison_table(
["Domain", "Problems", "Rehabilitation Approach"],
[["Physical", "Declining health, reduced strength, chronic pain",
"Exercise therapy, pain management, adaptive aids"],
["Psychological", "Depression, anxiety, loneliness, fear of death",
"Counseling, psychotherapy, social activities"],
["Cognitive", "Memory decline, slower processing, dementia risk",
"Cognitive rehabilitation, memory training"],
["Social", "Loss of friends/spouse, retirement adjustment, reduced roles",
"Activity groups, support groups, vocational guidance"],
["Economic", "Fixed income, dependence on others",
"Financial counseling, community resources"]]))
story.append(sp(8))
story.append(important_box(
"PSYCHOTHERAPY - Types and definitions are almost always in the long question. "
"Know all 5 types with their key techniques!"))
story.append(sp(6))
story.append(Paragraph("Diagram: Types of Psychotherapy", important))
story.append(psychotherapy_diagram())
story.append(sp(6))
story.append(Paragraph("<b>βββ Types of Psychotherapy</b>", topic_title))
psych_rows = [
["1. Psychoanalytic\nTherapy", "Sigmund Freud",
"Free association, dream analysis, transference interpretation",
"Bring unconscious conflicts to conscious awareness"],
["2. Behaviour Therapy", "B.F. Skinner /\nWolpe",
"Systematic desensitization, token economy, flooding, aversion therapy",
"Modify maladaptive behavior using learning principles"],
["3. Cognitive Behavioral\nTherapy (CBT)", "Aaron Beck",
"Identify cognitive distortions, thought records, behavioral experiments",
"Change negative thought patterns and behaviors"],
["4. Humanistic\nTherapy", "Carl Rogers",
"Unconditional positive regard, empathy, congruence, active listening",
"Self-actualization, personal growth, self-acceptance"],
["5. Group Therapy", "Multiple",
"Group discussion, peer support, role play, psychodrama",
"Social skills, peer support, cost-effective treatment"],
]
story.append(comparison_table(
["Type", "Founder", "Techniques", "Goal"],
psych_rows))
story.append(sp(6))
story.append(Paragraph(
"<b>CBT</b> is the most evidence-based psychotherapy today - important for BPT "
"as it is used in pain management and rehabilitation psychology.", note_style))
story.append(sp(8))
story.append(Paragraph("<b>β Child Psychiatry</b>", topic_title))
story.append(comparison_table(
["Condition", "Key Features", "Treatment Approach"],
[["ADHD", "Inattention, hyperactivity, impulsivity; before age 12",
"Behavioral therapy + medication (stimulants); parent training"],
["Autism Spectrum Disorder (ASD)", "Impaired social communication, restricted/repetitive behaviors",
"Early intervention; ABA therapy; speech and OT"],
["Intellectual Disability", "IQ < 70 + adaptive behavior deficits",
"Functional skills training; special education; physiotherapy"],
["Conduct Disorder", "Persistent antisocial behavior, aggression, rule violations",
"CBT; family therapy; behavior management"],
["Childhood Depression", "Sadness, withdrawal, sleep/appetite changes (different from adults)",
"CBT; play therapy; family involvement"],
["Learning Disorders", "Dyslexia, dyscalculia, dysgraphia",
"Remedial education; cognitive training"]]))
story.append(PageBreak())
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# QUICK REVISION / SUMMARY
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(heading("β IMPORTANT TOPICS - QUICK REVISION", 1))
story.append(sp(8))
story.append(heading("Top 10 Short Notes (2-5 marks)", 2))
story.append(sp(4))
sn_data = [
["#", "Topic", "Key Point to Remember"],
["1", "James-Lange Theory", "Physiology FIRST β then emotion; 'We run, then fear'"],
["2", "Cannon-Bard Theory", "Thalamus β SIMULTANEOUS emotion + body response"],
["3", "STM vs LTM", "STM: 7Β±2 items, 30 sec | LTM: Unlimited, semantic"],
["4", "Classical Conditioning", "US+CS β CR; Pavlov's dog; bell + food = salivation"],
["5", "GAS by Selye", "Alarm β Resistance β Exhaustion"],
["6", "Maslow's Hierarchy", "5 levels: Physiological β Safety β Love β Esteem β Self-actualization"],
["7", "4 D's of Abnormality", "Distress, Deviance, Dysfunction, Danger"],
["8", "Neurosis vs Psychosis", "Neurosis: insight intact; Psychosis: reality lost"],
["9", "Illusion vs Hallucination", "Illusion: real stimulus misperceived; Hallucination: no stimulus"],
["10", "Acceptance of Disability", "Denial β Anger β Bargaining β Depression β Acceptance"],
]
t = Table(sn_data, colWidths=[25, 140, 275])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), DARK_BLUE),
("TEXTCOLOR", (0,0), (-1,0), WHITE),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,-1), 9.5),
("GRID", (0,0), (-1,-1), 0.5, colors.HexColor("#90caf9")),
("ROWBACKGROUNDS",(0,1), (-1,-1), [WHITE, LIGHT_BLUE]),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
]))
story.append(t)
story.append(sp(12))
story.append(heading("Top 8 Long Questions (10-15 marks)", 2))
story.append(sp(4))
lq_data = [
["#", "Question", "Units to Cover"],
["1", "Describe theories of emotion with comparison", "Unit 3 Ch 1"],
["2", "Explain memory - stages, STM vs LTM, causes of forgetting", "Unit 2 Ch 2"],
["3", "Types of learning with theories, examples and key concepts", "Unit 2 Ch 1"],
["4", "Stress - causes, reactions, GAS stages, management techniques", "Unit 4 Ch 3"],
["5", "Psychotherapy - definition and all 5 types with techniques", "Unit 5 Ch 3"],
["6", "Normality and Abnormality - criteria and types of mental disorders", "Unit 5 Ch 2"],
["7", "Motivation - types of motives and Maslow's hierarchy of needs", "Unit 3 Ch 2"],
["8", "Rehabilitation psychology - contribution of psychology in total rehab", "Unit 5 Ch 1"],
]
t2 = Table(lq_data, colWidths=[25, 300, 115])
t2.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), ACCENT),
("TEXTCOLOR", (0,0), (-1,0), WHITE),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,-1), 9.5),
("GRID", (0,0), (-1,-1), 0.5, colors.HexColor("#ffcc80")),
("ROWBACKGROUNDS",(0,1), (-1,-1), [WHITE, ACCENT_LIGHT]),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
]))
story.append(t2)
story.append(sp(12))
story.append(heading("Key Definitions to Memorize", 2))
story.append(sp(4))
def_data = [
["Term", "Definition"],
["Psychology", "Science of behavior and mental processes"],
["Perception", "Organizing and interpreting sensory information"],
["Emotion", "Complex state with subjective experience, physiology, and behavior"],
["Motivation", "Internal state activating and directing behavior toward a goal"],
["Intelligence", "Capacity to learn, reason, problem-solve, and adapt"],
["Personality", "Unique, stable pattern of thoughts, feelings, and behaviors"],
["Stress", "Response to demands exceeding coping resources"],
["Neurosis", "Mental disorder with intact reality contact and present insight"],
["Psychosis", "Severe mental disorder with loss of reality contact"],
["Rehabilitation Psychology", "Application of psychological principles to disability and recovery"],
["Psychotherapy", "Systematic use of psychological methods to treat mental disorders"],
]
dt = Table(def_data, colWidths=[160, 280])
dt.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), PURPLE),
("TEXTCOLOR", (0,0), (-1,0), WHITE),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,-1), 9.5),
("GRID", (0,0), (-1,-1), 0.5, colors.HexColor("#ce93d8")),
("ROWBACKGROUNDS",(0,1), (-1,-1), [WHITE, PURPLE_LIGHT]),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
]))
story.append(dt)
story.append(sp(12))
# Last page - Good luck
story.append(hr(ACCENT, 2))
story.append(sp(8))
story.append(Paragraph("EXAM DAY TIPS", S("et", fontSize=16,
textColor=ACCENT, fontName="Helvetica-Bold",
alignment=TA_CENTER, leading=22)))
story.append(sp(6))
tips = [
"For theory questions - always write the theorist's name (Pavlov, Selye, Maslow, etc.)",
"Draw diagrams wherever possible - GAS diagram, Maslow's pyramid, STM-LTM flow",
"Start every answer with a clear definition",
"Theories of Emotion - write BOTH James-Lange AND Cannon-Bard, then compare",
"Neurosis vs Psychosis - a comparison TABLE scores full marks",
"In Rehabilitation questions - always mention the BPT/rehab professional's role",
"CBT is the most evidence-based therapy - mention this in psychotherapy answers",
"Time management - attempt sure questions first, then longer ones",
]
for tip in tips:
story.append(Paragraph(f"β {tip}", bullet))
story.append(sp(16))
story.append(Paragraph("BEST OF LUCK ON YOUR BPT EXAM! YOU'VE GOT THIS! πͺπ",
S("gl", fontSize=14, textColor=DARK_BLUE,
fontName="Helvetica-Bold", alignment=TA_CENTER, leading=20)))
doc.build(story)
print("PDF built successfully!")
build_pdf("/tmp/workspace/bpt-psychology/BPT_Psychology_Exam_Notes.pdf")
cd /tmp/workspace/bpt-psychology && python make_pdf.py 2>&1
ls -lh /tmp/workspace/bpt-psychology/BPT_Psychology_Exam_Notes.pdf
BPT Psychology Exam Notes
PDF Document Β· PDF
Make pdf with out flow chart only show heading sub heading and detail theory
Make pdf with out flow chart only show heading sub heading and detail theory as
Why file is not completeing
Still not completeing