En un examen de programación no te van a pedir que hagas el análisis de una situación compleja y lo implementes de manera óptima - esto sería por un lado demasiado difícil de medir objetivamente y por el otro demasiado complejo para una situación de tiempo limitado (típicamente hasta dos horas). Te piden, más bien, que hagas un programa que implemente, por ejemplo, el quicksort - De esta manera, están evaluando a la vez si aprendiste cómo funciona el quicksort y si posees la capacidad de abstracción para plasmar un algoritmo fundamental en el lenguaje de programación que estés aprendiendo. Y claro, si yo fuera el profesor, no daría demasiada importancia a que la sintaxis estuviera correcta, o a la elegancia del código... Acá hablas de -repito- la capacidad de abstracción y el conocimiento del programa.
Normalmente no te piden proyectos...
(Puntos:2)( http://www.gwolf.org/ )