Soy estudiante de informática en mi último año. Sé el lenguaje C, C ++ y Java (solo core). Estoy interesado en estructuras de datos y algoritmos. ¿Qué tipo de proyecto debo hacer como mi proyecto principal?

Estás interesado en las estructuras de datos, así que veamos cómo podemos usar eso.

Vamos a construir un árbol.

0. En la raíz escriba “Proyecto principal”;

1. Dibuje tantos nodos secundarios como desee y en cada uno escriba un tema que sea interesante para usted . Estadísticas, Matemáticas, Robótica, Juegos, Sitios web sociales, Aplicación móvil.

2. De cada tema dibuje tantos niños como desee y ponga en cada uno un tema para ese tema . Los juegos pueden convertirse en 2D, 3D, pacman like, tetris lo que sea. La robótica puede entrar en proyectos de mejoras para el hogar, robots autónomos, etc. Las matemáticas pueden entrar en aplicaciones DSP, solucionadores, visores de ecuaciones diferenciales, etc. Los sitios web pueden ir … ya entendiste. No te limites aquí. No pase una idea porque ” es demasiado fácil para un trabajo de diploma ” o ” es demasiado difícil para mí “. Escríbelo.

2.5 Si tiene demasiados nodos en este punto, comience a cortar algunos de ellos que no sean tan interesantes para usted. Idealmente, tendrá aproximadamente 10-25 nodos en el tercer nivel.

3. Para cada tema, busque aplicaciones similares y póngalas como niños.

4. Elija los 10 nodos más interesantes del último nivel. O 5. O 20. Cualquier número que sea cómodo para usted.

5. Para cada idea seleccionada, escriba un pequeño borrador sobre lo que desea implementar (un párrafo es suficiente).

6. Ahora, porque esto es para fines académicos, tome esta lista de ideas con sus requisitos y encuentre un maestro dispuesto a guiarlo. Discuta con él y decida cuál es el más adecuado. Hable con más maestros e intente elegir la mejor combinación de mentor de proyecto (este proceso puede variar de un país a otro; adáptese a sus propios procesos).

7. Haz un análisis detallado de lo que quieres hacer. Maqueta, requisitos, etc. Obtenga comentarios del mentor. Obtenga comentarios de profesionales que usan Internet ( todos elogian el poderoso Internet).

8. Implementar.

Además, un punto más:

No tome una idea dada por otra persona porque no se sentirá comprometido. ¡Haz algo que pueda mantenerte motivado y el resultado final te sorprenderá!

¡Buena suerte!

Dado que conoce bien C, escriba un compilador para un lenguaje ficticio que invente. Esto será tanto un buen ejercicio en el diseño del lenguaje (qué características USTED quiere en un idioma), la construcción del compilador (¡muchas estructuras de datos buenas en uso allí!), El análisis y el ensamblaje. Puede aprovechar llvm (consulte: Proyecto de infraestructura del compilador LLVM) y simplemente escribir el front-end. ¡Los mejores deseos!

En mi opinión, debe elegir un proyecto que se base en un interés personal suyo. ¿Qué es lo que le gusta hacer? ¿Hay software disponible para ayudarlo con lo que hace? Si es así, es una oportunidad para contribuir a un proyecto existente (siempre que el código fuente, o al menos las API, estén disponibles). Si no, esa es una oportunidad para crear algo nuevo.

Depende de su interés personal, de lo que haya deseado o querido hacer con las computadoras.
Siendo bueno en C / C ++, puede recoger alguna tarea de “bajo” nivel;
1. Algunas aplicaciones de red como firewall o sniffer de paquetes.
2. Traiga su propia compresión de datos o códec de medios (audio / video)
3. Widgets físicos, etc.

Todo depende de tu propia motivación, algo especial en tu mente que alguna vez quisiste llevar a la realidad.
Antes de elegir, es posible que deba consultar con su supervisor, quien estará allí para guiarlo.