An Arduino Uno-based drone in less than a 100 lines of code.
The control loop runs at less than 20 Hz. This is quite slow and causes the drone to be unstable, unless a (second order) acceleration term is included in the linear regulator.
The benefit is that the control loop takes up very few resources, allowing the microprocessor to carry out other tasks, for instance managing the wifi communication.
Having the kids program the drone is part of a wider pedagogical progression, starting out by the first building and learning to fly a small in-door drone: