An abstraction simplifies (and “manages complexity”) by hiding details. Going back to Unit 3, we taught the turtle “turnRight” really means “turnLeft, turnLeft, turnLeft”. It’s much easier as a human to deal with a simple command “turnRight”, even though behind the scenes (thanks to our definition of the turnRight function), what’s really happening is “turnLeft turnLeft turnLeft”. We deal with the simple thing while really a more complex thing is happening. Also, we created that abstraction… we taught the turtle what we want it to do when we say “turnRight”.
That’s an example of managing complexity because if we hadn’t made that abstraction, we would have to give the turtle three commands. Our abstraction allows us to do the same work using just one command.
Event handlers might manage complexity because they hide whatever code is happening at a lower level to interface with the computer hardware, but that work was done by some professional developer - not the student… thus event handlers are not student-developed abstractions. The student might develop what happens when that event is triggered, but the student’s work does not result in simplifying or managing the complexity of the code.