I'm a freshman in a Computer Science academy. Every semester there are a lot of different classes like Discrete Math, Linear Algebra, Algorithms etc most of which I find very interesting. Unfortunatly each day has only 24 hours and I find myself unable to get a more indepth knowledge of each of those classes, beyond the basic level required to pass my exams with a good grade. Meanwhile I understand that I also need to have some concrete practial experience in a computer language or two and be able to demonstrate that I am proficient in it.Thus I am torn between studying more theoretical concepts like Math, Data Structures, Algorithms etc and creating personal projects like android applications, games etc in order to have a strong portfolio that I can later present to a possible employer.My question is: What should I prioritize, aquiring theoretical knowledge around computer science, or getting practical knowledge around a specific programming language? 
Theoretical vs Practical knowledge
skills