On this page, you will find a list of check-off questions for each lab.
Lab 1 Welcome to Snap!
- No checkoff needed for Lab 1!
Lab 2 Build Your Own Blocks
- Show your Field of Flowers.
- 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.
- Show your random-walk sprite.
- Show your “draw square-leaved flower…” block.
- What is a Boolean? Explain why we use them, and give examples of functions that report a Boolean value.
- Show us your traffic signal and letter grade blocks.
- Explain the difference between a command and a reporter block.
- Show us the “is _ between _ and _ ?” block.
- 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?
- How are global variables different from script variables?
- Show and explain your sum of two smallest block.
Lab 4 Lists and HOFS
- What is a list? Why would we use a list of 10 elements instead of just making 10 variables?
- What do
- Show us your
- Show us your
- What is the difference between the
for each (item)loop and the
for (i)loop we have used in previous labs?
Lab 5 Algorithms
- What is an algorithm? Please give an example both in real life and from class.
- Please show both your “findNumberInUnsortedList” and “findNumberInSortedList” functions and describe the difference in the algorithms used.
- 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?
Lab 6 Algorithmic Complexity
- Please show me your Non-Gauss and Gauss Add all numbers in. Which was faster? Why?
- 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?
- What is an example of an algorithm that we have seen that has an exponential runtime?
Lab 7 Testing & Project 3
- How does the test block work? What is its domain and range?
- Show us the output of your test block on the merge column. Explain why this output makes sense.
- 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?
Lab 8 Boards
- Why did we have variables like “Size”, “Start”, and “Display Width” when designing our board and what do they do?
- Show your working board game by moving the sprite around the board.
- Explain an advantage of using an underlying board structure when designing a game.
Lab 9 Trees and Fractals
- Why is it important that the inputs to a recursive call be smaller than the original inputs to the function?
- Please show me your “crazy-tree” block.
- 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.
Lab 10 Recursive Reporters
- 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.
- What is a higher-order function?
- 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 12Welcome to Python!
- What is the difference between the “python”, “python file.py”, and “python -i file.py” terminal commands?
- What is the difference between the “print” and “return” python commands?
- Show your “reverse_string(string)” function. If you did it iteratively, explain the recursive solution. If you did it recursively, explain the iterative solution. -Show your “palindrome(string)” function.
- Show your c-curve function and its output.
- What is the difference between = and == in python?
- Show us the result of running the autograder.
- What is a dictionary?
- What does 0-indexing mean?
- Describe the purpose of an “init” function.
- What takes precedence, an instance attribute or a class attribute?
- Name two different ways to assign instance attributes.
- Show us your “outdated” and “add_genre” methods.
- Show us your completed MemePage and Member classes.