Agile software methodologies promote developing better software faster and have been gaining popularity in industry. However, agile methods are still unfamiliar in the academic world. While it is important to introduce agile methods to undergraduate students, we believe that having a graduate-level course in agile development is as crucial. We offer a graduate-level topic course that is dedicated to teaching agile software development while emphasizing both hands-on experience and research activities. In this course, students first work on a series of projects with real customers and then propose and conduct research on topics in agile development. The result of this approach has been well received by students and has stimulated student research interests in the area. This paper describes our experiences in offering the course.