diff --git a/research/activity35-american-history.yaml b/research/activity35-american-history.yaml new file mode 100644 index 0000000..610254a --- /dev/null +++ b/research/activity35-american-history.yaml @@ -0,0 +1,713 @@ +default_max_attempts_per_step: 3 + +tokens_for_ai_rubric: | + Evaluate the student's understanding of American history and historical thinking. + Consider: + - Their grasp of historical cause and effect + - Ability to analyze primary sources + - Understanding of multiple perspectives + - Critical thinking about historical events + - Connection of past events to present issues + + Provide encouraging feedback and suggest areas for deeper historical exploration. + +sections: + - section_id: "introduction" + title: "Welcome to American History" + steps: + - step_id: "welcome" + title: "Welcome, Historian" + content_blocks: + - "# American History: A Critical Journey πŸ‡ΊπŸ‡Έ" + - "Welcome to an exploration of American history that goes beyond dates and names." + - "" + - "**In this journey, you'll:**" + - "- Analyze primary sources from different historical periods" + - "- Examine cause and effect in historical events" + - "- Consider multiple perspectives and viewpoints" + - "- Think critically about America's founding principles and their evolution" + - "- Connect historical events to contemporary issues" + - "" + - "**This is advanced history:**" + - "You'll be challenged to think like a historian - questioning sources, understanding context, and forming evidence-based conclusions." + - "" + - "Ready to dive deep into American history?" + question: "Are you ready to explore American history through critical thinking and primary sources?" + tokens_for_ai: | + Student expressing readiness. + + Categorize as: + - ready: Positive, ready to begin + - set_language: Setting language preference + - off_topic: Unrelated + buckets: + - ready + - set_language + - off_topic + transitions: + ready: + content_blocks: + - "Excellent! Let's begin with the foundations of American democracy." + metadata_add: + period: "colonial" + next_section_and_step: "founding_principles:step_1" + set_language: + content_blocks: + - "I'll communicate in your preferred language." + counts_as_attempt: false + next_section_and_step: "introduction:welcome" + off_topic: + content_blocks: + - "Let's begin our historical journey. Are you ready to explore American history?" + counts_as_attempt: false + next_section_and_step: "introduction:welcome" + + - section_id: "founding_principles" + title: "Founding Principles and the Constitution" + steps: + - step_id: "step_1" + title: "The Social Contract" + content_blocks: + - "## Philosophical Foundations πŸ“œ" + - "The American founders were heavily influenced by Enlightenment philosophy, particularly John Locke's ideas about natural rights and the social contract." + - "" + - "**Key Enlightenment Ideas:**" + - "- **Natural Rights:** Locke argued that people have inherent rights to life, liberty, and property" + - "- **Social Contract:** Government's authority comes from the consent of the governed" + - "- **Right to Revolution:** If government violates natural rights, people can overthrow it" + - "" + - "**From the Declaration of Independence (1776):**" + - "_'We hold these truths to be self-evident, that all men are created equal, that they are endowed by their Creator with certain unalienable Rights, that among these are Life, Liberty and the pursuit of Happiness.'_" + - "" + - "**Critical Question:**" + - "The Declaration states 'all men are created equal' - yet slavery existed, women couldn't vote, and Native Americans were displaced." + question: "How do you reconcile the contradiction between the Declaration's ideals of equality and the reality of 1776 America? What does this tell us about the founding period?" + tokens_for_ai: | + This is a sophisticated question about contradiction between ideals and reality. Look for: + - Recognition of the contradiction/hypocrisy + - Understanding of historical context (norms of the time) + - Nuanced thinking (ideals as aspirational vs. complete hypocrisy) + - Consideration of whose perspectives were included/excluded + + Categorize as: + - sophisticated_analysis: Nuanced understanding of contradiction, historical context, and evolution of ideals + - recognizes_hypocrisy: Sees the contradiction clearly but may not fully analyze it + - contextualizes: Focuses on historical context ("people thought differently then") + - partial_understanding: General thoughts but incomplete analysis + - limited_effort: Very brief + - asking_clarifying_questions: Needs more information + - off_topic: Unrelated + feedback_tokens_for_ai: | + Engage with their analysis thoughtfully. If they note the hypocrisy, affirm that recognition + and discuss how the ideals in the Declaration became tools for excluded groups (abolitionists, + suffragists, civil rights activists) to demand rights. If they only contextualize, acknowledge + historical context while noting that the contradiction was recognized even then by some. + buckets: + - sophisticated_analysis + - recognizes_hypocrisy + - contextualizes + - partial_understanding + - limited_effort + - asking_clarifying_questions + - off_topic + transitions: + sophisticated_analysis: + ai_feedback: + tokens_for_ai: "Excellent historical thinking! Discuss how the Declaration's ideals became 'promissory notes' that future movements would claim. Mention Frederick Douglass's 1852 speech." + metadata_add: + score: "n+3" + critical_thinking: "n+1" + next_section_and_step: "founding_principles:step_2" + recognizes_hypocrisy: + ai_feedback: + tokens_for_ai: "Good recognition of the contradiction! Expand on how these ideals, though not practiced, created a framework that excluded groups later used to demand inclusion." + metadata_add: + score: "n+2" + critical_thinking: "n+1" + next_section_and_step: "founding_principles:step_2" + contextualizes: + ai_feedback: + tokens_for_ai: "Historical context is important! Also note that even in the 1770s, some people (like Abigail Adams, some Quakers) pointed out these contradictions. The ideals were radical even if not fully practiced." + metadata_add: + score: "n+1" + next_section_and_step: "founding_principles:step_2" + partial_understanding: + ai_feedback: + tokens_for_ai: "You're thinking about this! Consider: the founders wrote about equality while owning slaves. How might excluded groups have used these written ideals to fight for their own rights later?" + next_section_and_step: "founding_principles:step_1" + limited_effort: + content_blocks: + - "This is a complex question requiring deep thought. Consider: What did 'all men are created equal' mean in practice in 1776? Who was excluded?" + next_section_and_step: "founding_principles:step_1" + asking_clarifying_questions: + ai_feedback: + tokens_for_ai: "Answer their question about the Declaration, slavery, or founding era contradictions." + counts_as_attempt: false + next_section_and_step: "founding_principles:step_1" + off_topic: + content_blocks: + - "Let's focus on the founding principles. How do you understand the contradiction between stated ideals and reality?" + next_section_and_step: "founding_principles:step_1" + + - step_id: "step_2" + title: "Federalism and Separation of Powers" + content_blocks: + - "## The Constitutional Convention (1787)" + - "The founders faced a challenge: create a government strong enough to function, but not so strong it becomes tyrannical." + - "" + - "**Their solutions:**" + - "" + - "**1. Federalism** - Power divided between national and state governments" + - "**2. Separation of Powers** - Legislative, Executive, Judicial branches" + - "**3. Checks and Balances** - Each branch can limit the others" + - "" + - "**Madison's Federalist #51 (1788):**" + - "_'If men were angels, no government would be necessary. If angels were to govern men, neither external nor internal controls on government would be necessary.'_" + - "" + - "**The founders' key insight:**" + - "Don't rely on having virtuous leaders - design a system where ambition counteracts ambition." + - "" + - "**Examples of Checks and Balances:**" + - "- President can veto laws (Executive checks Legislative)" + - "- Congress can override veto with 2/3 vote (Legislative checks Executive)" + - "- Supreme Court can declare laws unconstitutional (Judicial checks both)" + - "- Senate confirms judges (Legislative checks Judicial)" + question: "Why did the founders distrust concentrated power so much? What historical experiences shaped this distrust, and do you think these checks and balances are still necessary today?" + tokens_for_ai: | + Looking for understanding of: + - Historical context (British monarchy, tyranny) + - Human nature assumptions (power corrupts) + - Contemporary relevance + + Categorize as: + - excellent_analysis: Connects historical experience, theory, and contemporary relevance + - historical_understanding: Good grasp of why founders feared concentrated power + - contemporary_focus: Emphasizes modern relevance + - partial_understanding: General thoughts but incomplete + - limited_effort: Very brief + - off_topic: Unrelated + feedback_tokens_for_ai: | + Engage their thinking. The founders' experience with King George III and colonial governors + shaped their views. If they discuss contemporary relevance, acknowledge different perspectives + on whether checks and balances are working as intended today. + buckets: + - excellent_analysis + - historical_understanding + - contemporary_focus + - partial_understanding + - limited_effort + - off_topic + transitions: + excellent_analysis: + ai_feedback: + tokens_for_ai: "Sophisticated thinking! You've connected historical experience to institutional design and contemporary relevance. Discuss ongoing debates about executive power, judicial review, etc." + metadata_add: + score: "n+3" + critical_thinking: "n+1" + next_section_and_step: "civil_war:step_1" + historical_understanding: + ai_feedback: + tokens_for_ai: "Good historical understanding! The founders' experience with King George III profoundly shaped their distrust of concentrated power. Discuss how this plays out in contemporary politics." + metadata_add: + score: "n+2" + next_section_and_step: "civil_war:step_1" + contemporary_focus: + ai_feedback: + tokens_for_ai: "Interesting contemporary perspective! Connect this to the historical context: the founders had just fought a war against what they saw as tyrannical power." + metadata_add: + score: "n+2" + next_section_and_step: "civil_war:step_1" + partial_understanding: + ai_feedback: + tokens_for_ai: "You're thinking about this! Consider: the founders had just fought a war against King George III. How might that experience have shaped their views on power?" + metadata_add: + score: "n+1" + next_section_and_step: "civil_war:step_1" + limited_effort: + content_blocks: + - "Think about what the founders had just experienced - war against British monarchy. How might that shape their views on concentrated power?" + next_section_and_step: "founding_principles:step_2" + off_topic: + content_blocks: + - "Let's focus on the founders' distrust of concentrated power. What historical experiences shaped this?" + next_section_and_step: "founding_principles:step_2" + + - section_id: "civil_war" + title: "The Civil War and Reconstruction" + steps: + - step_id: "step_1" + title: "Causes of the Civil War" + content_blocks: + - "## The Road to Civil War βš”οΈ" + - "The Civil War (1861-1865) was the deadliest conflict in American history - over 600,000 deaths." + - "" + - "**Was it about slavery or states' rights?**" + - "This debate continues, but let's look at primary sources." + - "" + - "**Mississippi's Declaration of Secession (1861):**" + - "_'Our position is thoroughly identified with the institution of slavery - the greatest material interest of the world.'_" + - "" + - "**Confederate VP Alexander Stephens (1861):**" + - "_'Our new government's foundations are laid, its cornerstone rests, upon the great truth that the negro is not equal to the white man; that slavery... is his natural and normal condition.'_" + - "" + - "**Economic Context:**" + - "- By 1860, enslaved people represented $3.5 billion in property value (more than all factories and railroads combined)" + - "- Cotton accounted for 60% of US exports" + - "- Southern economy was built on slave labor" + - "" + - "**Political Context:**" + - "- Lincoln's election (1860) without a single Southern electoral vote" + - "- Fear that federal government would restrict slavery's expansion" + question: "Based on these primary sources, what was the central cause of the Civil War? Why do you think some people today emphasize 'states' rights' rather than slavery as the cause?" + tokens_for_ai: | + Looking for: + - Recognition that slavery was the central cause (based on primary sources) + - Understanding of why revisionist narratives emerged + - Critical thinking about how history is remembered + + Categorize as: + - evidence_based_conclusion: Uses primary sources to conclude slavery was central cause + - analyzes_revisionism: Understands why alternative narratives emerged + - sophisticated_both: Addresses both the historical reality and its contested memory + - partial_understanding: General thoughts but incomplete + - states_rights_focus: Emphasizes states' rights over slavery + - limited_effort: Very brief + - off_topic: Unrelated + feedback_tokens_for_ai: | + If they correctly identify slavery as the central cause, affirm this and discuss Lost Cause + mythology that emerged after Reconstruction. If they emphasize states' rights, gently redirect + to the primary sources: Confederate states explicitly cited slavery as the reason for secession. + buckets: + - evidence_based_conclusion + - analyzes_revisionism + - sophisticated_both + - partial_understanding + - states_rights_focus + - limited_effort + - off_topic + transitions: + evidence_based_conclusion: + ai_feedback: + tokens_for_ai: "Excellent use of primary sources! The Confederate states' own words make clear that slavery was the central issue. Discuss how the 'Lost Cause' mythology later rewrote this history." + metadata_add: + score: "n+3" + primary_source_analysis: "n+1" + next_section_and_step: "civil_war:step_2" + analyzes_revisionism: + ai_feedback: + tokens_for_ai: "Good analysis of historical memory! After Reconstruction, the 'Lost Cause' narrative emerged to justify the Confederacy and maintain white supremacy. Explain this further." + metadata_add: + score: "n+2" + critical_thinking: "n+1" + next_section_and_step: "civil_war:step_2" + sophisticated_both: + ai_feedback: + tokens_for_ai: "Sophisticated historical thinking! You're understanding both what happened and how it's been remembered. This is advanced historical analysis." + metadata_add: + score: "n+3" + primary_source_analysis: "n+1" + critical_thinking: "n+1" + next_section_and_step: "civil_war:step_2" + partial_understanding: + ai_feedback: + tokens_for_ai: "You're thinking about this. Look at the primary sources - what did Mississippi and Confederate VP Stephens say was the reason for secession?" + next_section_and_step: "civil_war:step_1" + states_rights_focus: + ai_feedback: + tokens_for_ai: "The 'states' rights' argument is common, but examine the primary sources: Mississippi's declaration and Stephens' speech explicitly state slavery was the central issue. States' rights to do what, specifically?" + next_section_and_step: "civil_war:step_1" + limited_effort: + content_blocks: + - "Read the primary sources carefully - Mississippi's declaration and Confederate VP Stephens' speech. What do they say was the reason for secession?" + next_section_and_step: "civil_war:step_1" + off_topic: + content_blocks: + - "Let's analyze the primary sources from Confederate leaders. What do they say caused the war?" + next_section_and_step: "civil_war:step_1" + + - step_id: "step_2" + title: "Reconstruction and Its Failure" + content_blocks: + - "## Reconstruction (1865-1877)" + - "After the Civil War, the nation faced the question: How do you integrate 4 million formerly enslaved people into American society?" + - "" + - "**Constitutional Amendments:**" + - "- **13th (1865):** Abolished slavery" + - "- **14th (1868):** Citizenship and equal protection under law" + - "- **15th (1870):** Voting rights regardless of race" + - "" + - "**Achievements of Reconstruction:**" + - "- Black men gained voting rights and political power" + - "- First Black Congressmen and Senators elected" + - "- Public schools established in the South (for both Black and white children)" + - "- Economic opportunities began to emerge" + - "" + - "**The Backlash:**" + - "- White terrorist groups (KKK) used violence to suppress Black voting" + - "- Compromise of 1877: Federal troops withdrawn from South" + - "- Jim Crow laws established racial segregation" + - "- Black voting rights systematically stripped through poll taxes, literacy tests, grandfather clauses" + - "" + - "**Historian Eric Foner:**" + - "_'Reconstruction was America's unfinished revolution.'_" + question: "Why did Reconstruction fail? What would have been needed for it to succeed in achieving true equality for formerly enslaved people?" + tokens_for_ai: | + Looking for understanding of: + - Political will (North lost interest) + - White supremacist violence + - Economic factors (land redistribution never happened) + - Federal enforcement needed but withdrawn + + Categorize as: + - multi_factor_analysis: Identifies multiple reasons for failure + - political_will: Focuses on loss of Northern commitment + - violence_focus: Emphasizes white supremacist terrorism + - economic_analysis: Notes lack of land redistribution/"40 acres and a mule" + - thoughtful_counterfactual: Proposes what could have made it succeed + - partial_understanding: General thoughts + - limited_effort: Very brief + - off_topic: Unrelated + feedback_tokens_for_ai: | + Engage their analysis. Multiple factors contributed: Northern fatigue, white supremacist + violence, economic exploitation, political compromise. If they propose counterfactuals, + discuss land redistribution, sustained federal protection, economic investment. + buckets: + - multi_factor_analysis + - political_will + - violence_focus + - economic_analysis + - thoughtful_counterfactual + - partial_understanding + - limited_effort + - off_topic + transitions: + multi_factor_analysis: + ai_feedback: + tokens_for_ai: "Excellent multi-factor analysis! Reconstruction failed due to loss of political will, white supremacist violence, economic exploitation, and the Compromise of 1877. Discuss long-term consequences." + metadata_add: + score: "n+3" + critical_thinking: "n+1" + next_section_and_step: "civil_rights:step_1" + political_will: + ai_feedback: + tokens_for_ai: "Important factor! The North did lose interest after the Compromise of 1877. Also consider white supremacist violence and economic factors." + metadata_add: + score: "n+2" + next_section_and_step: "civil_rights:step_1" + violence_focus: + ai_feedback: + tokens_for_ai: "Crucial point! White terrorism (KKK, etc.) was systematically used to suppress Black political power. The federal government eventually stopped protecting Black citizens." + metadata_add: + score: "n+2" + next_section_and_step: "civil_rights:step_1" + economic_analysis: + ai_feedback: + tokens_for_ai: "Key economic insight! Without land redistribution ('40 acres and a mule'), formerly enslaved people remained economically dependent on white landowners through sharecropping." + metadata_add: + score: "n+2" + next_section_and_step: "civil_rights:step_1" + thoughtful_counterfactual: + ai_feedback: + tokens_for_ai: "Interesting counterfactual thinking! Evaluate their proposals against historical context and constraints." + metadata_add: + score: "n+2" + critical_thinking: "n+1" + next_section_and_step: "civil_rights:step_1" + partial_understanding: + ai_feedback: + tokens_for_ai: "You're thinking about this. Consider: political will, violence, economics, and federal enforcement. What combination of factors led to failure?" + metadata_add: + score: "n+1" + next_section_and_step: "civil_rights:step_1" + limited_effort: + content_blocks: + - "Think about what Reconstruction needed: political commitment, protection from violence, economic opportunity, federal enforcement. What went wrong?" + next_section_and_step: "civil_war:step_2" + off_topic: + content_blocks: + - "Let's analyze Reconstruction's failure. What factors led to the end of Black political power after 1877?" + next_section_and_step: "civil_war:step_2" + + - section_id: "civil_rights" + title: "Civil Rights Movement" + steps: + - step_id: "step_1" + title: "Strategies for Change" + content_blocks: + - "## The Civil Rights Movement (1950s-1960s) ✊" + - "Nearly 100 years after the Civil War, Jim Crow segregation still dominated the South." + - "" + - "**Different Strategic Approaches:**" + - "" + - "**Legal Strategy (NAACP, Thurgood Marshall):**" + - "- Use courts to overturn segregation laws" + - "- *Brown v. Board of Education* (1954): Declared school segregation unconstitutional" + - "- Gradualist approach working within the system" + - "" + - "**Nonviolent Direct Action (MLK, SCLC):**" + - "- Boycotts, sit-ins, marches to create crisis that forces negotiation" + - "- Montgomery Bus Boycott (1955-56), March on Washington (1963)" + - "- Moral appeal to conscience of nation" + - "" + - "**Black Power/Self-Defense (Malcolm X, Black Panthers):**" + - "- Critique of integration as goal; emphasis on Black empowerment" + - "- Self-defense against violence (vs. absolute nonviolence)" + - "- Economic self-sufficiency and cultural pride" + - "" + - "**MLK's Letter from Birmingham Jail (1963):**" + - "_'Injustice anywhere is a threat to justice everywhere. We are caught in an inescapable network of mutuality, tied in a single garment of destiny.'_" + - "" + - "**Malcolm X (1964):**" + - "_'We declare our right on this earth to be a man, to be a human being, to be respected as a human being, to be given the rights of a human being in this society.'_" + question: "Why were there different strategic approaches in the Civil Rights Movement? Were all of these approaches necessary, or was one more effective than others? Explain your reasoning." + tokens_for_ai: | + Looking for: + - Understanding of different strategic visions + - Recognition that strategies complemented each other + - Sophisticated thinking about social movements + - Awareness that movements aren't monolithic + + Categorize as: + - sophisticated_analysis: Understands how different strategies played different roles + - complementary_view: Sees strategies as working together + - single_strategy_preference: Argues one was most effective + - comparative_analysis: Thoughtfully compares approaches + - partial_understanding: General thoughts + - limited_effort: Very brief + - off_topic: Unrelated + feedback_tokens_for_ai: | + Engage their analysis thoughtfully. Historical consensus is that multiple strategies created + pressure from different angles: legal victories removed legal barriers, direct action created + urgency, Black Power empowered communities and pushed moderates to negotiate. If they prefer + one strategy, discuss how it interacted with others. + buckets: + - sophisticated_analysis + - complementary_view + - single_strategy_preference + - comparative_analysis + - partial_understanding + - limited_effort + - off_topic + transitions: + sophisticated_analysis: + ai_feedback: + tokens_for_ai: "Excellent historical thinking! You understand that social movements use multiple strategies simultaneously. The 'radical flank effect' made moderates seem more reasonable to white Americans." + metadata_add: + score: "n+3" + critical_thinking: "n+1" + next_section_and_step: "civil_rights:step_2" + complementary_view: + ai_feedback: + tokens_for_ai: "Good insight! The different strategies created pressure from multiple angles and appealed to different constituencies. Discuss the 'radical flank effect.'" + metadata_add: + score: "n+2" + next_section_and_step: "civil_rights:step_2" + single_strategy_preference: + ai_feedback: + tokens_for_ai: "You make a case for one strategy. Also consider how the strategies interacted: legal victories needed enforcement, which required political pressure from protests." + metadata_add: + score: "n+2" + next_section_and_step: "civil_rights:step_2" + comparative_analysis: + ai_feedback: + tokens_for_ai: "Good comparative thinking! Expand on how the strategies might have complemented each other or created tension." + metadata_add: + score: "n+2" + critical_thinking: "n+1" + next_section_and_step: "civil_rights:step_2" + partial_understanding: + ai_feedback: + tokens_for_ai: "Think about how different strategies might work together. Could 'radical' demands make 'moderate' demands seem more acceptable?" + metadata_add: + score: "n+1" + next_section_and_step: "civil_rights:step_1" + limited_effort: + content_blocks: + - "Consider: Why might a movement need both people working within the system (courts) and outside it (protests)? How might they complement each other?" + next_section_and_step: "civil_rights:step_1" + off_topic: + content_blocks: + - "Let's analyze the different Civil Rights strategies. How did legal, nonviolent direct action, and Black Power approaches differ?" + next_section_and_step: "civil_rights:step_1" + + - step_id: "step_2" + title: "Unfinished Business" + content_blocks: + - "## The Civil Rights Movement's Legacy" + - "The Civil Rights Movement achieved major legal victories:" + - "- Civil Rights Act (1964): Outlawed discrimination" + - "- Voting Rights Act (1965): Prohibited racial discrimination in voting" + - "- Fair Housing Act (1968): Prohibited discrimination in housing" + - "" + - "**But many goals remained unachieved:**" + - "" + - "**Economic Justice:**" + - "MLK's focus in final years was on poverty - the Poor People's Campaign" + - "Wealth gap: In 1963, median Black family had 5% of white family wealth. In 2016: 10%" + - "" + - "**Systemic Issues:**" + - "- School resegregation (integration peaked in 1988, has declined since)" + - "- Mass incarceration (5x incarceration rate for Black vs white Americans)" + - "- Voting rights: Shelby County v. Holder (2013) weakened Voting Rights Act" + - "" + - "**MLK's Final Speech (1968, night before assassination):**" + - "_'I've been to the mountaintop... I've seen the Promised Land. I may not get there with you. But I want you to know tonight, that we, as a people, will get to the Promised Land.'_" + question: "The Civil Rights Movement won major legal battles but many economic and systemic issues persist. Why do legal victories not automatically solve social problems? What more is needed beyond changing laws?" + tokens_for_ai: | + Looking for understanding that: + - Laws vs. implementation/enforcement + - Formal equality vs. substantive equality + - Systemic/structural issues + - Cultural change, economic redistribution, enforcement + + Categorize as: + - systemic_understanding: Grasps difference between formal and substantive equality + - implementation_focus: Emphasizes gap between law and enforcement + - cultural_change: Notes need for changing hearts and minds + - economic_analysis: Focuses on material/economic dimensions + - sophisticated_multi_factor: Identifies multiple dimensions of change needed + - partial_understanding: General thoughts + - limited_effort: Very brief + - off_topic: Unrelated + feedback_tokens_for_ai: | + Engage their thinking about social change. Legal change is necessary but not sufficient. + Systemic change requires enforcement, cultural shift, economic redistribution, and + addressing structural inequalities. If they give sophisticated analysis, affirm it. + buckets: + - systemic_understanding + - implementation_focus + - cultural_change + - economic_analysis + - sophisticated_multi_factor + - partial_understanding + - limited_effort + - off_topic + transitions: + systemic_understanding: + ai_feedback: + tokens_for_ai: "Excellent grasp of the difference between formal and substantive equality! Laws change what's legal, but systemic change requires transforming institutions, culture, and economic structures." + metadata_add: + score: "n+3" + critical_thinking: "n+1" + next_section_and_step: "conclusion:step_1" + implementation_focus: + ai_feedback: + tokens_for_ai: "Important point! There's often a gap between laws on the books and their enforcement. Discuss how enforcement requires political will and resources." + metadata_add: + score: "n+2" + next_section_and_step: "conclusion:step_1" + cultural_change: + ai_feedback: + tokens_for_ai: "Good insight about cultural change! Laws can change behavior, but cultural attitudes also need to shift. This is a slow, complex process." + metadata_add: + score: "n+2" + next_section_and_step: "conclusion:step_1" + economic_analysis: + ai_feedback: + tokens_for_ai: "Strong economic analysis! Legal equality doesn't address wealth gaps, employment discrimination, or economic structures. MLK increasingly focused on economic justice in his final years." + metadata_add: + score: "n+2" + next_section_and_step: "conclusion:step_1" + sophisticated_multi_factor: + ai_feedback: + tokens_for_ai: "Outstanding multi-dimensional analysis! You understand that social change requires legal, cultural, economic, and institutional transformation. This is advanced historical thinking." + metadata_add: + score: "n+3" + critical_thinking: "n+1" + next_section_and_step: "conclusion:step_1" + partial_understanding: + ai_feedback: + tokens_for_ai: "You're thinking about this. Consider: if a law is passed but not enforced, or if economic structures remain unchanged, what's the impact?" + metadata_add: + score: "n+1" + next_section_and_step: "conclusion:step_1" + limited_effort: + content_blocks: + - "Think about the difference between laws changing and society changing. What else needs to happen beyond passing legislation?" + next_section_and_step: "civil_rights:step_2" + off_topic: + content_blocks: + - "Let's think about why legal victories aren't enough. What more is needed for real social change?" + next_section_and_step: "civil_rights:step_2" + + - section_id: "conclusion" + title: "Historical Thinking and Contemporary Connections" + steps: + - step_id: "step_1" + title: "Thinking Like a Historian" + content_blocks: + - "## Congratulations, Historian! πŸŽ“" + - "You've engaged with American history at an advanced level." + - "" + - "**Key Historical Thinking Skills You've Practiced:**" + - "βœ“ **Primary Source Analysis** - Reading founding documents and speeches in context" + - "βœ“ **Cause and Effect** - Understanding how events lead to consequences" + - "βœ“ **Multiple Perspectives** - Considering different viewpoints on events" + - "βœ“ **Continuity and Change** - Seeing patterns and transformations over time" + - "βœ“ **Historical Significance** - Evaluating which events and ideas matter and why" + - "βœ“ **Connecting Past to Present** - Understanding how history shapes current issues" + - "" + - "**Themes Across American History:**" + - "- Tension between ideals and reality (equality vs. practice)" + - "- Struggles to expand democracy and rights" + - "- Economic factors shaping politics and society" + - "- Power of social movements to create change" + - "- Importance of institutions and their design" + - "" + - "**Why History Matters:**" + - "- Understand how we got here" + - "- Learn from past successes and failures" + - "- Recognize patterns and precedents" + - "- Think critically about present claims using historical evidence" + - "- Understand that change is possible because it has happened before" + - "" + - "**'Those who cannot remember the past are condemned to repeat it.'** - George Santayana" + question: "What's one historical insight from this activity that changes how you think about a contemporary issue? How does understanding history help you think more critically about the present?" + tokens_for_ai: | + This is a reflection on applying historical thinking to contemporary issues. + + Categorize as: + - specific_connection: Makes clear connection between historical insight and contemporary issue + - thoughtful_reflection: Meaningful reflection on historical thinking + - general_reflection: Broader thoughts about history's relevance + - limited_effort: Very brief + - off_topic: Unrelated + feedback_tokens_for_ai: | + Provide thoughtful, personalized feedback on their historical journey. Acknowledge specific + insights they shared throughout the activity. Encourage continued historical thinking and + exploration. Discuss how understanding history makes us better citizens. + buckets: + - specific_connection + - thoughtful_reflection + - general_reflection + - limited_effort + - off_topic + transitions: + specific_connection: + ai_feedback: + tokens_for_ai: "Excellent application of historical thinking to contemporary issues! Affirm their specific connection and discuss how historians analyze present events using historical frameworks." + metadata_add: + activity_completed: "true" + next_section_and_step: "conclusion:step_1" + thoughtful_reflection: + ai_feedback: + tokens_for_ai: "Thoughtful reflection on historical thinking! Encourage them to continue asking historical questions about contemporary issues." + metadata_add: + activity_completed: "true" + next_section_and_step: "conclusion:step_1" + general_reflection: + ai_feedback: + tokens_for_ai: "Thank them for engaging deeply with American history. Suggest specific historical topics or periods they might explore further based on their interests." + metadata_add: + activity_completed: "true" + next_section_and_step: "conclusion:step_1" + limited_effort: + ai_feedback: + tokens_for_ai: "Acknowledge their completion and encourage them to think about how historical patterns might illuminate current events." + metadata_add: + activity_completed: "true" + next_section_and_step: "conclusion:step_1" + off_topic: + content_blocks: + - "Reflect on your historical journey. What insight about the past helps you understand the present differently?" + next_section_and_step: "conclusion:step_1" diff --git a/research/activity36-biblical-history.yaml b/research/activity36-biblical-history.yaml new file mode 100644 index 0000000..9619c11 --- /dev/null +++ b/research/activity36-biblical-history.yaml @@ -0,0 +1,912 @@ +default_max_attempts_per_step: 3 + +tokens_for_ai_rubric: | + Evaluate the student's understanding of biblical history and ancient Near Eastern context. + Consider: + - Their grasp of historical periods and chronology + - Understanding of archaeological and historical evidence + - Ability to contextualize texts within their cultural setting + - Recognition of how geography influenced history + - Critical thinking about historical sources + + Provide encouraging feedback and suggest areas for deeper exploration of ancient history. + +sections: + - section_id: "introduction" + title: "Welcome to Biblical History" + steps: + - step_id: "welcome" + title: "Welcome, Ancient Historian" + content_blocks: + - "# Biblical History: Ancient Near East and Beyond πŸ“œ" + - "Explore the historical world of the Bible through archaeology, ancient texts, and cultural context." + - "" + - "**In this journey, you'll explore:**" + - "- The ancient Near Eastern world (Egypt, Mesopotamia, Canaan)" + - "- Historical periods from Bronze Age to Roman Empire" + - "- Archaeological discoveries and what they reveal" + - "- Cultural practices and daily life in ancient times" + - "- How geography shaped history and religion" + - "- Connections between biblical texts and historical context" + - "" + - "**Important Note:**" + - "This activity focuses on **historical and archaeological study**, not theology or religious belief." + - "We'll examine the Bible as an ancient text within its historical context." + - "" + - "Ready to explore the ancient world?" + question: "Are you ready to study biblical history through archaeology, ancient texts, and cultural context?" + tokens_for_ai: | + Student expressing readiness. + + Categorize as: + - ready: Positive, ready to begin + - set_language: Setting language preference + - off_topic: Unrelated + buckets: + - ready + - set_language + - off_topic + transitions: + ready: + content_blocks: + - "Excellent! Let's begin with the ancient Near Eastern world." + metadata_add: + period: "ancient_near_east" + next_section_and_step: "ancient_near_east:step_1" + set_language: + content_blocks: + - "I'll communicate in your preferred language." + counts_as_attempt: false + next_section_and_step: "introduction:welcome" + off_topic: + content_blocks: + - "Let's begin our journey into ancient history. Are you ready to explore?" + counts_as_attempt: false + next_section_and_step: "introduction:welcome" + + - section_id: "ancient_near_east" + title: "The Ancient Near Eastern World" + steps: + - step_id: "step_1" + title: "Geography and Civilizations" + content_blocks: + - "## The Fertile Crescent 🌍" + - "The biblical world was part of the ancient Near East, centered on the Fertile Crescent." + - "" + - "**Key Geographic Regions:**" + - "" + - "**Mesopotamia (Iraq):**" + - "- 'Land between rivers' (Tigris and Euphrates)" + - "- Civilizations: Sumerians, Akkadians, Babylonians, Assyrians" + - "- Invented cuneiform writing (3200 BCE)" + - "- Code of Hammurabi (1750 BCE) - ancient law code" + - "" + - "**Egypt:**" + - "- Nile River civilization" + - "- Pyramids, pharaohs, hieroglyphics" + - "- Powerful empire from 3000 BCE" + - "" + - "**Canaan/Levant (Israel/Palestine, Lebanon, Syria):**" + - "- Land bridge between Egypt and Mesopotamia" + - "- Trade routes made it strategically important" + - "- Caught between great empires" + - "- Home to Canaanites, Phoenicians, Israelites" + - "" + - "**Why Geography Matters:**" + - "Canaan's location meant it was constantly invaded by larger empires (Egypt, Assyria, Babylon, Persia, Greece, Rome)" + - "" + - "This shaped everything: politics, trade, culture, and even religious ideas traveled these routes." + question: "How do you think Canaan's geographic location - as a small land bridge between powerful empires - might have influenced the development of Israelite religion and identity?" + tokens_for_ai: | + Looking for understanding that: + - Geographic vulnerability shaped identity + - Contact with empires brought cultural exchange + - Small nation survival strategies + - Monotheism as distinctiveness + + Categorize as: + - sophisticated_geo_analysis: Connects geography to cultural/religious development + - identity_focus: Emphasizes how vulnerability shaped distinctiveness + - cultural_exchange: Notes influence from surrounding cultures + - political_analysis: Focuses on survival strategies + - partial_understanding: General thoughts + - limited_effort: Very brief + - asking_clarifying_questions: Needs more info + - off_topic: Unrelated + feedback_tokens_for_ai: | + Engage their geographic thinking. Small nations between empires often develop strong + identity markers to maintain distinctiveness. Israelite monotheism emerged partly as + a way to differentiate from polytheistic empires. If they note cultural exchange, affirm + that biblical texts show both resistance to and adoption of surrounding practices. + buckets: + - sophisticated_geo_analysis + - identity_focus + - cultural_exchange + - political_analysis + - partial_understanding + - limited_effort + - asking_clarifying_questions + - off_topic + transitions: + sophisticated_geo_analysis: + ai_feedback: + tokens_for_ai: "Excellent geographic analysis! Location between empires forced cultural choices: adopt or resist? Monotheism became a marker of Israelite distinctiveness. Discuss how this plays out in biblical texts." + metadata_add: + score: "n+3" + critical_thinking: "n+1" + next_section_and_step: "ancient_near_east:step_2" + identity_focus: + ai_feedback: + tokens_for_ai: "Good insight about identity! Small nations between empires often emphasize what makes them unique. For Israel, monotheism became that distinctive marker." + metadata_add: + score: "n+2" + next_section_and_step: "ancient_near_east:step_2" + cultural_exchange: + ai_feedback: + tokens_for_ai: "Important observation! The biblical text shows both influence from surrounding cultures (law codes, flood stories) and resistance to them (prohibition of foreign gods)." + metadata_add: + score: "n+2" + critical_thinking: "n+1" + next_section_and_step: "ancient_near_east:step_2" + political_analysis: + ai_feedback: + tokens_for_ai: "Good political analysis! How does a small nation survive between empires? Cultural distinctiveness and strong identity help maintain cohesion." + metadata_add: + score: "n+2" + next_section_and_step: "ancient_near_east:step_2" + partial_understanding: + ai_feedback: + tokens_for_ai: "You're thinking about this. Consider: if you're a small nation constantly threatened by larger empires, how might you maintain your identity?" + metadata_add: + score: "n+1" + next_section_and_step: "ancient_near_east:step_2" + limited_effort: + content_blocks: + - "Think about Canaan's vulnerable position between Egypt and Mesopotamia. How might this constant threat shape culture and religion?" + next_section_and_step: "ancient_near_east:step_1" + asking_clarifying_questions: + ai_feedback: + tokens_for_ai: "Answer their question about geography, empires, or ancient cultures." + counts_as_attempt: false + next_section_and_step: "ancient_near_east:step_1" + off_topic: + content_blocks: + - "Let's think about how geography shapes history. How did Canaan's location affect its development?" + next_section_and_step: "ancient_near_east:step_1" + + - step_id: "step_2" + title: "Ancient Literature and Parallels" + content_blocks: + - "## Ancient Near Eastern Texts" + - "The Bible wasn't written in isolation - it emerged from a world rich in literature." + - "" + - "**Epic of Gilgamesh (Mesopotamia, ~2100 BCE):**" + - "- Contains a flood story remarkably similar to Noah's flood" + - "- Utnapishtim builds an ark, saves animals, sends out birds, lands on a mountain" + - "- Written 1000+ years before biblical flood account" + - "" + - "**Code of Hammurabi (Babylon, ~1750 BCE):**" + - "- Ancient law code with similarities to biblical law" + - "- 'Eye for an eye' appears in Hammurabi and later in Exodus" + - "- Predates biblical law codes by centuries" + - "" + - "**Enuma Elish (Babylon, ~1100 BCE):**" + - "- Creation story with parallels to Genesis" + - "- Order from chaos, separation of waters, creation of humans" + - "" + - "**Archaeological Discovery:**" + - "These texts were discovered on clay tablets in the 1800s-1900s, showing the biblical writers knew and adapted earlier traditions." + question: "What does it mean that biblical stories have parallels in earlier Mesopotamian literature? Does this make the Bible less historically significant, or does it tell us something interesting about how ancient peoples shared and adapted stories?" + tokens_for_ai: | + This is a sophisticated question about cultural context and transmission. + + Looking for: + - Understanding that cultures influence each other + - Recognition that adaptation shows engagement with traditions + - Historical vs religious significance distinction + - Sophisticated view of ancient literature + + Categorize as: + - sophisticated_cultural_analysis: Understands literary borrowing and adaptation + - cultural_exchange_view: Sees parallels as normal cultural interaction + - theological_concern: Worried about implications for religious truth + - historical_significance: Focuses on what this tells us historically + - partial_understanding: General thoughts + - limited_effort: Very brief + - asking_clarifying_questions: Needs more info + - off_topic: Unrelated + feedback_tokens_for_ai: | + Engage thoughtfully. Ancient cultures influenced each other through conquest, trade, and + migration. Biblical writers adapted earlier stories but transformed them (monotheism vs + polytheism, moral emphasis, etc.). This is how literature works in the ancient world. + If they express theological concern, acknowledge it but focus on historical perspective. + buckets: + - sophisticated_cultural_analysis + - cultural_exchange_view + - theological_concern + - historical_significance + - partial_understanding + - limited_effort + - asking_clarifying_questions + - off_topic + transitions: + sophisticated_cultural_analysis: + ai_feedback: + tokens_for_ai: "Excellent literary and cultural analysis! Biblical writers took existing stories and transformed them to reflect their monotheistic worldview. This is sophisticated engagement with tradition, not mere copying." + metadata_add: + score: "n+3" + critical_thinking: "n+1" + next_section_and_step: "israelite_history:step_1" + cultural_exchange_view: + ai_feedback: + tokens_for_ai: "Good understanding of cultural exchange! Ancient peoples shared stories across cultures. Biblical writers adapted these stories to express their own theological and moral perspectives." + metadata_add: + score: "n+2" + next_section_and_step: "israelite_history:step_1" + theological_concern: + ai_feedback: + tokens_for_ai: "I understand the concern. From a historical perspective, adaptation shows engagement with surrounding cultures. Biblical writers transformed polytheistic stories into monotheistic ones - this is creative theological work." + metadata_add: + score: "n+1" + next_section_and_step: "israelite_history:step_1" + historical_significance: + ai_feedback: + tokens_for_ai: "Good historical perspective! These parallels show us how ideas traveled in the ancient world and how biblical writers creatively adapted traditions." + metadata_add: + score: "n+2" + critical_thinking: "n+1" + next_section_and_step: "israelite_history:step_1" + partial_understanding: + ai_feedback: + tokens_for_ai: "You're thinking about this. Consider: Shakespeare adapted earlier plays. Does that make his work less significant, or does it show how great writers transform traditions?" + metadata_add: + score: "n+1" + next_section_and_step: "israelite_history:step_1" + limited_effort: + content_blocks: + - "Think about how ancient cultures influenced each other. What might it mean that biblical writers knew and adapted earlier stories?" + next_section_and_step: "ancient_near_east:step_2" + asking_clarifying_questions: + ai_feedback: + tokens_for_ai: "Answer their question about ancient literature, cultural borrowing, or specific parallels." + counts_as_attempt: false + next_section_and_step: "ancient_near_east:step_2" + off_topic: + content_blocks: + - "Let's think about the parallels between biblical and earlier Mesopotamian stories. What do these similarities tell us?" + next_section_and_step: "ancient_near_east:step_2" + + - section_id: "israelite_history" + title: "Israelite History and Archaeology" + steps: + - step_id: "step_1" + title: "The Exodus Question" + content_blocks: + - "## Exodus: History or Memory? 🏜️" + - "The Exodus story is central to Jewish identity - but what do we know historically?" + - "" + - "**The Biblical Account:**" + - "- Israelites enslaved in Egypt" + - "- Moses leads them out through the Red Sea" + - "- 40 years wandering in the Sinai desert" + - "- Conquest of Canaan under Joshua" + - "" + - "**Archaeological Evidence:**" + - "- **No Egyptian records** of Israelite slavery or exodus (despite extensive Egyptian records)" + - "- **No archaeological evidence** of 2 million people in Sinai for 40 years" + - "- **No evidence of sudden conquest** of Canaan - instead, gradual emergence of Israelite settlements in highlands" + - "- **Merneptah Stele (1208 BCE):** Egyptian inscription mentions 'Israel' as a people in Canaan" + - "" + - "**Current Historical Consensus:**" + - "- A small group may have had experiences in Egypt, but not the massive exodus described" + - "- Israelites emerged primarily from Canaanite populations in the highlands" + - "- The Exodus story became a powerful foundation myth for Israelite identity" + - "" + - "**Why Foundation Myths Matter:**" + - "Every culture has origin stories that define identity - US Declaration of Independence, Romulus and Remus for Rome, etc." + question: "If the Exodus as described didn't happen, does that make the story less important? What's the difference between historical fact and historical significance? Why might a people preserve and elaborate such a story?" + tokens_for_ai: | + This is a sophisticated question about myth, history, and identity. + + Looking for: + - Distinction between literal history and meaning + - Understanding of foundation myths + - Recognition that stories shape identity even if not factual + - Nuanced thinking about truth and significance + + Categorize as: + - sophisticated_analysis: Distinguishes historical fact from historical/cultural significance + - myth_understanding: Grasps function of foundation myths + - identity_focus: Sees story's role in shaping group identity + - troubled_by_historicity: Struggles with non-literal interpretation + - partial_understanding: General thoughts + - limited_effort: Very brief + - asking_clarifying_questions: Needs more info + - off_topic: Unrelated + feedback_tokens_for_ai: | + Engage thoughtfully. Foundation myths aren't 'lies' - they're how peoples understand + themselves. The Exodus story of liberation from oppression became central to Jewish + identity and later inspired other liberation movements (civil rights, etc.). Historical + significance isn't the same as historical accuracy. If troubled by non-historicity, + acknowledge their concern while explaining the distinction. + buckets: + - sophisticated_analysis + - myth_understanding + - identity_focus + - troubled_by_historicity + - partial_understanding + - limited_effort + - asking_clarifying_questions + - off_topic + transitions: + sophisticated_analysis: + ai_feedback: + tokens_for_ai: "Excellent sophisticated thinking! You understand that stories can be historically significant even if not literally factual. The Exodus story shaped Jewish identity and inspired liberation movements worldwide." + metadata_add: + score: "n+3" + critical_thinking: "n+1" + next_section_and_step: "israelite_history:step_2" + myth_understanding: + ai_feedback: + tokens_for_ai: "Good understanding of foundation myths! Every culture has origin stories that define who they are. Historical accuracy matters less than the story's role in shaping identity." + metadata_add: + score: "n+2" + next_section_and_step: "israelite_history:step_2" + identity_focus: + ai_feedback: + tokens_for_ai: "Important insight about identity! The Exodus story defines Jewish identity as a people freed from slavery. This narrative inspired countless later liberation movements." + metadata_add: + score: "n+2" + critical_thinking: "n+1" + next_section_and_step: "israelite_history:step_2" + troubled_by_historicity: + ai_feedback: + tokens_for_ai: "I understand the concern. From a historical perspective, we can distinguish between literal factuality and cultural/historical significance. The Exodus story's impact on history is undeniable even if the events as described didn't occur." + metadata_add: + score: "n+1" + next_section_and_step: "israelite_history:step_2" + partial_understanding: + ai_feedback: + tokens_for_ai: "Think about other foundation stories: George Washington and the cherry tree probably didn't happen, but it expresses American values. Does that make it unimportant?" + metadata_add: + score: "n+1" + next_section_and_step: "israelite_history:step_1" + limited_effort: + content_blocks: + - "Consider: Can a story be important even if it's not literally factual? Think about how stories shape group identity." + next_section_and_step: "israelite_history:step_1" + asking_clarifying_questions: + ai_feedback: + tokens_for_ai: "Answer their question about the Exodus, archaeology, or foundation myths." + counts_as_attempt: false + next_section_and_step: "israelite_history:step_1" + off_topic: + content_blocks: + - "Let's think about the Exodus story's significance. Can stories be important even if not literally historical?" + next_section_and_step: "israelite_history:step_1" + + - step_id: "step_2" + title: "United Monarchy and Division" + content_blocks: + - "## Kings David and Solomon" + - "**Biblical Account:**" + - "- David unites tribes into a kingdom (~1000 BCE)" + - "- Solomon builds the First Temple in Jerusalem (~950 BCE)" + - "- Kingdom splits after Solomon's death into Israel (north) and Judah (south)" + - "" + - "**Archaeological Evidence:**" + - "- **Tel Dan Stele (9th century BCE):** Mentions 'House of David' - first non-biblical reference to David" + - "- **Limited evidence** for Solomon's temple or extensive building projects" + - "- **No evidence** of empire described in biblical text" + - "- **Evidence of division:** Northern kingdom (Israel) and southern kingdom (Judah) had different pottery, architecture, practices" + - "" + - "**Historical Reconstruction:**" + - "- David and Solomon likely existed as local chieftains" + - "- Later writers (during exile) expanded their stories into tales of a golden age" + - "- The 'united monarchy' may have been more limited than biblical account suggests" + - "" + - "**Why Matters:**" + - "After the Babylonian exile (586 BCE), Jews longed for restoration of the Davidic monarchy" + - "This hope shaped messianic expectations" + question: "Why might the biblical writers, writing during or after the Babylonian exile, have portrayed David and Solomon's kingdom as larger and more glorious than historical evidence suggests? What purpose would such an idealized past serve?" + tokens_for_ai: | + Looking for understanding of: + - Writing in response to trauma/loss + - Idealized past as hope for future + - How suffering shapes memory + - Messianic hopes + + Categorize as: + - sophisticated_analysis: Connects exile trauma to idealization of past + - hope_focus: Sees idealized past as source of hope + - identity_maintenance: Recognizes role in preserving identity during crisis + - literary_purpose: Understands narrative function + - partial_understanding: General thoughts + - limited_effort: Very brief + - asking_clarifying_questions: Needs more info + - off_topic: Unrelated + feedback_tokens_for_ai: | + Engage their thinking about trauma and memory. People in exile, having lost everything, + would remember a 'golden age' and hope for its restoration. The idealized past provides + both identity and hope for the future. This shapes messianic expectations - hope for a + new David to restore the kingdom. + buckets: + - sophisticated_analysis + - hope_focus + - identity_maintenance + - literary_purpose + - partial_understanding + - limited_effort + - asking_clarifying_questions + - off_topic + transitions: + sophisticated_analysis: + ai_feedback: + tokens_for_ai: "Excellent analysis of trauma and memory! In exile, an idealized past provides identity and hope for restoration. This shaped Jewish messianic expectations - longing for a new David." + metadata_add: + score: "n+3" + critical_thinking: "n+1" + next_section_and_step: "exile_return:step_1" + hope_focus: + ai_feedback: + tokens_for_ai: "Important insight about hope! The golden age of David/Solomon became a vision for the future - restoration of past glory. This shaped centuries of messianic hope." + metadata_add: + score: "n+2" + next_section_and_step: "exile_return:step_1" + identity_maintenance: + ai_feedback: + tokens_for_ai: "Good understanding of identity! In exile, remembering a glorious past helped maintain Jewish identity and hope when everything was lost." + metadata_add: + score: "n+2" + critical_thinking: "n+1" + next_section_and_step: "exile_return:step_1" + literary_purpose: + ai_feedback: + tokens_for_ai: "Good literary analysis! The idealized monarchy served narrative and theological purposes - explaining why exile happened and what restoration might look like." + metadata_add: + score: "n+2" + next_section_and_step: "exile_return:step_1" + partial_understanding: + ai_feedback: + tokens_for_ai: "Think about how people in crisis remember the past. If you've lost everything (exile), how might you remember 'the good old days'?" + metadata_add: + score: "n+1" + next_section_and_step: "exile_return:step_1" + limited_effort: + content_blocks: + - "Consider: if you've lost your homeland (exile), why might you idealize the past? What purpose would that serve?" + next_section_and_step: "israelite_history:step_2" + asking_clarifying_questions: + ai_feedback: + tokens_for_ai: "Answer their question about David, Solomon, the exile, or idealized history." + counts_as_attempt: false + next_section_and_step: "israelite_history:step_2" + off_topic: + content_blocks: + - "Let's think about the idealization of David and Solomon. Why would exiled people portray their past as more glorious?" + next_section_and_step: "israelite_history:step_2" + + - section_id: "exile_return" + title: "Exile, Return, and Second Temple Period" + steps: + - step_id: "step_1" + title: "Babylonian Exile" + content_blocks: + - "## The Babylonian Exile (586-539 BCE)" + - "**Historical Events:**" + - "- 586 BCE: Babylonians destroy Jerusalem and Solomon's Temple" + - "- Judah's elite are exiled to Babylon" + - "- 539 BCE: Persians conquer Babylon" + - "- 538 BCE: Persian King Cyrus allows Jews to return" + - "" + - "**Why the Exile Was Transformative:**" + - "" + - "**Before Exile:**" + - "- Temple-centered worship in Jerusalem" + - "- Sacrifices performed by priests" + - "- David's descendants ruled as kings" + - "" + - "**After Exile:**" + - "- Synagogues emerged (gathering places for prayer/study)" + - "- Torah (written law) became central" + - "- Scribes and rabbis gained importance" + - "- Monotheism became strictly defined" + - "" + - "**The Exile Forced Questions:**" + - "- Why did God allow Jerusalem to fall?" + - "- Can we worship God without the Temple?" + - "- What does it mean to be Jewish in foreign lands?" + - "- How do we maintain identity without a homeland?" + - "" + - "**Most of the Hebrew Bible was edited/compiled during or after the exile**" + - "The experience of exile profoundly shaped how the Bible was written." + question: "The Babylonian exile forced Judaism to transform from a temple-based, land-based religion to one that could survive without either. Why do you think this crisis led to such religious creativity rather than the religion's disappearance?" + tokens_for_ai: | + Looking for understanding of: + - Crisis forcing adaptation + - Innovation from necessity + - Portable religion (Torah, synagogues) + - Identity maintenance in diaspora + + Categorize as: + - sophisticated_analysis: Understands how crisis drives innovation + - adaptation_focus: Emphasizes flexibility and change + - portable_religion: Recognizes creation of non-territorial religion + - identity_focus: Sees response to threat of assimilation + - partial_understanding: General thoughts + - limited_effort: Very brief + - asking_clarifying_questions: Needs more info + - off_topic: Unrelated + feedback_tokens_for_ai: | + Engage their thinking about crisis and adaptation. The exile could have ended Judaism, + but instead sparked innovation: synagogues, written Torah, rabbis. This created a + portable religion that could survive anywhere. This is one of history's great examples + of religious innovation in response to crisis. + buckets: + - sophisticated_analysis + - adaptation_focus + - portable_religion + - identity_focus + - partial_understanding + - limited_effort + - asking_clarifying_questions + - off_topic + transitions: + sophisticated_analysis: + ai_feedback: + tokens_for_ai: "Excellent analysis of crisis and innovation! The exile threatened Judaism's existence but sparked creativity: Torah, synagogues, and rabbis created a religion that could survive anywhere. This is a pivotal moment in religious history." + metadata_add: + score: "n+3" + critical_thinking: "n+1" + next_section_and_step: "new_testament:step_1" + adaptation_focus: + ai_feedback: + tokens_for_ai: "Good understanding of adaptation! Faced with the Temple's destruction, Judaism transformed rather than disappeared. This flexibility ensured survival." + metadata_add: + score: "n+2" + next_section_and_step: "new_testament:step_1" + portable_religion: + ai_feedback: + tokens_for_ai: "Excellent insight! The exile created a 'portable' religion - Torah scrolls, synagogues, and practices that worked anywhere. This allowed Judaism to survive dispersal worldwide." + metadata_add: + score: "n+2" + critical_thinking: "n+1" + next_section_and_step: "new_testament:step_1" + identity_focus: + ai_feedback: + tokens_for_ai: "Important point about identity! The threat of assimilation in Babylon forced Jews to define what made them distinctive - leading to emphasis on Torah and practices." + metadata_add: + score: "n+2" + next_section_and_step: "new_testament:step_1" + partial_understanding: + ai_feedback: + tokens_for_ai: "Think about what Judaism needed to survive without Temple and land. What innovations made religion 'portable'?" + metadata_add: + score: "n+1" + next_section_and_step: "new_testament:step_1" + limited_effort: + content_blocks: + - "Consider: the Temple was destroyed, the land was lost. What changes would allow Judaism to survive anyway?" + next_section_and_step: "exile_return:step_1" + asking_clarifying_questions: + ai_feedback: + tokens_for_ai: "Answer their question about the exile, religious innovation, or survival strategies." + counts_as_attempt: false + next_section_and_step: "exile_return:step_1" + off_topic: + content_blocks: + - "Let's think about how the exile transformed Judaism. Why did crisis lead to innovation rather than disappearance?" + next_section_and_step: "exile_return:step_1" + + - section_id: "new_testament" + title: "The Roman Period and Early Christianity" + steps: + - step_id: "step_1" + title: "Roman Judea and Messianic Expectations" + content_blocks: + - "## 1st Century CE: Roman Occupation" + - "**Historical Context:**" + - "- 63 BCE: Romans conquer Judea" + - "- Jews under foreign rule (again) - Romans, not Babylonians" + - "- Heavy taxation, political oppression" + - "- Various resistance movements" + - "" + - "**Diverse Jewish Groups (from historical sources):**" + - "" + - "**Pharisees:**" + - "- Emphasized Torah study and oral law" + - "- Believed in resurrection of the dead" + - "- Precursors to rabbinical Judaism" + - "" + - "**Sadducees:**" + - "- Priestly aristocracy controlling the Temple" + - "- Collaborated with Romans" + - "- Rejected resurrection belief" + - "" + - "**Essenes:**" + - "- Ascetic community in the desert (Dead Sea Scrolls)" + - "- Awaited apocalyptic end times" + - "" + - "**Zealots:**" + - "- Armed resistance against Rome" + - "- Eventually sparked the Jewish War (66-73 CE)" + - "" + - "**Messianic Expectations:**" + - "Many Jews expected a messiah (anointed king) to:" + - "- Restore Davidic kingdom" + - "- Defeat the Romans" + - "- Rebuild/purify the Temple" + - "- Usher in God's kingdom" + question: "Jesus emerged in this context of Roman occupation and messianic hope. Why do you think his movement attracted followers but also led to his execution by Roman authorities?" + tokens_for_ai: | + Looking for understanding of: + - Political context of messianic claims + - Rome's view of potential revolutionaries + - Jewish diversity of expectations + - Crucifixion as political punishment + + Categorize as: + - political_analysis: Understands political threat of messianic claims + - roman_perspective: Considers how Romans viewed such movements + - jewish_context: Situates Jesus within Jewish messianic expectations + - nuanced_understanding: Sees complexity of political/religious/social factors + - partial_understanding: General thoughts + - limited_effort: Very brief + - asking_clarifying_questions: Needs more info + - off_topic: Unrelated + feedback_tokens_for_ai: | + Engage historical context. Messianic claims were political threats to Rome (claiming + to be 'King of the Jews' challenges Roman authority). Crucifixion was Roman punishment + for political rebels, not religious heretics. Jesus' movement attracted followers + precisely because of messianic hopes, but this made him dangerous to authorities. + buckets: + - political_analysis + - roman_perspective + - jewish_context + - nuanced_understanding + - partial_understanding + - limited_effort + - asking_clarifying_questions + - off_topic + transitions: + political_analysis: + ai_feedback: + tokens_for_ai: "Excellent political analysis! Messianic claims were inherently political - claiming to be 'King of the Jews' challenged Roman authority. Crucifixion was how Romans dealt with political rebels." + metadata_add: + score: "n+3" + critical_thinking: "n+1" + next_section_and_step: "new_testament:step_2" + roman_perspective: + ai_feedback: + tokens_for_ai: "Good historical perspective! From Rome's viewpoint, anyone claiming to be a king/messiah was a potential revolutionary. Crucifixion sent a message about challenging Roman power." + metadata_add: + score: "n+2" + next_section_and_step: "new_testament:step_2" + jewish_context: + ai_feedback: + tokens_for_ai: "Good contextualization! Jesus fit into existing Jewish messianic expectations - which is why he attracted followers - but also why authorities saw him as dangerous." + metadata_add: + score: "n+2" + critical_thinking: "n+1" + next_section_and_step: "new_testament:step_2" + nuanced_understanding: + ai_feedback: + tokens_for_ai: "Sophisticated historical thinking! You understand the complex political, religious, and social factors that made Jesus' movement both attractive and threatening." + metadata_add: + score: "n+3" + critical_thinking: "n+1" + next_section_and_step: "new_testament:step_2" + partial_understanding: + ai_feedback: + tokens_for_ai: "Think about the political context. What would Romans think of someone claiming to be 'King of the Jews'? How would they respond?" + metadata_add: + score: "n+1" + next_section_and_step: "new_testament:step_1" + limited_effort: + content_blocks: + - "Consider: Judea is under Roman occupation. Someone claims to be the 'King of the Jews.' How would Rome view this?" + next_section_and_step: "new_testament:step_1" + asking_clarifying_questions: + ai_feedback: + tokens_for_ai: "Answer their question about Roman Judea, messianic movements, or crucifixion." + counts_as_attempt: false + next_section_and_step: "new_testament:step_1" + off_topic: + content_blocks: + - "Let's think about the political context. Why would messianic claims attract followers but threaten authorities?" + next_section_and_step: "new_testament:step_1" + + - step_id: "step_2" + title: "Early Christianity's Transformation" + content_blocks: + - "## From Jewish Sect to Separate Religion" + - "**Initial Movement (30s-40s CE):**" + - "- Followers were Jews who believed Jesus was the messiah" + - "- Centered in Jerusalem" + - "- Followed Torah and Jewish practices" + - "- Expected Jesus' imminent return" + - "" + - "**Paul's Innovation (40s-60s CE):**" + - "- Took message to non-Jews (Gentiles)" + - "- Argued Gentiles didn't need to follow Jewish law (circumcision, kosher, etc.)" + - "- Christianity became accessible to broader population" + - "" + - "**Destruction of Jerusalem (70 CE):**" + - "- Romans destroy Temple after Jewish revolt" + - "- Jewish Christianity (Jerusalem-based) devastated" + - "- Gentile Christianity (Paul's version) continues to grow" + - "" + - "**By 100 CE:**" + - "- Christianity is mostly Gentile" + - "- Distinct from Judaism (though sharing scriptures)" + - "- Spreading throughout Roman Empire" + - "" + - "**Historical Irony:**" + - "A movement that began as Jewish messianism became predominantly non-Jewish within a generation." + question: "Why did Christianity transform from a Jewish movement expecting a political messiah to defeat Rome, into a religion focused on spiritual salvation that attracted Romans? What changed?" + tokens_for_ai: | + Looking for understanding of: + - Failed political messianic expectations (Jesus didn't defeat Rome) + - Theological reinterpretation after crucifixion + - Paul's innovations for Gentiles + - Adaptation after Temple destruction + + Categorize as: + - sophisticated_transformation: Understands theological reinterpretation after failed political expectations + - paul_focus: Emphasizes Paul's role in adaptation + - gentile_appeal: Understands removal of barriers attracted non-Jews + - failed_expectations: Grasps need to reinterpret after Jesus didn't fulfill political messianism + - partial_understanding: General thoughts + - limited_effort: Very brief + - asking_clarifying_questions: Needs more info + - off_topic: Unrelated + feedback_tokens_for_ai: | + Engage complex transformation. Jesus didn't defeat Rome (political messianism failed), + so followers reinterpreted: spiritual not political kingdom, suffering messiah, second + coming. Paul removed Jewish law requirements, making it accessible to Gentiles. Temple + destruction ended Jerusalem-based Jewish Christianity. This is one of history's great + religious transformations. + buckets: + - sophisticated_transformation + - paul_focus + - gentile_appeal + - failed_expectations + - partial_understanding + - limited_effort + - asking_clarifying_questions + - off_topic + transitions: + sophisticated_transformation: + ai_feedback: + tokens_for_ai: "Excellent analysis of religious transformation! Political messianic expectations failed (Jesus didn't defeat Rome), requiring theological reinterpretation: spiritual kingdom, suffering messiah, future return. This is sophisticated historical thinking." + metadata_add: + score: "n+3" + critical_thinking: "n+1" + next_section_and_step: "conclusion:step_1" + paul_focus: + ai_feedback: + tokens_for_ai: "Good focus on Paul's innovation! Removing requirements for Jewish law made Christianity accessible to Gentiles. This was crucial for its spread beyond Jewish communities." + metadata_add: + score: "n+2" + next_section_and_step: "conclusion:step_1" + gentile_appeal: + ai_feedback: + tokens_for_ai: "Important insight! Removing barriers (circumcision, kosher laws) allowed non-Jews to join without becoming fully Jewish. This opened Christianity to the wider Roman world." + metadata_add: + score: "n+2" + critical_thinking: "n+1" + next_section_and_step: "conclusion:step_1" + failed_expectations: + ai_feedback: + tokens_for_ai: "Good historical understanding! Jesus didn't fulfill political messianic expectations (defeating Rome), requiring reinterpretation of what 'messiah' meant. This theological creativity allowed the movement to survive." + metadata_add: + score: "n+2" + next_section_and_step: "conclusion:step_1" + partial_understanding: + ai_feedback: + tokens_for_ai: "Think about expectations: Jesus was executed, Rome wasn't defeated. How would followers reinterpret this? And why would Paul's version appeal to non-Jews?" + metadata_add: + score: "n+1" + next_section_and_step: "conclusion:step_1" + limited_effort: + content_blocks: + - "Consider two factors: 1) Jesus didn't defeat Rome as expected, 2) Paul removed Jewish law requirements. How did these shape Christianity's transformation?" + next_section_and_step: "new_testament:step_2" + asking_clarifying_questions: + ai_feedback: + tokens_for_ai: "Answer their question about early Christianity, Paul, or religious transformation." + counts_as_attempt: false + next_section_and_step: "new_testament:step_2" + off_topic: + content_blocks: + - "Let's think about Christianity's transformation from Jewish sect to separate religion. What changed?" + next_section_and_step: "new_testament:step_2" + + - section_id: "conclusion" + title: "Conclusion: Historical Thinking and Ancient Texts" + steps: + - step_id: "step_1" + title: "Reflecting on Biblical History" + content_blocks: + - "## Congratulations, Ancient Historian! πŸ“œ" + - "You've explored biblical history through archaeology, ancient texts, and cultural context." + - "" + - "**Key Historical Thinking Skills:**" + - "βœ“ **Contextualizing** - Understanding texts within their historical setting" + - "βœ“ **Archaeological Evidence** - Using material remains to understand the past" + - "βœ“ **Cultural Exchange** - Recognizing how cultures influence each other" + - "βœ“ **Foundation Myths** - Understanding role of stories in identity" + - "βœ“ **Crisis and Adaptation** - How challenges drive innovation" + - "βœ“ **Transformation** - Religions change in response to historical circumstances" + - "" + - "**Themes Across Biblical History:**" + - "- Geography shapes history and culture" + - "- Small nations between empires develop strong identities" + - "- Stories serve purposes beyond literal history" + - "- Crisis drives religious innovation" + - "- Religions transform in response to circumstances" + - "" + - "**Why Historical Study Matters:**" + - "- Understand ancient texts in context" + - "- Appreciate cultural complexity of the ancient world" + - "- See how religions develop and change" + - "- Apply critical thinking to historical sources" + - "- Recognize patterns of cultural adaptation" + question: "What's the most interesting historical insight you gained from this activity? How does understanding the historical context change how you read ancient texts?" + tokens_for_ai: | + Reflection on historical learning. + + Categorize as: + - specific_insight: Identifies particular historical insight + - contextual_understanding: Emphasizes importance of historical context + - thoughtful_reflection: Meaningful reflection on learning + - general_reflection: Broader thoughts + - limited_effort: Very brief + - off_topic: Unrelated + feedback_tokens_for_ai: | + Provide thoughtful, personalized feedback on their historical journey. Acknowledge insights + they shared throughout. Emphasize that understanding historical context enriches our + reading of ancient texts - whether approaching them religiously, literarily, or historically. + Suggest areas for further exploration based on their interests. + buckets: + - specific_insight + - contextual_understanding + - thoughtful_reflection + - general_reflection + - limited_effort + - off_topic + transitions: + specific_insight: + ai_feedback: + tokens_for_ai: "Excellent specific insight! Affirm their learning and suggest related topics for further exploration." + metadata_add: + activity_completed: "true" + next_section_and_step: "conclusion:step_1" + contextual_understanding: + ai_feedback: + tokens_for_ai: "Great emphasis on historical context! This approach enriches understanding of any ancient text, religious or otherwise." + metadata_add: + activity_completed: "true" + next_section_and_step: "conclusion:step_1" + thoughtful_reflection: + ai_feedback: + tokens_for_ai: "Thoughtful reflection on historical learning! Encourage continued exploration of ancient history and archaeology." + metadata_add: + activity_completed: "true" + next_section_and_step: "conclusion:step_1" + general_reflection: + ai_feedback: + tokens_for_ai: "Thank them for engaging with biblical history. Suggest specific topics they might explore further." + metadata_add: + activity_completed: "true" + next_section_and_step: "conclusion:step_1" + limited_effort: + ai_feedback: + tokens_for_ai: "Acknowledge their completion and encourage them to continue exploring the ancient world." + metadata_add: + activity_completed: "true" + next_section_and_step: "conclusion:step_1" + off_topic: + content_blocks: + - "Reflect on your historical journey. What did you find most interesting about the ancient Near Eastern world?" + next_section_and_step: "conclusion:step_1" diff --git a/research/activity37-programming-languages.yaml b/research/activity37-programming-languages.yaml new file mode 100644 index 0000000..8777966 --- /dev/null +++ b/research/activity37-programming-languages.yaml @@ -0,0 +1,933 @@ +default_max_attempts_per_step: 3 + +tokens_for_ai_rubric: | + Evaluate the student's understanding of programming concepts in their chosen language. + Consider: + - Grasp of fundamental concepts (variables, types, control flow, functions) + - Ability to write code that uses stdout to display output + - Understanding of syntax in their chosen language + - Problem-solving approach + - Progression from simple to complex concepts + + Provide encouraging feedback adapted to their specific programming language. + +sections: + - section_id: "introduction" + title: "Welcome to Programming" + steps: + - step_id: "welcome" + title: "Choose Your Language" + content_blocks: + - "# Learn Programming: Your Language, Your Journey πŸ’»" + - "Welcome to programming! You'll learn fundamental concepts that apply to all programming languages." + - "" + - "**First, choose your programming language:**" + - "" + - "**Popular choices:**" + - "- Python (beginner-friendly, powerful, widely used)" + - "- JavaScript (web development, interactive websites)" + - "- Java (enterprise applications, Android)" + - "- C++ (systems programming, games, performance-critical)" + - "- C# (game development with Unity, Windows apps)" + - "- Ruby (web development, elegant syntax)" + - "- Go (modern, fast, concurrent systems)" + - "- Rust (memory-safe systems programming)" + - "- Swift (iOS/Mac development)" + - "- Kotlin (Android development, modern JVM)" + - "" + - "**Or any other language you're interested in:**" + - "- PHP, Perl, R, Julia, Scala, Haskell, Elixir, Lua, TypeScript, Dart, Objective-C, Visual Basic, COBOL, Fortran, Assembly, etc." + - "" + - "**All programming languages share core concepts** - what you learn in one language helps you learn others!" + question: "Which programming language would you like to learn? (Type the name of any programming language)" + tokens_for_ai: | + The student is choosing a programming language. Store their choice in metadata. + + Accept ANY programming language they name (Python, JavaScript, C++, COBOL, Brainfuck, whatever). + Be enthusiastic about their choice regardless of language. + + For the REST of this activity: + - ALL code examples must be in their chosen language + - ALL explanations must be adapted to their language's syntax and conventions + - ALL feedback must reference their specific language + + Categorize as: + - language_chosen: Student named a programming language (any language) + - set_language: Student setting human language preference (not programming language) + - off_topic: Didn't choose a programming language + buckets: + - language_chosen + - set_language + - off_topic + transitions: + language_chosen: + ai_feedback: + tokens_for_ai: | + Identify the programming language they chose. Be enthusiastic! + Say something like: "Excellent choice! [Language] is great for [typical use cases]." + Store the EXACT language name they provided in metadata. + + Remember: From now on, ALL code examples and explanations must be in their chosen language. + metadata_add: + programming_language: "the-users-response" + counts_as_attempt: false + next_section_and_step: "hello_world:step_1" + set_language: + content_blocks: + - "I'll communicate in your preferred human language. But please also choose a PROGRAMMING language to learn (like Python, JavaScript, C++, etc.)" + counts_as_attempt: false + next_section_and_step: "introduction:welcome" + off_topic: + content_blocks: + - "Please choose a programming language you'd like to learn. You can pick any language - Python, JavaScript, C++, or any other language you're interested in!" + counts_as_attempt: false + next_section_and_step: "introduction:welcome" + + - section_id: "hello_world" + title: "Hello World - Your First Program" + steps: + - step_id: "step_1" + title: "Displaying Output" + content_blocks: + - "## Your First Program: Hello World! πŸ‘‹" + - "The traditional first program in any language is 'Hello World' - a program that displays text to the screen." + - "" + - "**In programming, we use stdout (standard output) to display messages.**" + - "" + - "Different languages have different ways to write to stdout, but they all do the same thing: show text to the user." + question: "How do you display 'Hello, World!' to stdout in your chosen language? Write the complete code." + tokens_for_ai: | + IMPORTANT: Get the student's chosen language from metadata (programming_language). + + Evaluate their Hello World code in THAT specific language. + + Examples of correct Hello World in various languages: + - Python: print("Hello, World!") + - JavaScript: console.log("Hello, World!"); + - Java: System.out.println("Hello, World!"); + - C++: std::cout << "Hello, World!" << std::endl; + - C: printf("Hello, World!\n"); + - Ruby: puts "Hello, World!" + - Go: fmt.Println("Hello, World!") + - Rust: println!("Hello, World!"); + - PHP: echo "Hello, World!"; + - Swift: print("Hello, World!") + + If they write correct code for their language, praise them! + If incorrect, show them the correct syntax for their specific language. + + Categorize as: + - correct: Valid Hello World code in their chosen language + - close: Has the right idea but syntax errors + - wrong_language: Used a different language than they chose + - incomplete: Missing parts + - limited_effort: Too brief or unclear + - asking_clarifying_questions: Asking for help + - off_topic: Not attempting the task + feedback_tokens_for_ai: | + Provide feedback specific to their language. + If correct, show enthusiasm! + If incorrect, show the correct syntax and explain it. + + Always show the correct code for their specific language. + buckets: + - correct + - close + - wrong_language + - incomplete + - limited_effort + - asking_clarifying_questions + - off_topic + transitions: + correct: + ai_feedback: + tokens_for_ai: "Perfect! That's exactly how you write Hello World in [their language]. Explain what each part does (the output function/statement, the string, any semicolons/syntax)." + metadata_add: + score: "n+2" + concepts_mastered: "n+1" + next_section_and_step: "hello_world:step_2" + close: + ai_feedback: + tokens_for_ai: "You have the right idea! Show them the correct syntax for their language and explain what was slightly off." + metadata_add: + score: "n+1" + next_section_and_step: "hello_world:step_2" + wrong_language: + ai_feedback: + tokens_for_ai: "That looks like code for a different language! You chose [their language]. Here's how you do it in [their language]: [show correct code]" + next_section_and_step: "hello_world:step_1" + incomplete: + ai_feedback: + tokens_for_ai: "You're on the right track but missing some parts. Show the complete Hello World code for their language." + next_section_and_step: "hello_world:step_1" + limited_effort: + content_blocks: + - "Try writing the actual code! How does your chosen language display text to the screen?" + next_section_and_step: "hello_world:step_1" + asking_clarifying_questions: + ai_feedback: + tokens_for_ai: "Help them with their question, then show the Hello World code for their specific language." + counts_as_attempt: false + next_section_and_step: "hello_world:step_1" + off_topic: + content_blocks: + - "Let's write your first program! How do you display 'Hello, World!' in your chosen language?" + next_section_and_step: "hello_world:step_1" + + - step_id: "step_2" + title: "Multiple Outputs" + content_blocks: + - "## Displaying Multiple Lines" + - "Great! Now let's display multiple messages." + - "" + - "You can write to stdout multiple times in a row to display several lines of text." + question: "Write a program that displays three lines to stdout: 'My first program', 'Learning to code', and 'This is fun!' (each on its own line)" + tokens_for_ai: | + The student should write code in THEIR chosen language (from metadata) that outputs three lines. + + Check that: + - Code is in their chosen language + - Outputs all three strings + - Each on a separate line (using newlines or multiple output statements) + + Categorize as: + - correct: Valid code outputting all three lines in their language + - close: Right idea, minor syntax issues + - missing_newlines: All on one line instead of three + - incomplete: Missing one or more lines + - wrong_language: Used different language + - limited_effort: Too brief + - asking_clarifying_questions: Asking for help + - off_topic: Not attempting + feedback_tokens_for_ai: | + Provide feedback specific to their language. + Show the correct code if needed. + Explain how newlines work in their language (\\n in strings, or separate output statements, etc.). + buckets: + - correct + - close + - missing_newlines + - incomplete + - wrong_language + - limited_effort + - asking_clarifying_questions + - off_topic + transitions: + correct: + ai_feedback: + tokens_for_ai: "Excellent! You've written multiple output statements in [their language]. Explain how they can use this to build more complex programs." + metadata_add: + score: "n+2" + concepts_mastered: "n+1" + next_section_and_step: "variables:step_1" + close: + ai_feedback: + tokens_for_ai: "Almost there! Show the correct code and explain the minor issue." + metadata_add: + score: "n+1" + next_section_and_step: "variables:step_1" + missing_newlines: + ai_feedback: + tokens_for_ai: "Good try! But they should be on separate lines. Show how to create newlines in their language (either \\n in strings or multiple statements)." + next_section_and_step: "hello_world:step_2" + incomplete: + ai_feedback: + tokens_for_ai: "You're missing one or more of the required lines. Show the complete code for their language." + next_section_and_step: "hello_world:step_2" + wrong_language: + ai_feedback: + tokens_for_ai: "Remember, you're learning [their language]! Here's how to do it in [their language]: [show code]" + next_section_and_step: "hello_world:step_2" + limited_effort: + content_blocks: + - "Write the actual code to display all three messages!" + next_section_and_step: "hello_world:step_2" + asking_clarifying_questions: + ai_feedback: + tokens_for_ai: "Answer their question, then guide them on how to output multiple lines in their language." + counts_as_attempt: false + next_section_and_step: "hello_world:step_2" + off_topic: + content_blocks: + - "Write code to display three lines of text using your chosen language." + next_section_and_step: "hello_world:step_2" + + - section_id: "variables" + title: "Variables and Data Types" + steps: + - step_id: "step_1" + title: "Creating Variables" + content_blocks: + - "## Variables: Storing Information πŸ“¦" + - "Variables let you store and reuse data in your programs." + - "" + - "**Think of a variable as a labeled box:**" + - "- The label is the variable name" + - "- The contents is the value" + - "- You can look inside the box (read the value)" + - "- You can change what's inside (update the value)" + - "" + - "Different languages have different syntax for creating variables, but the concept is universal." + question: "Write a program that creates a variable called 'name' with your name as the value, then displays it to stdout." + tokens_for_ai: | + Check that student writes code in THEIR language that: + - Creates a variable (using their language's syntax) + - Assigns a string value to it + - Outputs the variable to stdout + + Examples: + - Python: name = "Alice" \\n print(name) + - JavaScript: let name = "Alice"; \\n console.log(name); + - Java: String name = "Alice"; \\n System.out.println(name); + - C++: std::string name = "Alice"; \\n std::cout << name << std::endl; + + Categorize as: + - correct: Valid variable creation and output in their language + - close: Right idea, minor syntax issues + - missing_declaration: In typed languages, forgot type + - wrong_output: Created variable but didn't output it + - hardcoded_output: Outputted string directly instead of using variable + - wrong_language: Used different language + - limited_effort: Too brief + - asking_clarifying_questions: Needs help + - off_topic: Not attempting + feedback_tokens_for_ai: | + Provide feedback for their specific language. + Show correct syntax for variable declaration (including type if their language requires it). + Explain how to output a variable in their language. + buckets: + - correct + - close + - missing_declaration + - wrong_output + - hardcoded_output + - wrong_language + - limited_effort + - asking_clarifying_questions + - off_topic + transitions: + correct: + ai_feedback: + tokens_for_ai: "Perfect! You've created a variable and displayed it in [their language]. Explain how variables make code reusable and dynamic." + metadata_add: + score: "n+2" + concepts_mastered: "n+1" + next_section_and_step: "variables:step_2" + close: + ai_feedback: + tokens_for_ai: "Almost! Show the correct syntax and explain the issue." + metadata_add: + score: "n+1" + next_section_and_step: "variables:step_2" + missing_declaration: + ai_feedback: + tokens_for_ai: "In [their language], you need to declare the variable type. Show the correct syntax with type declaration." + next_section_and_step: "variables:step_1" + wrong_output: + ai_feedback: + tokens_for_ai: "You created the variable but didn't display it! Show how to output the variable in their language." + next_section_and_step: "variables:step_1" + hardcoded_output: + ai_feedback: + tokens_for_ai: "You need to store the value in a variable first, then display the VARIABLE, not the string directly. Show the correct approach." + next_section_and_step: "variables:step_1" + wrong_language: + ai_feedback: + tokens_for_ai: "That's not [their language] syntax! Here's how to create and display a variable in [their language]: [show code]" + next_section_and_step: "variables:step_1" + limited_effort: + content_blocks: + - "Write the actual code! Create a variable and then display it." + next_section_and_step: "variables:step_1" + asking_clarifying_questions: + ai_feedback: + tokens_for_ai: "Answer their question about variables in their specific language." + counts_as_attempt: false + next_section_and_step: "variables:step_1" + off_topic: + content_blocks: + - "Create a variable with your name and display it using your chosen language." + next_section_and_step: "variables:step_1" + + - step_id: "step_2" + title: "Data Types" + content_blocks: + - "## Understanding Data Types" + - "Variables can hold different types of data:" + - "" + - "**Common data types:**" + - "- **Strings:** Text (\"hello\")" + - "- **Integers:** Whole numbers (42)" + - "- **Floats/Decimals:** Numbers with decimal points (3.14)" + - "- **Booleans:** True or false values" + - "" + - "Some languages require you to specify the type (statically typed), others figure it out automatically (dynamically typed)." + question: "Write a program with three variables: an integer (age), a decimal/float (height in meters), and a string (city). Display all three with labels, like 'Age: 25', 'Height: 1.75', 'City: Tokyo'" + tokens_for_ai: | + Check that student creates three variables of different types and outputs them with labels. + + For their specific language: + - Integer variable + - Float/decimal variable + - String variable + - Outputs each with descriptive label + + Categorize as: + - correct: All three types declared and outputted correctly + - close: Right idea, minor issues + - missing_types: In typed language, didn't specify types + - wrong_types: Used wrong type for data (string for number, etc.) + - missing_labels: Outputted values but without labels + - incomplete: Missing one or more variables + - wrong_language: Used different language + - limited_effort: Too brief + - asking_clarifying_questions: Needs help + - off_topic: Not attempting + feedback_tokens_for_ai: | + For their language, show: + - How to declare each type + - How to output strings and variables together (concatenation or formatting) + - Any type-specific syntax + + If statically typed language (Java, C++, etc.): ensure they declared types + If dynamically typed (Python, JavaScript, Ruby): explain that types are inferred + buckets: + - correct + - close + - missing_types + - wrong_types + - missing_labels + - incomplete + - wrong_language + - limited_effort + - asking_clarifying_questions + - off_topic + transitions: + correct: + ai_feedback: + tokens_for_ai: "Excellent! You've worked with multiple data types in [their language]. Explain how different types are used for different purposes." + metadata_add: + score: "n+3" + concepts_mastered: "n+1" + next_section_and_step: "control_flow:step_1" + close: + ai_feedback: + tokens_for_ai: "Good work! Show the corrected version and explain string concatenation or formatting in their language." + metadata_add: + score: "n+2" + next_section_and_step: "control_flow:step_1" + missing_types: + ai_feedback: + tokens_for_ai: "In [their language], you need to specify variable types. Show the correct syntax with type declarations." + next_section_and_step: "variables:step_2" + wrong_types: + ai_feedback: + tokens_for_ai: "Check your data types! Numbers shouldn't be in quotes (they'd be strings). Show the correct way to declare each type." + next_section_and_step: "variables:step_2" + missing_labels: + ai_feedback: + tokens_for_ai: "Add labels like 'Age: 25' so it's clear what each value represents. Show how to combine strings and variables in their language." + next_section_and_step: "variables:step_2" + incomplete: + ai_feedback: + tokens_for_ai: "You need all three variables (integer, float, string). Show the complete code." + next_section_and_step: "variables:step_2" + wrong_language: + ai_feedback: + tokens_for_ai: "That's not [their language]! Here's how to declare different types in [their language]: [show code]" + next_section_and_step: "variables:step_2" + limited_effort: + content_blocks: + - "Write complete code with all three variable types and display them with labels!" + next_section_and_step: "variables:step_2" + asking_clarifying_questions: + ai_feedback: + tokens_for_ai: "Answer their question about data types or string formatting in their language." + counts_as_attempt: false + next_section_and_step: "variables:step_2" + off_topic: + content_blocks: + - "Create three variables of different types (integer, float, string) and display them." + next_section_and_step: "variables:step_2" + + - section_id: "control_flow" + title: "Control Flow: Making Decisions" + steps: + - step_id: "step_1" + title: "If Statements" + content_blocks: + - "## Conditional Logic πŸ”€" + - "Programs need to make decisions based on conditions." + - "" + - "**If statements** let your code take different paths:" + - "- IF condition is true, do this" + - "- ELSE, do that" + - "" + - "This is how programs respond to different situations!" + question: "Write a program that: creates a variable for age, then uses an if/else statement to display 'Adult' if age is 18 or older, or 'Minor' if younger. Test with age = 20." + tokens_for_ai: | + Check their if/else code in their chosen language. + + Should have: + - Age variable (set to 20 or any value) + - If statement checking if age >= 18 + - Displays "Adult" if true + - Else displays "Minor" + - Uses stdout for output + + Categorize as: + - correct: Valid if/else in their language + - close: Right logic, minor syntax issues + - wrong_comparison: Used wrong operator (==, <, etc.) + - missing_else: Has if but no else + - logic_error: Backwards logic (minor when >= 18) + - wrong_language: Used different language + - limited_effort: Too brief + - asking_clarifying_questions: Needs help + - off_topic: Not attempting + feedback_tokens_for_ai: | + Show if/else syntax for their specific language. + Explain: + - Comparison operators in their language + - How to structure if/else blocks + - Any language-specific syntax (colons, braces, etc.) + buckets: + - correct + - close + - wrong_comparison + - missing_else + - logic_error + - wrong_language + - limited_effort + - asking_clarifying_questions + - off_topic + transitions: + correct: + ai_feedback: + tokens_for_ai: "Perfect if/else statement in [their language]! Explain how conditional logic lets programs make decisions." + metadata_add: + score: "n+3" + concepts_mastered: "n+1" + next_section_and_step: "control_flow:step_2" + close: + ai_feedback: + tokens_for_ai: "Good logic! Fix the minor syntax issue and show the correct version." + metadata_add: + score: "n+2" + next_section_and_step: "control_flow:step_2" + wrong_comparison: + ai_feedback: + tokens_for_ai: "Check your comparison operator! You need 'greater than or equal to 18'. Show the correct operator for their language (>=)." + next_section_and_step: "control_flow:step_1" + missing_else: + ai_feedback: + tokens_for_ai: "You need an else clause for when age < 18. Show the complete if/else structure in their language." + next_section_and_step: "control_flow:step_1" + logic_error: + ai_feedback: + tokens_for_ai: "Your logic is backwards! Age >= 18 should be 'Adult', not 'Minor'. Show the corrected version." + next_section_and_step: "control_flow:step_1" + wrong_language: + ai_feedback: + tokens_for_ai: "That's not [their language] syntax! Here's how if/else works in [their language]: [show code]" + next_section_and_step: "control_flow:step_1" + limited_effort: + content_blocks: + - "Write the complete if/else code to check age and display the appropriate message!" + next_section_and_step: "control_flow:step_1" + asking_clarifying_questions: + ai_feedback: + tokens_for_ai: "Answer their question about if/else statements in their language." + counts_as_attempt: false + next_section_and_step: "control_flow:step_1" + off_topic: + content_blocks: + - "Write an if/else statement to check if age is 18 or older." + next_section_and_step: "control_flow:step_1" + + - step_id: "step_2" + title: "Loops" + content_blocks: + - "## Loops: Repeating Actions πŸ”" + - "Loops let you repeat code multiple times without writing it over and over." + - "" + - "**Common loop types:**" + - "- **For loop:** Repeat a specific number of times" + - "- **While loop:** Repeat as long as a condition is true" + - "" + - "Loops are essential for processing lists, counting, and repetitive tasks." + question: "Write a program using a for loop that displays the numbers 1 through 5 to stdout, each on its own line." + tokens_for_ai: | + Check their for loop code in their chosen language. + + Should: + - Use a for loop (or equivalent iteration construct) + - Display numbers 1, 2, 3, 4, 5 + - Each number on separate line + - Use stdout + + Note: Loop syntax varies WIDELY between languages! + - Python: for i in range(1, 6): print(i) + - JavaScript: for (let i = 1; i <= 5; i++) console.log(i); + - Java: for (int i = 1; i <= 5; i++) System.out.println(i); + - C++: for (int i = 1; i <= 5; i++) std::cout << i << std::endl; + + Categorize as: + - correct: Valid for loop in their language + - close: Right idea, minor syntax issues + - off_by_one: Shows 0-4 or 1-6 instead of 1-5 + - wrong_loop_type: Used while instead of for (acceptable if works) + - missing_output: Loop exists but doesn't display + - wrong_language: Used different language + - limited_effort: Too brief + - asking_clarifying_questions: Needs help + - off_topic: Not attempting + feedback_tokens_for_ai: | + Show for loop syntax for their specific language. + Explain: + - How to initialize loop variable + - How to set the condition + - How to increment + - Language-specific syntax (parentheses, colons, braces, etc.) + + If they used a while loop that works, that's acceptable - mention that for loops + are more common for counting. + buckets: + - correct + - close + - off_by_one + - wrong_loop_type + - missing_output + - wrong_language + - limited_effort + - asking_clarifying_questions + - off_topic + transitions: + correct: + ai_feedback: + tokens_for_ai: "Excellent for loop in [their language]! Explain how loops save you from writing repetitive code." + metadata_add: + score: "n+3" + concepts_mastered: "n+1" + next_section_and_step: "functions:step_1" + close: + ai_feedback: + tokens_for_ai: "Good approach! Fix the syntax issue and show the correct version." + metadata_add: + score: "n+2" + next_section_and_step: "functions:step_1" + off_by_one: + ai_feedback: + tokens_for_ai: "Close! But you're displaying the wrong numbers. Should be 1-5. Show the corrected loop for their language." + next_section_and_step: "control_flow:step_2" + wrong_loop_type: + ai_feedback: + tokens_for_ai: "Your while loop works! But try using a for loop - it's more common for counting. Show the for loop version." + metadata_add: + score: "n+2" + next_section_and_step: "functions:step_1" + missing_output: + ai_feedback: + tokens_for_ai: "You have a loop but it's not displaying anything! Add output inside the loop body." + next_section_and_step: "control_flow:step_2" + wrong_language: + ai_feedback: + tokens_for_ai: "That's not [their language]! Here's the for loop syntax in [their language]: [show code]" + next_section_and_step: "control_flow:step_2" + limited_effort: + content_blocks: + - "Write a complete for loop that displays 1, 2, 3, 4, 5!" + next_section_and_step: "control_flow:step_2" + asking_clarifying_questions: + ai_feedback: + tokens_for_ai: "Answer their question about for loops in their specific language." + counts_as_attempt: false + next_section_and_step: "control_flow:step_2" + off_topic: + content_blocks: + - "Write a for loop that displays numbers 1 through 5." + next_section_and_step: "control_flow:step_2" + + - section_id: "functions" + title: "Functions: Reusable Code" + steps: + - step_id: "step_1" + title: "Creating Functions" + content_blocks: + - "## Functions: Organize Your Code πŸ“¦" + - "Functions let you group code into reusable blocks that you can call by name." + - "" + - "**Benefits of functions:**" + - "- Reusability (write once, use many times)" + - "- Organization (break complex programs into manageable pieces)" + - "- Abstraction (hide implementation details)" + - "" + - "**Functions can:**" + - "- Take inputs (parameters/arguments)" + - "- Perform actions" + - "- Return outputs (return values)" + question: "Write a function called 'greet' that takes a name as a parameter and displays 'Hello, [name]!' to stdout. Then call the function with your own name." + tokens_for_ai: | + Check their function code in their chosen language. + + Should have: + - Function definition/declaration named 'greet' + - Takes one parameter (name) + - Outputs "Hello, [name]!" to stdout + - Function is called with a name + + Function syntax varies greatly: + - Python: def greet(name): \\n print(f"Hello, {name}!") + - JavaScript: function greet(name) { console.log(\`Hello, ${name}!\`); } + - Java: void greet(String name) { System.out.println("Hello, " + name + "!"); } + + Categorize as: + - correct: Valid function definition and call + - close: Right idea, minor syntax issues + - missing_call: Defined function but didn't call it + - missing_parameter: Function doesn't take parameter + - hardcoded_name: Doesn't use parameter, outputs fixed name + - wrong_language: Used different language + - limited_effort: Too brief + - asking_clarifying_questions: Needs help + - off_topic: Not attempting + feedback_tokens_for_ai: | + For their language, explain: + - How to define a function + - How to specify parameters + - How to use parameters inside function + - How to call the function + - Any language-specific syntax (def, function keyword, return types, etc.) + buckets: + - correct + - close + - missing_call + - missing_parameter + - hardcoded_name + - wrong_language + - limited_effort + - asking_clarifying_questions + - off_topic + transitions: + correct: + ai_feedback: + tokens_for_ai: "Perfect function in [their language]! You've defined it, used a parameter, and called it. Explain how functions make code reusable." + metadata_add: + score: "n+3" + concepts_mastered: "n+1" + next_section_and_step: "functions:step_2" + close: + ai_feedback: + tokens_for_ai: "Good function structure! Fix the syntax issue and show the corrected version." + metadata_add: + score: "n+2" + next_section_and_step: "functions:step_2" + missing_call: + ai_feedback: + tokens_for_ai: "You defined the function but didn't call it! Show how to call the function with a name." + next_section_and_step: "functions:step_1" + missing_parameter: + ai_feedback: + tokens_for_ai: "Your function needs to accept a name parameter! Show how to add parameters in their language." + next_section_and_step: "functions:step_1" + hardcoded_name: + ai_feedback: + tokens_for_ai: "You need to USE the parameter inside the function, not hardcode a name. Show how to use the parameter." + next_section_and_step: "functions:step_1" + wrong_language: + ai_feedback: + tokens_for_ai: "That's not [their language]! Here's how to define and call functions in [their language]: [show code]" + next_section_and_step: "functions:step_1" + limited_effort: + content_blocks: + - "Write a complete function that takes a name parameter and displays a greeting!" + next_section_and_step: "functions:step_1" + asking_clarifying_questions: + ai_feedback: + tokens_for_ai: "Answer their question about functions in their specific language." + counts_as_attempt: false + next_section_and_step: "functions:step_1" + off_topic: + content_blocks: + - "Create a function that takes a name and displays a greeting." + next_section_and_step: "functions:step_1" + + - step_id: "step_2" + title: "Return Values" + content_blocks: + - "## Functions That Return Values" + - "So far, our function just displays output. Functions can also RETURN values that can be used elsewhere." + - "" + - "**Return values let you:**" + - "- Calculate something and send the result back" + - "- Use the result in other calculations" + - "- Store the result in a variable" + question: "Write a function called 'add' that takes two numbers as parameters, returns their sum, and then call it with 5 and 3 and display the result to stdout." + tokens_for_ai: | + Check their function with return value. + + Should have: + - Function named 'add' + - Takes two parameters (numbers) + - Returns the sum + - Function is called with 5 and 3 + - Result is displayed to stdout + + Categorize as: + - correct: Valid function with return, called correctly, result displayed + - close: Right idea, minor issues + - displays_instead_of_return: Function outputs instead of returning + - missing_display: Returns but doesn't display result + - missing_call: Defined but didn't call + - wrong_language: Used different language + - limited_effort: Too brief + - asking_clarifying_questions: Needs help + - off_topic: Not attempting + feedback_tokens_for_ai: | + For their language, explain: + - How to return a value (return keyword or equivalent) + - Difference between returning and displaying + - How to capture and use returned value + - How to display the result + + Some languages (like early BASIC) don't have explicit return statements - be flexible! + buckets: + - correct + - close + - displays_instead_of_return + - missing_display + - missing_call + - wrong_language + - limited_effort + - asking_clarifying_questions + - off_topic + transitions: + correct: + ai_feedback: + tokens_for_ai: "Excellent! You've mastered functions with return values in [their language]. Explain the difference between returning and displaying." + metadata_add: + score: "n+3" + concepts_mastered: "n+1" + next_section_and_step: "conclusion:step_1" + close: + ai_feedback: + tokens_for_ai: "Good work! Fix the minor issue and show the correct version." + metadata_add: + score: "n+2" + next_section_and_step: "conclusion:step_1" + displays_instead_of_return: + ai_feedback: + tokens_for_ai: "Your function displays the sum instead of returning it. Show how to use return to send the value back." + next_section_and_step: "functions:step_2" + missing_display: + ai_feedback: + tokens_for_ai: "You're returning the value but not displaying it! Show how to capture the returned value and display it." + next_section_and_step: "functions:step_2" + missing_call: + ai_feedback: + tokens_for_ai: "You defined the function but didn't call it with 5 and 3! Show how to call it and display the result." + next_section_and_step: "functions:step_2" + wrong_language: + ai_feedback: + tokens_for_ai: "That's not [their language]! Here's how return values work in [their language]: [show code]" + next_section_and_step: "functions:step_2" + limited_effort: + content_blocks: + - "Write a complete function that returns a sum, call it, and display the result!" + next_section_and_step: "functions:step_2" + asking_clarifying_questions: + ai_feedback: + tokens_for_ai: "Answer their question about return values in their language." + counts_as_attempt: false + next_section_and_step: "functions:step_2" + off_topic: + content_blocks: + - "Create a function that returns the sum of two numbers." + next_section_and_step: "functions:step_2" + + - section_id: "conclusion" + title: "Congratulations, Programmer!" + steps: + - step_id: "step_1" + title: "Your Programming Journey" + content_blocks: + - "## Congratulations! You've Learned to Program! πŸŽ‰" + - "You've mastered fundamental programming concepts that work in ANY language." + - "" + - "**Core concepts you've learned:**" + - "βœ“ **Output (stdout)** - Displaying information to users" + - "βœ“ **Variables** - Storing and managing data" + - "βœ“ **Data Types** - Different kinds of information (strings, numbers, booleans)" + - "βœ“ **Conditional Logic** - Making decisions with if/else" + - "βœ“ **Loops** - Repeating actions efficiently" + - "βœ“ **Functions** - Organizing code into reusable blocks" + - "βœ“ **Return Values** - Functions that calculate and return results" + - "" + - "**These concepts are universal!**" + - "Whether you continue with your chosen language or learn another one, these fundamentals remain the same." + - "" + - "**Next steps in your programming journey:**" + - "- Practice by building small projects" + - "- Learn about arrays/lists and dictionaries/maps" + - "- Explore object-oriented programming (classes and objects)" + - "- Study algorithms and data structures" + - "- Build something that interests you!" + - "" + - "**Remember:** The best way to learn programming is by writing code and solving problems." + question: "What would you like to build with your new programming skills? What kind of program interests you?" + tokens_for_ai: | + This is a reflection question. + + Based on their answer, provide encouragement and suggestions for their specific language. + Suggest projects appropriate for beginners in their chosen language. + + Categorize as: + - specific_project: Has a specific project idea + - general_interest: General area of interest (games, websites, data, etc.) + - exploring: Still exploring what to build + - limited_effort: Very brief + - off_topic: Unrelated + feedback_tokens_for_ai: | + Provide enthusiastic, personalized feedback! + + Reference their specific programming language. + Suggest beginner-friendly projects for their language and interests. + Encourage them to start small and build up. + Remind them that the programming community is welcoming and helpful. + + Celebrate their completion of the fundamentals! + buckets: + - specific_project + - general_interest + - exploring + - limited_effort + - off_topic + transitions: + specific_project: + ai_feedback: + tokens_for_ai: "Great project idea! For [their language], suggest how they might approach that project. Recommend beginner-friendly libraries or frameworks if applicable. Encourage them to start with a simple version." + metadata_add: + activity_completed: "true" + next_section_and_step: "conclusion:step_1" + general_interest: + ai_feedback: + tokens_for_ai: "Great area of interest! For [interest area] in [their language], suggest 2-3 beginner projects they could start with. Provide encouragement and resources." + metadata_add: + activity_completed: "true" + next_section_and_step: "conclusion:step_1" + exploring: + ai_feedback: + tokens_for_ai: "Exploration is great! For [their language], suggest 3-4 different types of beginner projects they could try (web, automation, data analysis, games, etc.) to discover what they enjoy." + metadata_add: + activity_completed: "true" + next_section_and_step: "conclusion:step_1" + limited_effort: + ai_feedback: + tokens_for_ai: "Congratulate them on completing programming fundamentals in [their language]! Encourage them to build something, even if it's small." + metadata_add: + activity_completed: "true" + next_section_and_step: "conclusion:step_1" + off_topic: + content_blocks: + - "Think about what interests you! What kind of program would you like to create with your new skills?" + next_section_and_step: "conclusion:step_1"