An introduction to various programming paradigms, such as object-oriented programming, functional programming and dataflow programming.
Compare different programming paradigms.
Select an appropriate programming paradigm for a given programming problem.
Write programs using a variety of different programming paradigms.
Explain how various programming paradigms have evolved over time.