Historically, the selection of a programming language for an introductory programming course has been a process consisting of faculty evaluation, discussion, and consensus. As the number of faculty, students, and language options grows, this process is likely to become increasingly unwieldy. In addition, the process lacks structure and cannot be easily replicated. The selection process will, in all likelihood, be repeated every two to three years. Providing a structured approach to the selection of a programming language would yield a more thorough evaluation of the options available and a more easily justified selection. Developing and documenting an exhaustive set of selection criteria, and an approach for the application of these criteria, will allow the process of language selection to be more easily repeated in the future. This paper presents a comprehensive set of criteria that should be considered when selecting a programming language for a teaching environment, and proposes several approaches for the application of these criteria.