@extends('template') @section('title') Lab 6: More loops (and lists) @stop @section('head') @stop @section('content') # Lab 6 {{-- ## [Solutions](/content/labs/lab06/solutions) --}} {{-- ## [Worksheet solns](https://docs.google.com/document/d/1_gVBPn_rGn0K3mBtgRrFFxoPUf08fSCS9kG89AaY4mY/edit?usp=sharing) --}} ## Goals   + Practice debugging techniques for loops + Extra practice with `for` loops and/or `while` loops + Practice *for loops* using turtle graphics (optional) @include('/labs/_setup', ['folder' => 'lab06']) @include('/labs/lab06/_toc') ## Big Questions {.bigqs} - *What is a "helper function?"*
Show Answer A "helper function" is an extra function defined to solve some part of a larger problem, often beyond what is required in the problem description (although required functions can technically be helper functions too). For example, in the rock-paper-scissors task, we required you to write a function called randomGesture that returns a random gesture. To play rock-paper-scissors, this funciton isn't necessary: we could just use the code from it within our playComputer function directly. But by creating a helper function for this purpose, our code becomes more modular and it's easier to test many smaller components separately. Oftentimes, a helper function can serve as a conceptual strategy in probelm solving: when things are getting too complicated to think of a solution, you can imagine a function that would help simplfy the current problem, and then write that function as a helper function and come back to the larger problem once you've solved the smaller one.
- *What is an "infinite loop" and how can you avoid creating one?*
Show Answer An "infinite loop" is a loop that never ends, in most cases it is a while loop where the loop condition never ends up being False. To avoid infinite loops, makes sure that the code in your loop changes at least one variable that's used in the loop condition, and that it does so in a way that will eventually make that condition false. Also, if you know how many times you want to execute the loop, use a for loop instead of a while loop.
@stop