Bird
Raised Fist0
Drone Programmingprogramming~20 mins

Pre-flight checklist automation 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
🎖️
Pre-flight Automation Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Output of battery check function
What is the output of this pre-flight battery check function when battery level is 75%?
Drone Programming
def check_battery(level):
    if level < 20:
        return "Battery too low"
    elif level < 50:
        return "Battery low"
    else:
        return "Battery sufficient"

print(check_battery(75))
A"Battery critical"
B"Battery low"
C"Battery too low"
D"Battery sufficient"
Attempts:
2 left
💡 Hint
Think about the battery level ranges and which message matches 75%.
🧠 Conceptual
intermediate
1:30remaining
Understanding sensor status check
If a drone's sensor status is represented by a dictionary {'GPS': True, 'Camera': False, 'Lidar': True}, which sensor is NOT ready for flight?
ACamera
BGPS
CLidar
DAll sensors are ready
Attempts:
2 left
💡 Hint
True means ready, False means not ready.
🔧 Debug
advanced
2:00remaining
Identify the error in the checklist loop
What error does this code raise when running the pre-flight checklist loop? checklist = ['Battery', 'GPS', 'Camera'] for item in checklist print(f"Checking {item}...")
Drone Programming
checklist = ['Battery', 'GPS', 'Camera']
for item in checklist
    print(f"Checking {item}...")
ATypeError: 'list' object is not callable
BSyntaxError: expected ':' after for loop
CIndentationError: unexpected indent
DNameError: checklist is not defined
Attempts:
2 left
💡 Hint
Check the syntax of the for loop header.
📝 Syntax
advanced
2:30remaining
Correct dictionary comprehension for sensor readiness
Which option correctly creates a dictionary showing sensor readiness from a list of sensors with their status?
Drone Programming
sensors = [('GPS', True), ('Camera', False), ('Lidar', True)]
A{sensor: status for sensor, status in sensors if status == True}
B{sensor: status if status == True for sensor, status in sensors}
C{sensor: status for sensor, status in sensors if status}
D{sensor: status for sensor, status in sensors}
Attempts:
2 left
💡 Hint
Remember the syntax for filtering in dictionary comprehensions.
🚀 Application
expert
2:00remaining
Final checklist status after automation run
Given this automation code, what is the final value of the variable 'ready' after running? checklist = {'Battery': True, 'GPS': True, 'Camera': False, 'Lidar': True} ready = all(checklist.values()) # What does 'ready' hold?
Drone Programming
checklist = {'Battery': True, 'GPS': True, 'Camera': False, 'Lidar': True}
ready = all(checklist.values())
AFalse
BNone
CTrue
DRaises an error
Attempts:
2 left
💡 Hint
The all() function returns True only if all values are True.

Practice

(1/5)
1. What is the main purpose of automating a pre-flight checklist in drone programming?
easy
A. To improve safety and save time before flying
B. To make the drone fly faster
C. To change the drone's color automatically
D. To increase the drone's battery capacity

Solution

  1. Step 1: Understand the goal of pre-flight checks

    Pre-flight checks ensure the drone is safe and ready to fly.
  2. Step 2: Identify automation benefits

    Automating these checks saves time and reduces human error.
  3. Final Answer:

    To improve safety and save time before flying -> Option A
  4. Quick Check:

    Automation = Safety + Time saving [OK]
Hint: Think about safety and efficiency before flight [OK]
Common Mistakes:
  • Confusing automation with drone speed
  • Assuming automation changes hardware features
  • Ignoring safety as the main goal
2. Which of the following is the correct way to define a class in drone programming for a pre-flight checklist?
easy
A. PreFlightCheck = {}
B. def PreFlightCheck(): pass
C. class PreFlightCheck: pass
D. function PreFlightCheck() {}

Solution

  1. Step 1: Identify class syntax in drone programming (Python style)

    Classes are defined with the keyword 'class' followed by the name and colon.
  2. Step 2: Check options for correct class definition

    class PreFlightCheck: pass uses 'class PreFlightCheck: pass' which is valid syntax.
  3. Final Answer:

    class PreFlightCheck: pass -> Option C
  4. Quick Check:

    Class keyword + name + colon = correct class [OK]
Hint: Classes start with 'class' keyword and colon [OK]
Common Mistakes:
  • Using 'def' instead of 'class' for class definition
  • Using curly braces instead of colon
  • Assigning class to a dictionary
3. What will be the output of this code snippet?
class CheckList:
    def __init__(self):
        self.steps = {'battery': True, 'motors': True, 'gps': False}
    def all_passed(self):
        return all(self.steps.values())

check = CheckList()
print(check.all_passed())
medium
A. False
B. None
C. True
D. Error

Solution

  1. Step 1: Analyze the steps dictionary values

    The steps are {'battery': True, 'motors': True, 'gps': False} so values are [True, True, False].
  2. Step 2: Evaluate all() function on values

    all() returns True only if all values are True; here one is False, so result is False.
  3. Final Answer:

    False -> Option A
  4. Quick Check:

    all([True, True, False]) = False [OK]
Hint: all() returns False if any value is False [OK]
Common Mistakes:
  • Assuming all() returns True if some values are True
  • Confusing dictionary keys with values
  • Expecting print to show dictionary instead of boolean
4. Identify the error in this pre-flight checklist code:
class PreFlight:
    def __init__(self):
        self.steps = {'battery': True, 'motors': True}
    def check_all(self):
        for step in self.steps:
            if self.steps[step] = False:
                return False
        return True

pf = PreFlight()
print(pf.check_all())
medium
A. Indentation error in for loop
B. Missing return statement in check_all method
C. Incorrect dictionary initialization syntax
D. Syntax error: '=' used instead of '==' in if condition

Solution

  1. Step 1: Check the if condition syntax

    The line 'if self.steps[step] = False:' uses '=' which is assignment, not comparison.
  2. Step 2: Correct syntax for comparison

    It should be '==' to compare values, so 'if self.steps[step] == False:' is correct.
  3. Final Answer:

    Syntax error: '=' used instead of '==' in if condition -> Option D
  4. Quick Check:

    Use '==' for comparison, '=' causes syntax error [OK]
Hint: Use '==' for comparison, not '=' [OK]
Common Mistakes:
  • Using '=' instead of '==' in conditions
  • Forgetting to return a value
  • Misindenting loops or blocks
5. You want to extend the pre-flight checklist to automatically add a new step only if the drone has a camera. Which code snippet correctly adds this conditional step inside the class?
hard
A. self.steps['camera'] = self.has_camera
B. if self.has_camera == True: self.steps['camera'] = True
C. self.steps['camera'] = True if self.has_camera else None
D. self.steps.append('camera') if self.has_camera else None

Solution

  1. Step 1: Understand conditional addition of step

    We add 'camera' step only if self.has_camera is True.
  2. Step 2: Check syntax for condition and dictionary update

    if self.has_camera == True: self.steps['camera'] = True uses 'if self.has_camera == True:' and sets self.steps['camera'] = True, which is clear and correct.
  3. Final Answer:

    if self.has_camera == True: self.steps['camera'] = True -> Option B
  4. Quick Check:

    Use if condition and dict assignment for conditional step [OK]
Hint: Use if condition with dict assignment for conditional steps [OK]
Common Mistakes:
  • Using append on dictionary instead of assignment
  • Assigning without condition
  • Using wrong syntax for condition