Paradigms of Computer Programming – Fundamentals