The classic mathematical problem of the Towers of Hanoi has practical applications in computer science and lends itself well to a programming project for students with intermediate knowledge of programming languages. The problem states that there are three rods, with some number of different sized discs placed on the left-most rod. The discs must be transported to the right-most rod, one move at a time, with the requirements that only one disc can be moved at a time, and no disc may be placed on top of a smaller disc. This problem can be illustrated physically or graphically, and the student's job then becomes to program an optimal solution--the smallest number of moves required to move the tower of discs. This can be done using any programming language that the student has learned, and may even include a graphical component that animates the solution. This project perfectly illustrates the concept of recursion, which is a very important principle in computer science and computer programming.
Students who are interested in graphic design and digital animation can try a project that involves the creation of short three-dimensional animation. Software such as 3D Studio Max works perfectly well for this kind of project, and offers the features and functionality that a professional architect or animator would likely use. The project can be very open-ended, allowing the student to be truly creative and write his or her own scrip for the animated short. A minimum run-time can be imposed, to make sure that the student gets maximum exposure to the various aspects of design and animation.
Web-design is an important practical application of computer science. Furthermore, e-commerce is a very relevant aspect of modern society and Internet use. Thus, a computer project involving the full design, configuration and launch of an e-commerce website can have practical applications for business-minded students. This project involves concepts of web interface design and back-end programming. Any number of web design tools and programming languages can be used to complete this project, although it may be beneficial to allow the students to include, in a final project write-up, an explanation for the hardware and software choices that they made. Finally, students can even collaborate with local businesses or student organizations to make sure that the e-commerce website they design will be practically used. Doing this will also give them the experience of real-world web designers who must work within the constraints of the project and the client preferences.