This document describes a homomorphism-based framework for systematic parallel programming with MapReduce. The framework introduces a systematic approach to automatically generate fully parallelized and scalable MapReduce programs. It provides algorithmic programming interfaces that allow users to focus on the algebraic properties of problems, hiding the details of MapReduce. The framework was implemented on top of Hadoop and evaluated on several test problems, demonstrating good scalability and parallelism. Future work could decrease system overhead, optimize performance further, and extend the framework to more complex data structures like trees and graphs.