Bird
Raised Fist0
Drone Programmingprogramming~20 mins

Speed control during mission in Drone Programming - Practice Problems & Coding Challenges

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Challenge - 5 Problems
🎖️
Speed Control Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
What is the output of this speed adjustment code?
Consider this snippet controlling drone speed during a mission. What will be printed?
Drone Programming
speed = 10
for waypoint in range(3):
    if speed > 5:
        speed -= 3
    print(f"Speed at waypoint {waypoint}: {speed}")
A
Speed at waypoint 0: 7
Speed at waypoint 1: 4
Speed at waypoint 2: 4
B
Speed at waypoint 0: 7
Speed at waypoint 1: 4
Speed at waypoint 2: 1
C
Speed at waypoint 0: 10
Speed at waypoint 1: 7
Speed at waypoint 2: 4
D
Speed at waypoint 0: 7
Speed at waypoint 1: 7
Speed at waypoint 2: 7
Attempts:
2 left
💡 Hint
Look carefully at how speed changes inside the loop and when it stops decreasing.
🧠 Conceptual
intermediate
1:30remaining
Which statement best describes speed control in a mission?
In drone programming, why is it important to adjust speed dynamically during a mission?
ATo avoid any speed changes to keep the mission predictable
BTo keep the drone always at maximum speed regardless of conditions
CTo save battery by flying slower when possible and faster when needed
DTo randomly change speed to confuse obstacles
Attempts:
2 left
💡 Hint
Think about energy use and mission efficiency.
🔧 Debug
advanced
2:00remaining
What error does this speed control code raise?
Identify the error when running this code snippet:
Drone Programming
speed = 5
for i in range(3):
    if speed < 10:
        speed += 2
    print(speed)
ASyntaxError due to missing colon after if statement
BTypeError because speed is an integer
CIndentationError due to print statement
DNameError because variable i is not used
Attempts:
2 left
💡 Hint
Check the if statement syntax carefully.
Predict Output
advanced
1:30remaining
What is the final speed after this mission segment?
Given this code controlling speed increments, what is the final speed printed?
Drone Programming
speed = 3
increments = [2, -1, 4, -3]
for inc in increments:
    speed = max(0, speed + inc)
print(speed)
A3
B5
C6
D4
Attempts:
2 left
💡 Hint
Add each increment carefully and ensure speed never goes below zero.
🚀 Application
expert
2:30remaining
How many speed changes occur in this mission code?
Count how many times the speed variable changes value during this mission segment:
Drone Programming
speed = 7
changes = 0
for step in range(5):
    new_speed = speed - step
    if new_speed != speed:
        speed = new_speed
        changes += 1
print(changes)
A2
B5
C3
D4
Attempts:
2 left
💡 Hint
Check each loop iteration and compare new_speed to current speed.

Practice

(1/5)
1. What is the main reason to adjust the drone's speed during a mission?
easy
A. To save battery by flying as fast as possible
B. To change the drone's color
C. To make the drone hover in place
D. To fly slower near obstacles for safety

Solution

  1. Step 1: Understand speed control purpose

    Speed control helps adjust how fast the drone flies to match mission needs.
  2. Step 2: Identify safety reason

    Flying slower near obstacles reduces crash risk and improves control.
  3. Final Answer:

    To fly slower near obstacles for safety -> Option D
  4. Quick Check:

    Safety needs slower speed near obstacles = B [OK]
Hint: Slower speed near obstacles means safer flight [OK]
Common Mistakes:
  • Thinking faster speed always saves battery
  • Confusing speed control with hovering
  • Believing speed changes drone color
2. Which of the following is the correct way to set the drone speed to 5 meters per second in code?
easy
A. setSpeed(drone, 5)
B. drone.speed = '5mps'
C. drone.setSpeed(5)
D. drone.speed(5)

Solution

  1. Step 1: Identify correct method syntax

    The method to set speed is called on the drone object with a number argument.
  2. Step 2: Check each option

    drone.setSpeed(5) uses drone.setSpeed(5) which is correct syntax for setting speed to 5.
  3. Final Answer:

    drone.setSpeed(5) -> Option C
  4. Quick Check:

    Method call with number argument = A [OK]
Hint: Use object.method(value) to set speed [OK]
Common Mistakes:
  • Using string instead of number for speed
  • Calling speed as a function instead of method
  • Passing drone as argument instead of calling method on it
3. What will be the output of this code snippet?
drone.setSpeed(3)
print(drone.speed)
medium
A. None
B. 3
C. Error: speed attribute not found
D. drone.setSpeed(3)

Solution

  1. Step 1: Understand setSpeed effect

    Calling drone.setSpeed(3) sets the drone's speed attribute to 3.
  2. Step 2: Print drone.speed value

    Printing drone.speed outputs the current speed value, which is 3.
  3. Final Answer:

    3 -> Option B
  4. Quick Check:

    Set speed to 3, print speed = 3 [OK]
Hint: setSpeed changes speed attribute; print shows it [OK]
Common Mistakes:
  • Expecting method call to print
  • Assuming speed attribute is missing
  • Confusing method name with attribute
4. The following code is intended to set the drone speed to 10 m/s but causes an error. What is the problem?
drone.setspeed(10)
medium
A. Method name is case-sensitive; should be setSpeed
B. Speed value 10 is too high and causes error
C. Missing parentheses after method name
D. drone object is not defined

Solution

  1. Step 1: Check method name spelling

    Method names are case-sensitive; 'setspeed' is incorrect, correct is 'setSpeed'.
  2. Step 2: Confirm other options

    Speed 10 is valid, parentheses are present, and drone object assumed defined.
  3. Final Answer:

    Method name is case-sensitive; should be setSpeed -> Option A
  4. Quick Check:

    Case-sensitive method names cause errors = A [OK]
Hint: Check exact method name spelling and case [OK]
Common Mistakes:
  • Ignoring case sensitivity in method names
  • Assuming value too high causes error
  • Forgetting parentheses after method
5. You want the drone to fly slower near obstacles and faster in open areas during a mission. Which code snippet correctly changes speed based on distance to obstacle?
distance = drone.getDistance()
if distance < 5:
    drone.setSpeed(2)
else:
    drone.setSpeed(8)
hard
A. Correctly sets speed slower near obstacles and faster otherwise
B. Sets speed faster near obstacles, which is unsafe
C. Uses wrong comparison operator; should be distance > 5
D. Does not change speed at all

Solution

  1. Step 1: Understand distance check

    Code checks if distance to obstacle is less than 5 meters.
  2. Step 2: Analyze speed settings

    If close (distance < 5), speed is set to 2 (slow). Else speed is 8 (fast). This matches safe speed control.
  3. Final Answer:

    Correctly sets speed slower near obstacles and faster otherwise -> Option A
  4. Quick Check:

    Distance check controls speed safely = C [OK]
Hint: Use if distance < threshold for slower speed [OK]
Common Mistakes:
  • Reversing comparison operator
  • Setting faster speed near obstacles
  • Not calling setSpeed inside condition