diff --git a/CLAUDE.md b/CLAUDE.md index 2e313f3..ee65fb4 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -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 diff --git a/research/activity37-programming-languages.yaml b/research/activity37-programming-languages.yaml index 025ef21..a5fe49e 100644 --- a/research/activity37-programming-languages.yaml +++ b/research/activity37-programming-languages.yaml @@ -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."'