This document provides an introduction to the Legion programming paradigm for building task-oriented applications. It describes an implementation of an n-body simulation using Legion to demonstrate its programming model. The n-body problem calculates gravitational interactions between particles. Legion defines tasks that operate on logical regions of data in parallel. It handles mapping regions to physical resources. The document outlines registering tasks, launching them, defining domains, and Legion's object-oriented approach. It also describes the computing environment used, a heterogeneous cluster, for the n-body implementation.