Fix pedagogical issue: Don't show code examples before asking students to write code
PROBLEM: activity37 was showing complete code examples in Python, JavaScript, Java, and C++ BEFORE asking students to write code themselves. This turns learning into copy-paste practice. FIXED: - Hello World section: Removed multi-language code examples from content_blocks - Variables section: Removed multi-language code examples from content_blocks - Now explains CONCEPTS (what, why, how languages differ) without showing syntax - Code examples remain in AI feedback for when students struggle or ask for help PEDAGOGICAL APPROACH: 1. Explain the concept (stdout, variables, etc.) 2. Explain language differences conceptually (dynamic vs static typing) 3. Ask students to TRY writing code in THEIR language 4. Provide language-specific examples in AI FEEDBACK if they struggle This way students actually have to THINK and LEARN, not just copy. UPDATED CLAUDE.md: - Added new pitfall: "Showing answers before questions" - Guidance: Explain concepts in content_blocks, provide code examples in ai_feedback Still validates perfectly with zero errors/warnings.
This commit is contained in:
parent
10d0ec27a2
commit
e4ab13ae78
2 changed files with 26 additions and 45 deletions
|
|
@ -694,6 +694,7 @@ feedback_tokens_for_ai: |
|
|||
| **Generic feedback** | "Good job!" isn't helpful | Reference specific parts of their answer |
|
||||
| **Dead-end paths** | User stuck, can't progress | Always provide a way forward (even if it's restarting) |
|
||||
| **Ignoring the rubric** | Global `tokens_for_ai_rubric` tells AI how to evaluate | Define it for consistency across steps |
|
||||
| **Showing answers before questions** | Users copy-paste instead of learning | Explain CONCEPTS in content_blocks, provide CODE EXAMPLES only in ai_feedback |
|
||||
|
||||
### Activity Development Workflow
|
||||
|
||||
|
|
|
|||
|
|
@ -174,30 +174,20 @@ sections:
|
|||
- ''
|
||||
- 'This is why understanding stdout matters - it''s not just "printing to the screen," it''s sending data to a stream that can go anywhere!'
|
||||
- ''
|
||||
- '### How Different Languages Display Output'
|
||||
- 'Every programming language has its own syntax, but they all accomplish the same goal. Here are examples across different languages:'
|
||||
- '### How Languages Display Output'
|
||||
- ''
|
||||
- '**Python:** Uses `print()` function'
|
||||
- '```python'
|
||||
- 'print("Hello, World!")'
|
||||
- '```'
|
||||
- 'Every programming language has its own syntax for displaying output to stdout:'
|
||||
- '- Some use a `print()` function'
|
||||
- '- Some use `console.log()`'
|
||||
- '- Some use methods like `System.out.println()`'
|
||||
- '- Some use stream operators like `<<`'
|
||||
- ''
|
||||
- '**JavaScript:** Uses `console.log()` function'
|
||||
- '```javascript'
|
||||
- 'console.log("Hello, World!");'
|
||||
- '```'
|
||||
- 'Despite different syntax, they all accomplish the same goal: sending text to stdout.'
|
||||
- ''
|
||||
- '**Java:** Uses `System.out.println()` method'
|
||||
- '```java'
|
||||
- 'System.out.println("Hello, World!");'
|
||||
- '```'
|
||||
- '**Important Concept:**'
|
||||
- 'Text in quotes (like `"Hello, World!"`) is called a **string** - it represents text data that you want to display.'
|
||||
- ''
|
||||
- '**C++:** Uses `std::cout` stream'
|
||||
- '```cpp'
|
||||
- 'std::cout << "Hello, World!" << std::endl;'
|
||||
- '```'
|
||||
- ''
|
||||
- '**Key Concept:** Notice that while the syntax differs, each language has a way to send text to stdout. The quotes around "Hello, World!" indicate it''s a **string** (text data).'
|
||||
- 'Now you''ll figure out how YOUR chosen language does it!'
|
||||
- ''
|
||||
- '### Now It''s Your Turn!'
|
||||
question: How do you display 'Hello, World!' to stdout in your chosen language? Write the complete code.
|
||||
|
|
@ -464,36 +454,26 @@ sections:
|
|||
- '**Good names:** `user_name`, `total_score`, `isActive`, `playerHealth`'
|
||||
- '**Bad names:** `x`, `temp`, `asdf`, `thing1`'
|
||||
- ''
|
||||
- '### How to Create Variables in Different Languages'
|
||||
- '### How Languages Handle Variables'
|
||||
- ''
|
||||
- '**Python (dynamically typed):**'
|
||||
- '```python'
|
||||
- 'name = "Alice" # Create variable and assign value'
|
||||
- 'print(name) # Display the variable''s value'
|
||||
- '```'
|
||||
- 'Every programming language has its own syntax for creating variables, but they all follow the same basic pattern:'
|
||||
- '1. Give the variable a name'
|
||||
- '2. Use an assignment operator (usually `=`)'
|
||||
- '3. Provide a value'
|
||||
- ''
|
||||
- '**JavaScript (dynamically typed):**'
|
||||
- '```javascript'
|
||||
- 'let name = "Alice"; // Declare with let'
|
||||
- 'console.log(name); // Display'
|
||||
- '```'
|
||||
- '**Important Language Difference:**'
|
||||
- ''
|
||||
- '**Java (statically typed):**'
|
||||
- '```java'
|
||||
- 'String name = "Alice"; // Must specify type'
|
||||
- 'System.out.println(name); // Display'
|
||||
- '```'
|
||||
- '**Dynamically typed languages** (like Python, JavaScript, Ruby):'
|
||||
- '- You just name the variable and assign a value'
|
||||
- '- The language automatically figures out the type'
|
||||
- '- Simpler syntax, more flexible'
|
||||
- ''
|
||||
- '**C++ (statically typed):**'
|
||||
- '```cpp'
|
||||
- 'std::string name = "Alice"; // Must specify type'
|
||||
- 'std::cout << name << std::endl; // Display'
|
||||
- '```'
|
||||
- '**Statically typed languages** (like Java, C++, C#, Go):'
|
||||
- '- You must specify the data type when creating a variable'
|
||||
- '- Example: declare that `name` will store a String'
|
||||
- '- More verbose, but catches type errors early'
|
||||
- ''
|
||||
- '### Key Differences'
|
||||
- '**Dynamically typed languages** (Python, JavaScript, Ruby): You don''t declare the type. The language figures it out automatically.'
|
||||
- ''
|
||||
- '**Statically typed languages** (Java, C++, C#, Go): You must specify the type (String, int, etc.) when creating a variable.'
|
||||
- 'You''ll use YOUR language''s specific syntax to create variables!'
|
||||
- ''
|
||||
- '### The Assignment Operator'
|
||||
- 'The `=` sign is the **assignment operator**. It means "assign the value on the right to the variable on the left."'
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue