adventure game with both a GUI and a TUI.
Things like graph exploration for maps, memory management, string parsing, software design and architecture are all found in adventure games
as puzzle problems, it's worth implementing and benchmarking various tree types. Implement from scratch a bst, trie, b-tree, avl, red-black, quadtree
Sort a collection of numbers larger than the memory of your machine.