Labs
Lab Slides: Jaclyn’s Lab (801L)  • Elise’s Lab (802L)
Labs are an opportunity for you to apply what you’ve learned in lecture in code (and other forms). All labs have a conceptual and a coding component, unless otherwise specified. All lab assignments must be uploaded and autograded using Gradescope; the Gradescope link can be found on the worksheet. The Practice Midterm and Practice Postterm will count towards your lab grade. You will need to take both the coding and non-coding portions of these practice exams to receive credit. Credit for the practice exams is based on completion only, not the score you received on the practice exam.
We have two lab sections this semester — 801L (SOCS 110, Jaclyn) meets Monday/Wednesday, and 802L (WHLR 212, Elise) meets Tuesday/Thursday. For 801L, Monday lab assignments are due the following Wednesday at 23:59, and Wednesday lab assignments are due the following Monday at 23:59. For 802L, Tuesday lab assignments are due on Thursday at 23:59, and Thursday lab assignments are due the following Tuesday at 23:59. All labs that do not explicitly say “optional” on the schedule page will be graded, with the exception of Lab 1. Lab 1 is not optional, but there is no submission or credit. Attendance is not required for optional labs. The graded labs include three practice exam labs (Practice Midterm (no code), Practice Midterm (fractal), and Practice Postterm), which are graded based on completion only. Your lowest two lab assignment scores will be dropped.
The worksheets linked below are high-level overviews and can be seen as a set of instructions for lab. Each worksheet lists all the required blocks, functions, or tasks for a particular lab. The worksheets also contain some of the test cases used to grade the lab.
The workbook, which differs from the worksheet, is used as a step-by-step guide to complete each lab. Lab worksheets will be released before the M/W lab.
| Labs | Date |
|---|---|
| Lab 1: Welcome to Snap! | Wed 8/26 & Thu 8/27 |
| Lab 2: Build Your Own Blocks | Mon 8/31 & Tue 9/1 |
| Lab 3: Conditionals, Reporters, & Testing | Wed 9/2 & Thu 9/3 |
| Project 1 Party (Optional) | Wed 9/9 & Thu 9/10 |
| Lab 4: Iteration | Mon 9/14 & Tue 9/15 |
| Lab 5: Lists & HOFs | Wed 9/16 & Thu 9/17 |
| Lab 6: Functions as Data, HOFs | Mon 9/21 & Tue 9/22 |
| Catch-up Session (Optional) | Wed 9/23 & Thu 9/24 |
| Lab 7: Algorithms | Mon 9/28 & Tue 9/29 |
| Lab 8: Testing + 2048 | Wed 9/30 & Thu 10/1 |
| Lab 9: Boards | Mon 10/5 & Tue 10/6 |
| Lab 10: Trees & Fractals | Wed 10/7 & Thu 10/8 |
| Lab 11: Recursive Reporters | Mon 10/12 & Tue 10/13 |
| Lab 12: Algorithmic Complexity (Conceptual Only) | Wed 10/14 & Thu 10/15 |
| Practice Midterm (no code) | Mon 10/19 & Tue 10/20 |
| Practice Midterm (fractal) | Wed 10/21 & Thu 10/22 |
| Lab 13: Concurrency (Conceptual Only) | Mon 10/26 & Tue 10/27 |
| Lab 14: OOP in Snap! | Wed 10/28 & Thu 10/29 |
| Lab 15: Welcome to Python | Mon 11/2 & Tue 11/3 |
| Lab 16: Lists and Mutability | Wed 11/4 & Thu 11/5 |
| Lab 17: Data Structures in Python | Mon 11/9 & Tue 11/10 |
| Lab 18: Text Processing in Python | Thu 11/12 & TBD |
| Lab 19: Data Science | Mon 11/16 & Tue 11/17 |
| Practice Postterm | Wed 11/18 & Thu 11/19 |
| Lab 20: Linear Recursion in Python | Mon 11/23 & Tue 11/24 |
| Lab 21: Snap + Python Libraries (Optional) | Mon 11/30 & Tue 12/1 |
| Project Work Session (Optional) | Wed 12/2 & Thu 12/3 |