What are the recommended approaches in selecting students to work on research projects? I have seen several approaches in selecting students to work on research projects like: 


Select from the list of admitted students
Announce the job for all the students in the department and interview the top candidate
Select after teaching a course and knowing the best students


Are there any other approaches and are there any recommended ones?
Our department has a policy of matching students and faculty. The faculty write up a brief description of the project they want to pursue. The PhD coordinator meets with students to assess their skill sets and top choices for projects and a match is made. We also have a policy of switching advisers after the first year. Good collaborations usually go on past this year, others have a way of dying out. However, our department is rather small--usually between 10-15 grad students at a time.