Basic paradigms of programming