Depende completamente de lo que te interese. Considera lo que implica trabajar en un «proyecto de graduación». Implica que has aprendido los fundamentos en tus cursos de nivel inferior, así como algunos temas más especializados en los cursos de nivel superior. Esto, a su vez, implicaría que estás preparado para poner en práctica algo especializado. Sin embargo, la razón por la que estás «listo para implementar algo especializado» no es sólo porque sabes sobre un tema (eso es parte de él), sino también porque sabes qué temas te parecen más interesantes.
Así que, al grano — ¿qué rama(s) de la informática te interesa más? Averígualo, y luego piensa en qué proyectos de esos campos te parecen más divertidos e interesantes. Después, ¡empieza a programar! Aquí hay algunas ideas para empezar (pero, de nuevo, tienes que averiguar esto por ti mismo):
- Gráficos — Hay un montón de espacio para proyectos interesantes y desafiantes aquí. Podrías implementar un editor de mallas, un rasterizador, un trazador de rayos, etc. Dentro de todas estas opciones diferentes hay mucho espacio para la creatividad y los métodos de optimización. Alternativamente, tal vez te gustaría añadir a un proyecto de código abierto como Blender: https://www.blender.org/.
- Sistemas Operativos — Aquí’ s otro campo enorme. Si te interesan los sistemas operativos, intenta escribir tu propio kernel. Si ya lo has hecho, mejóralo y añade algunas características interesantes. Alternativamente, hay una tonelada de sistemas operativos de código abierto a los que podrías contribuir.
- Aprendizaje de máquinas — De nuevo, hay una tonelada de posibilidades aquí. Tal vez te gustaría implementar algún proyecto de visión por ordenador que implique el aprovechamiento de la API de Twitter. O tal vez, de nuevo, le gustaría contribuir a una biblioteca de aprendizaje automático como OpenCV.
- Sistemas distribuidos — La misma historia. Piensa en proyectos que te parezcan interesantes de implementar (¿tal vez tu propia versión de TCP?) o contribuye a algunos proyectos de código abierto como Apache™ Hadoop.
Creo que ya has entendido el punto. La mejor manera de encontrar un «proyecto de graduación» es encontrar primero qué campo especializado de la informática te interesa más, y luego poner en marcha proyectos que te parezcan interesantes en ese campo. Si todavía no has tomado ninguna clase de nivel superior en tu programa, te animo a que lo hagas (o al menos empieces a leer sobre ellas por tu cuenta) y luego vuelvas a considerar la idea de implementar un gran proyecto de posgrado cuando tengas una mejor base en estas áreas. Si eres como yo, a medida que tomes estos cursos de nivel superior, uno o dos de ellos te saldrán como temas que te gustan, y la cuestión de qué implementar seguirá naturalmente a partir de ahí.