paradigms in programming 3734905