Project 1: Data Explorer - Rubric
This rubric is used to evaluate Project 1: Data Explorer.
Correctness (40 points)
Does the program produce correct results?
| Criterion | Points | Description |
|---|---|---|
| Average calculation | 10 | Correctly calculates and displays the average temperature |
| Highest/lowest finding | 10 | Correctly identifies the highest and lowest temperatures AND their days |
| Day classification | 10 | Correctly classifies each day as Hot (>75), Mild (70-75), or Cool (<70) |
| Category counting | 10 | Correctly counts hot days and cool days |
Deductions
- -5 points for off-by-one errors
- -3 points for minor calculation errors
- -2 points for rounding issues
Code Quality (30 points)
Is the code well-structured and readable?
| Criterion | Points | Description |
|---|---|---|
| Loop usage | 10 | Uses loops effectively to process data (not 7 separate if-statements) |
| Variable names | 10 | Uses meaningful, descriptive variable names |
| Code organization | 10 | Code is logically organized and easy to follow |
Examples
Good variable names (full credit):
total_temperature = 0
highest_temp = temperatures[0]
hot_day_count = 0
Poor variable names (reduced credit):
t = 0
h = temperatures[0]
x = 0
Deductions
- -5 points for hardcoded repetition instead of loops
- -3 points for confusing variable names
- -3 points for overly complex logic when simpler approach exists
Output Format (20 points)
Is the output clear and well-formatted?
| Criterion | Points | Description |
|---|---|---|
| Daily breakdown | 8 | Shows each day with temperature and classification |
| Summary section | 8 | Shows all required summary statistics |
| Readability | 4 | Output is easy to read with appropriate labels and spacing |
Expected Output Structure
=== Weekly Weather Report ===
Daily Breakdown:
[Day]: /demos/cs1-path/projects/[Temp]%C2%B0F ([Classification])
...
Summary:
- Average temperature: [X.X]°F
- Highest: [X]°F on [Day]
- Lowest: [X]°F on [Day]
- Hot days (>75°F): [N]
- Cool days (<70°F): [N]
Deductions
- -4 points for missing section headers
- -2 points for missing degree symbols or units
- -2 points for poor spacing/alignment
Documentation (10 points)
Is the code documented?
| Criterion | Points | Description |
|---|---|---|
| Header comment | 3 | Includes name, date, and project description at top |
| Inline comments | 7 | Key sections of code have explanatory comments |
Example Header
# Project 1: Data Explorer
# Name: [Student Name]
# Date: [Date]
# Description: Analyzes weekly weather data and generates a report
Deductions
- -3 points for no header comment
- -2 points for no inline comments
- -1 point for comments that don't explain anything useful
Bonus Opportunities (+5 max)
- +2 points: Handle edge cases gracefully (empty data, all same temperature)
- +2 points: Add additional interesting statistics (median, temperature range, etc.)
- +1 point: Exceptionally clean and elegant code
Common Issues to Avoid
- Hardcoding instead of looping: Don't write 7 separate print statements
- Integer division: Make sure average is a decimal, not rounded to integer
- Off-by-one in classification: Check boundary conditions (is 75 hot or mild?)
- Missing the day name: Finding 80°F is not enough—also track WHEN it occurred
- No comments: Even simple code benefits from a brief explanation
Feedback Format
When providing feedback, reference this rubric by section:
Correctness: XX/40
- Average: [feedback]
- Highest/lowest: [feedback]
- Classification: [feedback]
- Counting: [feedback]
Code Quality: XX/30
- [specific feedback]
Output Format: XX/20
- [specific feedback]
Documentation: XX/10
- [specific feedback]
Total: XX/100
Strengths:
- [what worked well]
Areas for Improvement:
- [specific suggestions]