functions
loops
functions too
algorithms
other
100

What does the mystery function do?


function mystery() {
    while (noBallsPresent()) {
        move();
    }
}

Karel moves until it is on a ball

100

What is the purpose of using a for loop in code?

To repeat something a fixed number of times

100

Which of the following is not a valid condition to go in an if statement for Karel?

  1. ballsPresent()

  2. frontIsClear()

  3. leftIsBlocked()

  4. turnLeft()

turnLeft()

100

Super Karel starts at Street 1, Avenue 1, facing East in a 5x5 world. What will happen after this code runs?

move();
move();
turnRight();
move();

Karel will crash into a wall

100

Why does a programmer indent their code?

Helps show the structure of the code.

Easier for other people to understand.

A key part of good programming style!

200

In the following code below from the Cleanup Karel example, what is the purpose of If Statement #2?


// This program has Karel walk down the
// row and clean up all of the tennis balls
// on the way.
function start() {
    while (frontIsClear()) {
        // If statement #1
        if (ballsPresent()) {
            takeBall();
        }
        move();
    }
    // If statement #2
    if (ballsPresent()) {
        takeBall();
    }
}

To pick up the ball that is in the last spot, if there is one

200

What condition should be used in this while loop to get Karel to pick up all the tennis balls on the current location?

while (________) {
    takeBall();
}

  1. noBallsPresent()

  2. ballsPresent()

  3. frontIsClear()

  4. takeBall()

ballsPresent()

200

What’s wrong with this code?


function start() {
    move();
    go();
    go();
}

function go() {
    move();
    move();
}

function go() {
    move();
    move();
}

The go function has been defined twice

200

Karel starts at Street 1, Avenue 1, facing East in a 5x5 world. What will happen after this code runs?


move();
putball();
move();
move();
move();
move();
move();

This code won’t run because of a syntax error

200

How can we teach Karel new commands?

Define a new function

300

What makes the following command an invalid Karel command?


turnleft();

The l should be a capital L

300

Say you want to write a program to have Karel put down 300 tennis balls. Which control structure would you use?

For loop

300

How many total times will Karel move in this program?


function start() {
    move();
    for (var i = 0; i < 5; i++) {
        move();
        putBall();
    }
}

6

300

How can we improve the following program?


function start() {
    move();
    move();
    move();
    move();
    move();
    move();
    move();
    move();
    move();
}

Use a for loop to repeat the move command

300

What is top down design?

Top down design is a way of designing your program by starting with the biggest problem and breaking it down into smaller and smaller pieces that are easier to solve.

400

Which of the following commands is a valid Karel command?

  1. move

  2. move;

  3. move();

  4. move()

move();

400

Say Karel is on a location with one tennis ball. After the following code runs, how many tennis balls will there be at that location?

for (var i = 0; i < 3; i++) {
    if (ballsPresent()) {
        takeBall();
    } else {
        putBall();
        putBall();
    }
}

1

400

What is wrong with this for loop?


for (var i = 0, i < 10, i + 1) {
    move();
}


A. The for loop uses commas instead of semicolons

B. It should say i++ instead of i + 1

A and B

400

If Karel starts at Street 1 and Avenue 1, facing East, where will Karel be, and what direction will Karel be facing after running the following code? (Assume the world is 10x10 in size)


move();
turnLeft();
putBall();
turnLeft();
turnLeft();
turnLeft();
move();
turnLeft();

Street 1, Avenue 3, Facing North

400

Which of the following is the correct way to define a turnRight function in Karel?


  1. function turnRight() {
        turnLeft();
        turnLeft();
        turnLeft();
    }

  2. function turnRight() {
        turnRight();
        turnRight();
        turnRight();
    }

  3. function turnRight {
        turnLeft();
        turnLeft();
        turnLeft();
    }

  4. turnRight function() {
        turnLeft();
        turnLeft();
        turnLeft();
    }

1. function turnRight() {
    turnLeft();
    turnLeft();
    turnLeft();
}

500

In the following code, what would be a good Postcondition to write?


/* Precondition: Karel is on a spot with a tennis ball facing East
 * Postcondition: ...
*/
function getOnTop() {
    turnLeft();
    move();
    turnRight();
}

Karel ends one spot above a tennis ball facing East.

500

In this code, how many times is the dance function called and how many times is it defined?


function start() {
    move();
    dance();
    move();
    move();
    turnLeft();
    dance();
    dance();
}

function dance() {
    turnLeft();
    move();
    turnLeft();
    turnLeft();
    move();
    turnLeft();
}

Called 3 times, defined 1 time

500

What is the proper format for a single line comment in Karel?

// This is a comment

500

Karel starts at Street 1 and Avenue 1, facing East. After calling the stairStep function twice, where will Karel be and what direction will Karel be facing? (assume this is a SuperKarel program and the world is 10x10 in size)


function stairStep() {
    move();
    turnLeft();
    move();
    turnRight();
}

Street 3, Avenue 3, Facing East

500

Why do we use functions in Karel programs?

  1. Break down our program into smaller parts

  2. Avoid repeating code

  3. Make our program more readable