This document describes an algorithm called the top-down greedy algorithm to solve the activity-selection problem of scheduling non-overlapping activities that have starting and finishing times. The algorithm recursively selects the activity with the earliest finishing time from the remaining activities to build up the maximum set of non-conflicting activities. It takes the starting and finishing times as inputs, starts selecting from activity i, and recursively calls itself to select from the remaining activities until no more can be added without conflicting.