Computer science is a broad field of study drawing on topics from mathematics, art, physics, probability theory, and many others. Sub-fields of computer science include graph theory, cryptography, programming languages, interface and graphics design, and many others. Furthermore, the approach to computer science can be either practical or theoretical. All these factors, as well as the student's own interests and areas of expertise must be taken into account when planning to do a computer science project.

Programming The Towers of Hanoi

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.

Creating 3D Animation

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.

Designing an E-commerce Website

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.