I am currently working on a software engineering degree. Most of the knowledge relevant to CP I have I got by trial and error, after reading many people's code and understading what they did. Do you have some recommendations of text books I can read that will help me mature my knowledge in computer science and math concepts related to competitive programming?