Programming Paradigms

Credits:
4
Prerequisites:

The Object-Oriented Programming (OOP) and Functional Programming (FP) paradigms have been important to software design since the dawn of information technology.  Using a variety of programming languages, students explore how these paradigms affect approaches to software design.  Topics include composition vs inheritance, higher-order functions, mutability vs immutability, map/reduce/filter, and advanced type systems.

Students will employ functional approaches in languages they are already familiar with and will also have an opportunity to explore new programming languages.