Link Search Menu Expand Document

Lab Check-Offs

On this page, you will find a list of check-off questions for each lab.

Lab 1
Welcome to Snap!

View Lab 1
  • No checkoff needed for Lab 1!

Lab 2
Build Your Own Blocks

View Lab 2
  • Show your Field of Flowers.

  • Show your random-walk sprite.

  • Show your draw square-leaved flower...` block.

  • Why should you Build Your Own Blocks? Give a reason that someone may create a custom block.

  • What are some different ways to achieve repetition? Name at least 2.

Lab 3
Conditionals, Reporters & Abstraction

View Lab 3
  • What is a Boolean? Explain why we use them, and give examples of functions that report a Boolean value.

  • What does the mystery reporter (at the bottom of the “Reporter Blocks” page) report when run with the inputs hello and 5?

  • Name a few of the input types. Why is it important that we specify input types?

  • Explain the difference between a command and a reporter block.

  • How are global variables different from script variables?

  • Show us your traffic signal and letter grade blocks.

  • Show us the is _ between _ and _ ? block.

  • Show and explain your sum of two smallest block.

Lab 4
Lists and HOFs

View Lab 4
  • What is a list? Why would we use a list of 10 elements instead of just making 10 variables?

  • What do map, keep, and combine each do?

  • What is the difference between the for each (item) loop and the for (i) loop we have used in previous labs?

  • Show us your acronym block.

  • Show us your expand block.

Lab 5

View Lab 5
  • What is an algorithm? Please give an example both in real life and from class.

  • Are algorithms which are (on average) faster always “better”? Why or why not?

  • What might some “trade-offs” to different computer science algorithms be?

  • How can abstraction and algorithms relate in computer science?

  • Please show both your findNumberInUnsortedList and findNumberInSortedList functions and describe the difference in the algorithms used.

Lab 6
Algorithmic Complexity

View Lab 6
  • Of all the runtimes you have discovered thus far, can you rank them from “fastest” to “slowest”? Why is runtime important for the programs that we create?

  • Name the logarithmic time algorithm that we implemented in Lab 5. Explain why this algorithm runs in logarithmic time.

  • What is the difference between “Worst-Case” and “Best Case” Runtimes when running the Are the numbers of (LIST) distinct block? Why?

  • 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? What do you think would happen with the time I multiplied your top number by 8?

  • Please show me your Non-Gauss and Gauss Add all numbers in. Which was faster? Why?

Lab 7

View Lab 7
  • Why did we have variables like Size, Start, and Display Width when designing our board? What do they do?

  • Explain an advantage of using an underlying board structure when designing a game.

  • Show your working board game by moving the sprite around the board and clicking to place bugs.

Lab 8
Testing + 2048

View Lab 8
  • How does the test block work? What is its domain and range?

  • How will writing tests help you for the 2048 assignment?

  • How do merge up and merge column work? What is the domain/range of each block?

  • What is the domain and range of the update display block?

  • Show us the output of your test block on the merge column. Explain why this output makes sense.

Lab 9
Trees and Fractals

View Lab 9
  • Why is it important that the inputs to a recursive call be smaller than the original inputs to the function?

  • Why is it important that the sprite face the same direction at the end of a recursive function as it faced initially?

  • What defines a recursive block? What are the two necessary “cases” that a recursive block must consider? Name and define them.

  • Please show me your snowflake block.

  • Please show me your crazy-tree block.

Lab 10
Recursive Reporters

View Lab 10
  • Why do we map the first item of the set in front of a recursive call of subsets over the rest of the list?

  • Explain why the second version of subsets only makes 7 calls instead of 64.

  • Explain how the sort block works, how the merge block works, and how they work together.

  • Show us the recursive numbers block.

  • Show us the recursive ends-e block.

Lab 11
HOFS and Functions as Data

View Lab 11
  • What is a higher-order function? Can you give an example of one?

  • Show us your pandigital block and explain how it works.

  • Show us your factorion block and explain how it works.

  • Show us your list all factorions function. How does this compare to the list all pandigital numbers function?

Lab 12
Welcome to Python

View Lab 12
  • What is the difference between the python, python, and python -i terminal commands?

  • What is the difference between the print and return Python commands?

  • Show your reverse_string(string)` function. If you implemented it iteratively, explain the recursive solution. If you implemented it recursively, explain the iterative solution.

  • Show your palindrome(string) function.

  • Show your c-curve function and its output.

Lab 13
Data Structures in Python

View Lab 13
  • What is the difference between = and == in Python?

  • What is a dictionary?

  • What does 0-indexing mean?

  • Show us the result of running the autograder.

Lab 14
Object-Oriented Programming (OOP)

View Lab 14
  • Describe the purpose of an init function.

  • To access a class attribute, should you use the class name or an instance name?

  • Name two different ways to assign instance attributes.

  • Show us your outdated and add_genre methods, as well as what the autograder outputs.

Lab 15
Text Processing in Python

View Lab 15
  • What are the arguments of the “open” function and what does it return?

  • How do we choose how something is sorted when using the “sorted” function in Python?

  • Show us your izzle or pig_latin function.

  • Show us your top_n_words and “print_top_n_words” functions.

  • Show us your apply_language_game function.

  • Show us the result of running the autograder.

Lab 16
Data Science

View Lab 16
  • What are some important commands that you can use to keep only certain rows in a table?

  • Describe the three main steps of working with data as given in this lab.

  • What commands did you use to find the price of the most expensive listing in San Francisco?

  • Show us your scatter plot. What are some things you notice from this plot?

Lab 17

View Lab 17
  • What is a race condition?

  • Is it always true that splitting a task among 10 “workers” (or cores) is better than splitting it among 5 “workers” (or cores)?

  • What is the difference between determinism and nondeterminism in the context of concurrency?

  • How does Snap! handle concurrency?