Lets say a student writes a drawFish(size, R, G, B) function which can draw fish of different sizes and colors and a drawAllFish() function which calls drawFish 8 times in different location on the screen so that 8 fish are drawn, which would be the better choice to draw a rectangle around and explain how it manages complexity?
The drawFish function manages complexity because it it can be reused to draw all kinds of fish without worrying about the implementation details. But the drawAllFish function manages complexity because it calls drawFish in different locations and isolates the code for drawing fish into a single area/function call.
Do you think either of these functions would be good abstractions or just the drawFish function?