Gifted Student Presentations In working with a gifted student, I would like to set up an opportunity for him to learn some material and present it to the class.  How could such an activity be structured so that the presentation would be successful for him and for the rest of the class without becoming an unreasonable time-sink for the teacher?

For context, this is in a US-based high school, and the course is in theoretical computer science (the class is given the year after AP Computer Science A).
I did what the OP is describing for all of my students during the month following the AP CS exam in the U.S. Students were given a list of potential topics to research and then present. I also gave students some things the presentation needed to include:


At least two original examples (in code)
Well formatted and commented code
References useful for learning more about this topic
Some context to explain how or why this topic is useful


Students shared their presentation with me before delivering it to the class and I didn't need to spend much time outside of class working on this.

Since students had spent a year with Java, but actually covered very little of the language and standard libraries, some of the topics given involved delving deeper:


Using Threads and Runnable to handle concurrency
The Servlet API: creating a basic web application
Pick another language on the JVM and learn enough to demonstrate it
Lower level network code in Java: UDP for a chat app
Lower level network code in Java: Sockets
Parsing XML
Parsing HTML from a web page (e.g. stripping out the barometric pressure from a weather.com)