# ferdo R Lab — Programming Fundamentals / Programlama Nedir? — Lesson 0
# PUBLIC INSTRUCTOR KEY / AÇIK ÖĞRETMEN ÇÖZÜMÜ
# Original synthetic educational data. NOT official UCL assessment material.
# No packages required. Run in a clean R session.

scores <- c(12, 10, 14, NA, 9)
print(length(scores))               # 5
print(mean(scores))                # NA
print(mean(scores, na.rm = TRUE))  # 11.25
print(sum(!is.na(scores)))         # 4

id <- c("A", "B", "C", "D", "E")
before <- c(12, 10, 14, NA, 9)
after <- c(14, 13, 13, 15, 12)
delta <- after - before

print(data.frame(id, before, after, delta))
valid_pairs <- sum(!is.na(delta))
increased <- sum(delta > 0, na.rm = TRUE)
decreased <- sum(delta < 0, na.rm = TRUE)
paired_mean_change <- mean(delta, na.rm = TRUE)
mean_before_observed <- mean(before, na.rm = TRUE)
mean_all_after <- mean(after)
difference_unpaired_means <- mean_all_after - mean_before_observed

stopifnot(
  length(scores) == 5L,
  mean(scores, na.rm = TRUE) == 11.25,
  valid_pairs == 4L,
  increased == 3L,
  decreased == 1L,
  paired_mean_change == 1.75,
  mean_before_observed == 11.25,
  mean_all_after == 13.4,
  abs(difference_unpaired_means - 2.15) < 1e-9
)
cat("PASS: all Lesson 0 instructor numeric checks\n")
cat("Paired change mean:", paired_mean_change, "\n")
cat("Unpaired mean difference:", difference_unpaired_means, "\n")

# Interpretation: 4 paired records vs 5 posttest records;
# a difference does not establish a causal treatment effect.
