|
1 | 1 | # Algorithms & Programming
|
2 | 2 |
|
3 |
| -## Unit 3: Algorithms and Programming |
| 3 | + |
| 4 | +<details><summary>Big Ideas - Click Here</summary> |
4 | 5 |
|
5 | 6 | **Big Ideas Covered:**
|
6 | 7 |
|
|
127 | 128 | * **Block-based to text-based translation (e.g., Scratch to Python)**
|
128 | 129 | * **Write and refine a simple calculator or game logic**
|
129 | 130 | * **Pseudocode practice and flowcharts**
|
| 131 | + |
| 132 | +</details> |
| 133 | + |
| 134 | +**AP CSP: Algorithms and Programming Project Packet** |
| 135 | + |
| 136 | +Each project includes meaningful challenges in problem-solving, design, data abstraction, and algorithmic thinking, and supports multiple CSP standards. |
| 137 | + |
| 138 | +--- |
| 139 | + |
| 140 | +<details> <summary>Project 1: Data Visualization Challenge</summary> |
| 141 | + |
| 142 | +**College Board Learning Objectives:** |
| 143 | + |
| 144 | +* DAT-2.D: Describe the purpose of a computational artifact. |
| 145 | +* DAT-2.E: Create a computational artifact using data. |
| 146 | +* AAP-2.J: Create programs that use libraries or APIs. |
| 147 | + |
| 148 | +**Summary:** |
| 149 | +Students will analyze a real-world dataset (e.g., climate, sports, health) and build a program that visualizes the data through graphs or interactive charts. They must clean the data, apply algorithms to extract meaning, and generate visual output. |
| 150 | + |
| 151 | +**Deliverables:** |
| 152 | + |
| 153 | +* Python or JavaScript program with visualization |
| 154 | +* Annotated code with explanations |
| 155 | +* 1-page summary of insights from the data |
| 156 | + |
| 157 | +**Assessment Rubric:** |
| 158 | + |
| 159 | +Project 1: Data Visualization Challenge |
| 160 | + |
| 161 | +**College Board Learning Objectives:** |
| 162 | + |
| 163 | +* DAT-2.D: Describe the purpose of a computational artifact. |
| 164 | +* DAT-2.E: Create a computational artifact using data. |
| 165 | +* AAP-2.J: Create programs that use libraries or APIs. |
| 166 | + |
| 167 | +**Summary:** |
| 168 | +Students will analyze a real-world dataset (e.g., climate, sports, health) and build a program that visualizes the data through graphs or interactive charts. They must clean the data, apply algorithms to extract meaning, and generate visual output. |
| 169 | + |
| 170 | +**Deliverables:** |
| 171 | + |
| 172 | +* Python or JavaScript program with visualization |
| 173 | +* Annotated code with explanations |
| 174 | +* 1-page summary of insights from the data |
| 175 | + |
| 176 | +**Assessment Rubric:** |
| 177 | + |
| 178 | +| Criteria | 4 - Excellent | 3 - Proficient | 2 - Developing | 1 - Beginning | |
| 179 | +| -------------------------- | -------------------------------------------------------------- | -------------------------------------- | --------------------------------- | --------------------------------------- | |
| 180 | +| Data Processing & Accuracy | Data is cleaned, processed, and represented with high accuracy | Data mostly processed correctly | Some data processed, minor errors | Major issues or missing data processing | |
| 181 | +| Program Functionality | Fully functional and interactive | Mostly functional, minor bugs | Partially functional | Non-functional or incomplete | |
| 182 | +| Algorithm Use | Well-structured and efficient algorithms | Logical and mostly correct | Some inefficiency or errors | Poor or no algorithmic structure | |
| 183 | +| Visualization Clarity | Highly clear, informative, and visually appealing | Generally clear and well-organized | Some visual confusion | Unclear or poorly designed | |
| 184 | +| Communication & Creativity | Excellent explanation and innovative presentation | Clear explanation with some creativity | Basic explanation | Poorly explained or lacking originality | |
| 185 | + |
| 186 | +--- |
| 187 | + |
| 188 | +</details> |
| 189 | + |
| 190 | +<details><summary>Project 2: Custom Algorithm Design</summary> |
| 191 | + |
| 192 | +**College Board Learning Objectives:** |
| 193 | + |
| 194 | +* AAP-2.C: Develop an algorithm. |
| 195 | +* AAP-2.G: Express an algorithm using sequencing, selection, and iteration. |
| 196 | +* AAP-2.K: Evaluate algorithms. |
| 197 | + |
| 198 | +**Summary:** |
| 199 | +Students will identify a real-world or classroom problem and design a custom algorithm to solve it. The algorithm should include clear use of control structures and be implemented in code. |
| 200 | + |
| 201 | +**Deliverables:** |
| 202 | + |
| 203 | +* Problem description |
| 204 | +* Flowchart or pseudocode |
| 205 | +* Working program with documentation |
| 206 | +* Analysis of algorithm efficiency (qualitative) |
| 207 | + |
| 208 | +**Assessment Rubric:** |
| 209 | + |
| 210 | +Project 2: Custom Algorithm Design |
| 211 | + |
| 212 | +**College Board Learning Objectives:** |
| 213 | + |
| 214 | +* AAP-2.C: Develop an algorithm. |
| 215 | +* AAP-2.G: Express an algorithm using sequencing, selection, and iteration. |
| 216 | +* AAP-2.K: Evaluate algorithms. |
| 217 | + |
| 218 | +**Summary:** |
| 219 | +Students will identify a real-world or classroom problem and design a custom algorithm to solve it. The algorithm should include clear use of control structures and be implemented in code. |
| 220 | + |
| 221 | +**Deliverables:** |
| 222 | + |
| 223 | +* Problem description |
| 224 | +* Flowchart or pseudocode |
| 225 | +* Working program with documentation |
| 226 | +* Analysis of algorithm efficiency (qualitative) |
| 227 | + |
| 228 | +**Assessment Rubric:** |
| 229 | + |
| 230 | +| Criteria | 4 - Excellent | 3 - Proficient | 2 - Developing | 1 - Beginning | |
| 231 | +| --------------------- | ------------------------------------------ | ------------------------------------------- | -------------------- | ---------------------------------- | |
| 232 | +| Problem Definition | Clearly articulated and meaningful | Clear and solvable | Vague or simplistic | Unclear or undeveloped | |
| 233 | +| Algorithm Design | Innovative, efficient, and well-structured | Logical with appropriate control structures | Some logical flaws | Poor structure or missing elements | |
| 234 | +| Code Implementation | Clean, correct, and complete | Mostly correct with some issues | Partially functional | Incomplete or not working | |
| 235 | +| Algorithm Explanation | Insightful and clearly communicates logic | Reasonably clear explanation | Limited clarity | Missing or incorrect explanation | |
| 236 | + |
| 237 | +--- |
| 238 | +</details> |
| 239 | + |
| 240 | + |
| 241 | +Project 3: Text-Based Game Development |
| 242 | + |
| 243 | +**College Board Learning Objectives:** |
| 244 | + |
| 245 | +* AAP-2.I: Use procedures to organize code. |
| 246 | +* AAP-2.M: Develop programs that use lists. |
| 247 | +* AAP-2.N: Use procedures that operate on data in lists. |
| 248 | + |
| 249 | +**Summary:** |
| 250 | +Students will design and build a text-based adventure game using procedures and data structures. They will implement lists, control flow, and functions to support reusable code and dynamic behavior. |
| 251 | + |
| 252 | +**Deliverables:** |
| 253 | + |
| 254 | +* Fully functional game (e.g., Python, Java) |
| 255 | +* Code with at least two custom procedures and one list-based mechanic |
| 256 | +* Game map or flow diagram |
| 257 | + |
| 258 | +**Assessment Rubric:** |
| 259 | + |
| 260 | +Project 3: Text-Based Game Development |
| 261 | + |
| 262 | +**College Board Learning Objectives:** |
| 263 | + |
| 264 | +* AAP-2.I: Use procedures to organize code. |
| 265 | +* AAP-2.M: Develop programs that use lists. |
| 266 | +* AAP-2.N: Use procedures that operate on data in lists. |
| 267 | + |
| 268 | +**Summary:** |
| 269 | +Students will design and build a text-based adventure game using procedures and data structures. They will implement lists, control flow, and functions to support reusable code and dynamic behavior. |
| 270 | + |
| 271 | +**Deliverables:** |
| 272 | + |
| 273 | +* Fully functional game (e.g., Python, Java) |
| 274 | +* Code with at least two custom procedures and one list-based mechanic |
| 275 | +* Game map or flow diagram |
| 276 | + |
| 277 | +**Assessment Rubric:** |
| 278 | + |
| 279 | +| Criteria | 4 - Excellent | 3 - Proficient | 2 - Developing | 1 - Beginning | |
| 280 | +| ------------------------ | ----------------------------------------------------------- | -------------------------------- | --------------------------- | -------------------------------------- | |
| 281 | +| Game Logic & Playability | Highly engaging and bug-free | Playable with minor bugs | Playable but limited | Unplayable or incomplete | |
| 282 | +| Procedures & Lists | Uses multiple reusable procedures and well-integrated lists | Appropriate use of both elements | Limited or inconsistent use | Missing procedures or list integration | |
| 283 | +| Code Structure | Well-organized and readable | Mostly clear organization | Some disorganization | Hard to follow or messy | |
| 284 | +| Creativity & Innovation | Highly original and engaging concept | Some creativity | Basic or conventional | Lacking originality | |
| 285 | + |
| 286 | +--- |
| 287 | + |
| 288 | + |
| 289 | +Project 4: Debugging & Code Review Simulation |
| 290 | + |
| 291 | +**College Board Learning Objectives:** |
| 292 | + |
| 293 | +* AAP-1.C: Identify and correct errors in programs. |
| 294 | +* AAP-2.F: Evaluate expressions that use arithmetic operators. |
| 295 | +* AAP-2.H: Determine the result of program execution. |
| 296 | + |
| 297 | +**Summary:** |
| 298 | +Students will be given a broken or inefficient program. Their job is to debug it, improve it, and write a peer review report explaining how and why they made their changes. |
| 299 | + |
| 300 | +**Deliverables:** |
| 301 | + |
| 302 | +* Corrected source code |
| 303 | +* Side-by-side comparison with the original |
| 304 | +* Peer review report (1 page) |
| 305 | + |
| 306 | +**Assessment Rubric:** |
| 307 | + |
| 308 | +Project 4: Debugging & Code Review Simulation |
| 309 | + |
| 310 | +**College Board Learning Objectives:** |
| 311 | + |
| 312 | +* AAP-1.C: Identify and correct errors in programs. |
| 313 | +* AAP-2.F: Evaluate expressions that use arithmetic operators. |
| 314 | +* AAP-2.H: Determine the result of program execution. |
| 315 | + |
| 316 | +**Summary:** |
| 317 | +Students will be given a broken or inefficient program. Their job is to debug it, improve it, and write a peer review report explaining how and why they made their changes. |
| 318 | + |
| 319 | +**Deliverables:** |
| 320 | + |
| 321 | +* Corrected source code |
| 322 | +* Side-by-side comparison with the original |
| 323 | +* Peer review report (1 page) |
| 324 | + |
| 325 | +**Assessment Rubric:** |
| 326 | + |
| 327 | +| Criteria | 4 - Excellent | 3 - Proficient | 2 - Developing | 1 - Beginning | |
| 328 | +| ------------------ | ------------------------------------------- | --------------------------------------- | ------------------------------------- | -------------------------------- | |
| 329 | +| Bug Identification | All bugs correctly identified and explained | Most bugs identified | Some bugs found | Few or no bugs identified | |
| 330 | +| Debugging Quality | Efficient and optimal fixes applied | Functional fixes with some inefficiency | Fixes with side effects or redundancy | Buggy or no fixes applied | |
| 331 | +| Code Comparison | Clear and complete before/after comparison | Some comparison shown | Basic or unclear comparison | No clear comparison | |
| 332 | +| Review Explanation | Detailed reasoning and reflection | Some reasoning included | Minimal or vague explanation | Missing or incorrect explanation | |
| 333 | + |
| 334 | +--- |
| 335 | + |
| 336 | +</details> |
| 337 | + |
| 338 | + |
| 339 | +<details><summary>Project 5: Algorithm Museum (Explainer Showcase)</summary> |
| 340 | + |
| 341 | +**College Board Learning Objectives:** |
| 342 | + |
| 343 | +* AAP-2.L: Explain how algorithms reflect different approaches to solving problems. |
| 344 | +* CRD-2.C: Identify inputs and outputs of a program. |
| 345 | +* AAP-2.K: Evaluate algorithms. |
| 346 | + |
| 347 | +**Summary:** |
| 348 | +Students select a classic algorithm (e.g., sorting, searching, pathfinding) and create an interactive or visual explainer. They must describe inputs/outputs, explain its function, and compare it with an alternative. |
| 349 | + |
| 350 | +**Deliverables:** |
| 351 | + |
| 352 | +* Explainer artifact (video, animation, poster, slideshow, etc.) |
| 353 | +* Input/output examples |
| 354 | +* Comparative write-up |
| 355 | + |
| 356 | +**Assessment Rubric:** |
| 357 | + |
| 358 | +Project 5: Algorithm Museum (Explainer Showcase) |
| 359 | + |
| 360 | +**College Board Learning Objectives:** |
| 361 | + |
| 362 | +* AAP-2.L: Explain how algorithms reflect different approaches to solving problems. |
| 363 | +* CRD-2.C: Identify inputs and outputs of a program. |
| 364 | +* AAP-2.K: Evaluate algorithms. |
| 365 | + |
| 366 | +**Summary:** |
| 367 | +Students select a classic algorithm (e.g., sorting, searching, pathfinding) and create an interactive or visual explainer. They must describe inputs/outputs, explain its function, and compare it with an alternative. |
| 368 | + |
| 369 | +**Deliverables:** |
| 370 | + |
| 371 | +* Explainer artifact (video, animation, poster, slideshow, etc.) |
| 372 | +* Input/output examples |
| 373 | +* Comparative write-up |
| 374 | + |
| 375 | +**Assessment Rubric:** |
| 376 | + |
| 377 | +| Criteria | 4 - Excellent | 3 - Proficient | 2 - Developing | 1 - Beginning | |
| 378 | +| ----------------------- | ----------------------------------------------- | ------------------------ | ------------------------------ | ------------------------------------- | |
| 379 | +| Algorithm Explanation | Clear, deep explanation with visuals/examples | Mostly clear explanation | Some confusion or gaps | Inaccurate or unclear explanation | |
| 380 | +| Inputs & Outputs | Well-explained with accurate examples | Mostly correct | Minor errors or omissions | Missing or incorrect examples | |
| 381 | +| Comparison & Evaluation | Thoughtful comparison of two or more approaches | Adequate comparison | Limited insight or explanation | No meaningful comparison | |
| 382 | +| Presentation Quality | Polished, creative, and informative | Clear and informative | Somewhat unclear | Hard to understand or poorly executed | |
| 383 | + |
| 384 | +--- |
| 385 | + |
| 386 | +</details> |
0 commit comments