In this paper we develop distributed resource allocation and scheduling algorithms for the uplink of an orthogonal frequency division multiple access (OFDMA) wireless network. We consider a time-slotted model, where in each time-slot the users are assigned to subchannels consisting of groups of OFDM tones. Each user can also allocate its transmission power among the subchannels it is assigned. We consider distributed algorithms for accomplishing this, where each user's actions depend only on knowledge of their own channel gains. Assuming a collision model for each subchannel, we characterize an optimal policy which maximizes the system throughput and also give a simpler sub-optimal policy. We study the scaling behavior of these policies in several asymptotic regimes for a broad class of fading distributions.