Dipende completamente da ciò che ti interessa. Considera cosa implica lavorare su un "progetto di laurea". Implica che hai imparato i fondamenti nei tuoi corsi di livello inferiore, così come alcuni argomenti più specializzati nei corsi di livello superiore. Questo, a sua volta, implica che sei pronto a realizzare qualcosa di specializzato. Tuttavia, la ragione per cui sei "pronto ad implementare qualcosa di specializzato" non è solo perché conosci un argomento (che è parte di esso), ma anche perché sai quali argomenti trovi più interessanti.
Quindi, al punto -- quale ramo(i) dell'informatica ti interessa di più? Scopritelo, e poi pensate a quali progetti in quei campi vi sembrano più divertenti e interessanti. Poi, inizia a programmare! Qui ci sono alcune idee per iniziare (ma di nuovo, devi capirlo da solo):
- Grafica -- C'è molto spazio per progetti interessanti e stimolanti. Potreste implementare un editor di mesh, un rasterizzatore, un ray tracer, ecc. All'interno di tutte queste diverse scelte c'è molto spazio per la creatività e i metodi di ottimizzazione. In alternativa, forse ti piacerebbe aggiungere qualcosa a un progetto open source come Blender: https://www.blender.org/.
- Sistemi operativi -- Questo è un altro campo enorme. Se siete interessati ai sistemi operativi, provate a scrivere il vostro kernel. Se lo avete già fatto, miglioratelo e aggiungete alcune caratteristiche interessanti. In alternativa, ci sono un sacco di sistemi operativi open source là fuori a cui potresti contribuire.
- Apprendimento delle macchine -- Anche qui, ci sono un sacco di possibilità. Forse ti piacerebbe implementare qualche bel progetto di computer vision che coinvolge l'API di Twitter. O forse, di nuovo, ti piacerebbe contribuire ad una libreria di machine learning come OpenCV.
- Sistemi distribuiti -- Stessa storia. Pensa a progetti che troveresti interessanti da implementare (forse la tua versione di TCP?) o contribuisci a qualche progetto open source come Apache™ Hadoop.
Credo che ormai tu abbia capito. Il modo migliore per trovare un "progetto di laurea" è quello di trovare prima quale campo specializzato dell'informatica ti interessa di più, e poi implementare progetti che trovi interessanti in quel campo. Se non hai ancora preso nessuna classe di livello superiore nel tuo programma, ti incoraggio a farlo (o almeno a iniziare a leggere per conto tuo) e poi a rivedere l'idea di implementare un grande progetto di laurea quando avrai una base migliore in queste aree. Se siete come me, mentre seguite questi corsi di livello superiore, uno o due di essi vi appariranno come argomenti che amate, e la questione di cosa implementare seguirà naturalmente da lì.