These include the use of undergraduates as teaching assistants, switching from an academic to a commercial computer language in introductory courses, and using contests and other methods to make these courses interesting and challenging to students from a wide range of backgrounds.