1.17.1 Programming with Karel Quiz
Question: 5 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
Question: 9 How many total times will Karel move in this program? function start() { move(); for (var i = 0; i < 5; i++) { move(); putBall(); } }
6
Question: 11 What is the proper format for a single line comment in Karel?
// This is a comment
Question: 4 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: 7 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
Question: 17 How can we teach Karel new commands?
Define a new function
Question: 18 Say you want to write a program to have Karel put down 300 tennis balls. Which control structure would you use?
For loop
Question: 16 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: 24 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.
Question: 12 What does the mystery function do? function mystery() { while (noBallsPresent()) { move(); } }
Karel moves until it is on a ball
Question: 8 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
Question: 20 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
Question: 23 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
Question: 25 What is the purpose of using a for loop in code?
To repeat something a fixed number of times
Question: 21 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.
Question: 22 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
Question: 15 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(); }
ballsPresent
Question: 3 Which of the following is the correct way to define a turnRight function in Karel?
function turnRight() { turnLeft(); turnLeft(); turnLeft(); }
Question: 1 Which of the following commands is a valid Karel command?
move();
Question: 13 Which of the following is not a valid condition to go in an if statement for Karel?
turnLeft()
Question: 14 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
Question: 10 What is wrong with this for loop? for (var i = 0, i < 10, i + 1) { move(); } I. The for loop uses commas instead of semicolons II. It should say i++ instead of i + 1
I and II
Question: 19 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
Question: 2 What makes the following command an invalid Karel command? turnleft();
The l should be a capital L
Question: 6 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