Directions
All lab check-off deadlines are at 11:59PM.
(However, you need to get checked off by a TA or lab assistant, so you last chance to get checked off is during lab or office hours.)
To get checked off, you should prepare answers to the specific questions for each lab. You shouldn’t feel compelled to memorize every single detail of lab. The goal here to make sure you’re on track with CS10 and you should be comfortable with the higher level concepts for each question. For each lab the first questions are the biggest ideas, and the later questions are for your own benefit and review.
Remember: Even if you miss a check-off deadline, you can still get 50% credit for any lab check off at any time during the semester.
Week 1: Lab 1: No check-off needed!
Lab 1: Welcome to Snap!
- No questions for this lab!
Week 2: Labs 2 and 3
Lab 2: Build Your Own Blocks
Required
- Why should we make our own blocks?
- Show us the
Draw Flower
block.
More Self-Check Questions
- What are some different ways to achieve repetition? Why would you use one way over another?
Lab 3: Conditionals and Variables
Required
- Why are script variables useful? How do we create a script variable?
- Show us the code for the
is _ between _ and _ ?
block.
More Self-Check Questions
- What is the difference between
if
and if-else
blocks?
- For the Leap Year example, explain which code was easiest to read and which code was easiest to debug.
Week 3: Labs 4 and 5
Lab 4: Functions
Required
- Show and Explain your Valid-Date Block
- What is the difference between and global and script variable? What are the pros/cons of each?
More Self-Check Questions
- What are different ways to broadcast between sprites?
- Explain the bugs in each of the provided pieces of code for the “sum of numbers between __ and ___ block”
Lab 5: Lists 1
Required
- Which blocks allow you to use a function on an entire list “all at once”? What are their domains and ranges?
- What is the difference between the for and for each blocks?
More Self-Check Questions
- Lets look at
swap
. Why do we need a temp variable?
- What are lists? How are they represented in Snap? What are some operations you can perform on lists?
- How are lists different from variables? How are they similar? How do you create a temporary list for use in a block definition?
- Why might global variable manipulation be useful in some situations? what drawbacks are there?
Week 4: Lab 6
Lab 6: Algorithms
Required
- What is an algorithm? Please give an example both in real life and from class.
- Please show both your “Find the number X in Unsorted List” and “Find the number X in Sorted List” blocks and describe the difference in the algorithms used.
More Self-Check Questions
- What is memoization? When is it useful?
Week 5: Labs 7 and 8
Lab 7: Algorithm Complexity
Required
- Please rank the runtimes you’ve covered in this lab from “fastest” to “slowest”. For each, how does the program’s input affect runtime? Why is runtime important for the programs that we create?
- Please show me your
Are the numbers of (LIST) distinct?
block. What is the difference between the “worst case” and “best case” scenarios for this block, in terms of Runtime?
More Self-Check Questions
- What happened with the time it took for your computer to counter up the numbers between 1 and x when you started doubling the numbers? Tripling the numbers?
- Between the Non-Gauss and Gauss method of adding numbers, which was faster? Why?
Lab 8: Finch Lab
- You can get checked off for this lab as long as you show up to lab and work on it. No questions!