Comment by retrac
Write something. My usual suggestions (although I am biased) would be an operating system or a compiler. Or both! When I was in school those were typical course projects in a CS program. (The program I took was more to the circuit and electronic side of it, and my final year project was to design a CPU in VHDL.)
A compiler will exercise most of the fundamentals, and in ways you're probably not too familiar with, if you primarily just do a bit of scripting or numerical computation. Areas like parsing - how do you deal with reading in arbitrarily nested recursive structures? And the abstract -- how should you structure the representation of a program internally, perhaps as a tree? And the concrete -- what opcodes does your processor accept?