Which of the following commands is a valid Karel command?

move

move;

move();

move()
Question: 2
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();
}
JavaScript

Street 2, Avenue 2, Facing North

Street 3, Avenue 3, Facing East

Street 3, Avenue 3, Facing West

Street 4, Avenue 4, Facing East

Question: 3
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!

All of the above

Question: 4
How can we teach Karel new commands?

For loop

While loop

Define a new function

The start function

Question: 5
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();
}
}
JavaScript

0

1

2

6

Question: 6
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.

Top down design is a way that you can create designs on a computer to put on a web page

Top down design is a way of designing your programs starting with the individual commands first

Top down design is a way to use loops and if statements to decompose the problem

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

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

function turnRight() {
turnRight();
turnRight();
turnRight();
}

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

turnRight function() {
turnLeft();
turnLeft();
turnLeft();
}
Question: 8
Why do we use functions in Karel programs?

Break down our program into smaller parts

Avoid repeating code

Make our program more readable

All of the above

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

ballsPresent()

frontIsClear()

leftIsBlocked()

turnLeft()
Question: 10
What is the proper format for a single line comment in Karel?

This is a comment

// This is a comment

/* This is a comment

This is a comment

Question: 11
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();
}
JavaScript

Called 1 time, defined 1 time

Called 1 time, defined 3 times

Called 3 times, defined 1 time

Called 3 times, defined 3 times

Question: 12
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();
}
JavaScript

noBallsPresent()

ballsPresent()

frontIsClear()

takeBall()
Question: 13
What’s wrong with this code?

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

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

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

The go function is called twice

The go function has a syntax error

The go function has been defined twice

go is not a command that Karel understands

Question: 14
What does the mystery function do?

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

Karel moves until it is on a ball

Karel moves once if there is no ball present

Karel moves until it puts down a ball

Karel checks if there is no ball on the current spot and then moves once

Question: 15
How many total times will Karel move in this program?

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

1

5

6

7

Question: 16
How can we improve the following program?

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

Break down this program into more functions

Use a for loop to repeat the move command

Use a while loop to repeat the move command

Fix the indentation of this program

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

If statement

While loop

For loop

Nested while loop

Question: 18
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();
}
}
JavaScript

To move the last time

To pick up the ball that is in the last spot

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

To take the ball from all of the positions that have a ball on them

Question: 19
Karel starts at Street 1, Avenue 1, facing East in a 5x5 world. What will happen after this code runs? Assume this is a SuperKarel program.

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

Karel ends on street 1, avenue 3

Karel ends on street 2, avenue 3

This code won’t run because of a syntax error

Karel will crash into a wall

Question: 20
Why is the following command an invalid Karel command?

turnleft();

It should end in a colon rather than a semicolon

The l should be a capital L

It should start with a capital T

This command is correct

Question: 21
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();
JavaScript

Street 3, Avenue 1, Facing North

Street 1, Avenue 4, Facing North

Street 1, Avenue 3, Facing South

Street 1, Avenue 3, Facing North

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

To do something if a condition is true

To do something while a condition is true

To repeat something a fixed number of times

To make programs run faster

Question: 23
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();
JavaScript

Karel will end on Street 1, Avenue 2

Karel will end on Street 1, Avenue 7

This code won’t run because of a syntax error

Karel will crash into a wall

Question: 24
What is wrong with this for loop?

for (var i = 0, i < 10, i + 1) {
move();
}
JavaScript
I. The for loop uses commas instead of semicolons

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

I

II

I and II

The for loop is correct

Question: 25
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();
}
JavaScript

Karel is on a spot with a tennis ball facing north

Karel ends one spot above a tennis ball facing East.

Karel is on the same position but on top of a ball.

Karel is facing East.

Karel is on a spot with a tennis ball facing north

Question 1: The valid Karel command is "move".

Question 2: After calling the stairStep function twice, Karel will be at Street 3, Avenue 3, facing East.

Question 3: The correct answer is "All of the above". Indenting code helps show the structure of the code, makes it easier for other people to understand, and is a key part of good programming style.

Question 4: To teach Karel new commands, we can define a new function.

Question 5: After the code runs, there will be 2 tennis balls on that location.

Question 6: 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.

Question 7: The correct way to define a turnRight function in Karel is: "function turnRight() { turnLeft(); turnLeft(); turnLeft(); }".

Question 8: We use functions in Karel programs to break down our program into smaller parts, avoid repeating code, and make our program more readable.

Question 9: "turnLeft()" is not a valid condition to go in an if statement for Karel.

Question 10: The proper format for a single line comment in Karel is "// This is a comment".

Question 11: The dance function is called 2 times and defined 1 time.

Question 12: The condition to pick up all the tennis balls on the current location is "ballsPresent()".

Question 13: The go function has been defined twice.

Question 14: The mystery function makes Karel move until it is on a ball.

Question 15: Karel will move a total of 7 times in this program.

Question 16: To improve the program, we can break it down into more functions.

Question 17: To have Karel put down 300 tennis balls, we would use a for loop.

Question 18: The purpose of If Statement #2 is to pick up the ball that is in the last spot, if there is one.

Question 19: After the code runs, Karel will end on Street 1, Avenue 7.

Question 20: The following command is invalid because it should start with a capital T: "turnleft();".

Question 21: After running the code, Karel will be at Street 1, Avenue 3, facing North.

Question 22: The purpose of using a for loop in code is to repeat something a fixed number of times.

Question 23: After running the code, Karel will crash into a wall.

Question 24: The for loop is incorrect because it uses commas instead of semicolons and it should say "i++" instead of "i + 1".

Question 25: A good postcondition to write would be "Karel ends one spot above a tennis ball facing East".

Answer: 1. The valid Karel command is "move".