Bird
Raised Fist0
SCADA systemsdevops~5 mins

Data quality flags in SCADA systems - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Data quality flags
O(n)
Understanding Time Complexity

We want to understand how the time to check data quality flags changes as we handle more data points.

How does the work grow when we have more sensor readings to check?

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


for reading in sensor_readings:
    if reading.value < 0 or reading.value > reading.max_limit:
        reading.flag = 'error'
    else:
        reading.flag = 'ok'

This code checks each sensor reading and sets a flag based on whether the value is within limits.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Looping through each sensor reading once.
  • How many times: Once for every reading in the list.
How Execution Grows With Input

As the number of readings increases, the time to check flags grows directly with it.

Input Size (n)Approx. Operations
1010 checks
100100 checks
10001000 checks

Pattern observation: Doubling the readings doubles the work needed.

Final Time Complexity

Time Complexity: O(n)

This means the time to set flags grows in a straight line with the number of readings.

Common Mistake

[X] Wrong: "Checking flags is always fast and constant time no matter how many readings there are."

[OK] Correct: Each reading must be checked individually, so more readings mean more work.

Interview Connect

Understanding how work grows with data size helps you explain system behavior clearly and shows you can think about efficiency in real tasks.

Self-Check

"What if we added nested checks inside the loop for multiple conditions? How would the time complexity change?"

Practice

(1/5)
1. What does a GOOD data quality flag indicate in a SCADA system?
easy
A. The sensor is offline and not sending data.
B. The sensor data is missing or unavailable.
C. The sensor data is suspected to be incorrect.
D. The sensor data is reliable and accurate.

Solution

  1. Step 1: Understand the meaning of data quality flags

    Data quality flags classify sensor data status to help users trust or ignore readings.
  2. Step 2: Identify the meaning of the GOOD flag

    The GOOD flag means the data is reliable and accurate, suitable for use in decisions.
  3. Final Answer:

    The sensor data is reliable and accurate. -> Option D
  4. Quick Check:

    GOOD flag = reliable data [OK]
Hint: GOOD means data is trustworthy and accurate [OK]
Common Mistakes:
  • Confusing GOOD with MISSING or BAD flags
  • Assuming GOOD means sensor is offline
  • Mixing SUSPECT with GOOD data
2. Which of the following is the correct way to represent a BAD data quality flag in a SCADA system configuration file?
easy
A. flag = "BAD"
B. flag = BAD
C. flag = 'bad'
D. flag = bad

Solution

  1. Step 1: Review syntax for string assignment in configuration

    Flags are usually strings and must be enclosed in quotes to be valid.
  2. Step 2: Identify correct string syntax for BAD flag

    Using double quotes around "BAD" is correct; unquoted or lowercase without quotes is invalid.
  3. Final Answer:

    flag = "BAD" -> Option A
  4. Quick Check:

    String flags need quotes [OK]
Hint: Use quotes around string flags in configs [OK]
Common Mistakes:
  • Omitting quotes around string values
  • Using lowercase without quotes
  • Confusing variable names with string literals
3. Given the following SCADA data quality flag array: flags = ["GOOD", "SUSPECT", "BAD", "GOOD", "MISSING"], which flags indicate data that should be excluded from analysis?
medium
A. ["BAD", "MISSING"]
B. ["SUSPECT", "GOOD"]
C. ["GOOD", "SUSPECT"]
D. ["GOOD", "MISSING"]

Solution

  1. Step 1: Identify flags that mark unreliable data

    BAD and MISSING flags indicate data that is incorrect or unavailable and should be excluded.
  2. Step 2: Match these flags to the options

    ["BAD", "MISSING"] correctly lists BAD and MISSING as flags to exclude from analysis.
  3. Final Answer:

    ["BAD", "MISSING"] -> Option A
  4. Quick Check:

    Exclude BAD and MISSING data [OK]
Hint: Exclude BAD and MISSING flags from analysis [OK]
Common Mistakes:
  • Including GOOD or SUSPECT data for exclusion
  • Confusing SUSPECT as always bad
  • Ignoring MISSING data in filtering
4. You have a SCADA script that filters out BAD data using:
filtered = [d for d in data if d.flag != "BAD"]
but it still includes some BAD data. What is the likely cause?
medium
A. The data list is empty, so filtering does nothing.
B. The list comprehension syntax is incorrect and causes errors.
C. The flag comparison is case-sensitive and some flags are lowercase "bad".
D. The filter should use == instead of != to exclude BAD data.

Solution

  1. Step 1: Analyze the filtering condition

    The condition excludes items where flag equals "BAD" exactly, case-sensitive.
  2. Step 2: Identify case sensitivity issue

    If some flags are lowercase "bad", they won't match "BAD" and won't be excluded.
  3. Final Answer:

    The flag comparison is case-sensitive and some flags are lowercase "bad". -> Option C
  4. Quick Check:

    Case sensitivity causes filtering errors [OK]
Hint: Check case sensitivity in string comparisons [OK]
Common Mistakes:
  • Assuming != excludes all BAD flags regardless of case
  • Thinking list comprehension syntax is wrong
  • Using wrong comparison operator
5. You want to create a SCADA alert that triggers only when sensor data is either BAD or MISSING. Which logical condition correctly implements this?
hard
A. if flag == "BAD" and flag == "MISSING":
B. if flag == "BAD" or flag == "MISSING":
C. if flag != "BAD" or flag != "MISSING":
D. if flag == "GOOD" or flag == "SUSPECT":

Solution

  1. Step 1: Understand alert condition requirements

    The alert should trigger if the flag is BAD or MISSING, meaning either condition is true.
  2. Step 2: Choose correct logical operator

    Using 'or' checks if flag equals BAD or equals MISSING, which matches the requirement.
  3. Final Answer:

    if flag == "BAD" or flag == "MISSING": -> Option B
  4. Quick Check:

    Use 'or' to combine conditions for alert [OK]
Hint: Use 'or' to check multiple flag conditions [OK]
Common Mistakes:
  • Using 'and' which requires both flags simultaneously
  • Using negation incorrectly
  • Checking for GOOD or SUSPECT instead
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard