We are developing a pattern language to guide the programmer through the entire process of developing a parallel application program. The pattern language includes patterns that help find the concurrency in the problem, patterns that help find the appropriate algorithm structure to exploit the concurrency in parallel execution, and patterns describing lower-level implementation issues. The current version of the pattern language can be seen at http://www.cise.ufl.edu/research/ParallelPatterns. In this paper, we outline the overall structure of the pattern language and present two groups of selected patterns, one group chosen from the subset of patterns that represent different strategies for exploiting concurrency once it has been identified and one group chosen from the subset of patterns that represent commonly-used computational and data structures.