In addition to what everyone else said, if you want to get super hardcore, Differential Equations and Partial Differential Equations (which are both relevant to and used in Engineering and Physics) are super helpful to some very deep cs topics like Graphics. Fourier Analysis in particular (which I learned in my partial diff eq class) is used in image processing.
The foundation class that you would need first is a Programming language, which should give you some knowledge about programming logic and language in general. Then, you have to decide which type software engineer that you would like to be such as Web, Client Application, Mobile or Server application. For example, if you want to become web software engineer, then you would need to take web foundation class of how the web site works and how to build a simple web pages. Later, you would need to decide what programming language that you could use to build more complicated web pages such as java, PHP and more. Remember, you could use multiple languages all together to build the web site. So, you could pick more than one web programming languages class to take. Once you have the programming language in mind, then you would need to take the basic, intermediate, and advance classes.
For general Computer Science I would recommend mostly math and maybe some physics.
One the math side Calculus is good but if you get a chance take some Discrete Math, Linear Algebra, Linear Programming, those courses tech concepts that are much closer tied to Computer Science than just high level Calculus in my experience.