With this coming semester I have some interesting options for my schedule. The following 3 classes can be interchanged within my schedule: Data Structures - Studies data abstractions (e.g., stacks, queues, lists, trees) and their representation techniques (e.g., linking, arrays). Introduces concepts used in algorithm design and analysis including criteria for selecting data structures to fit their applications. Discrete Math - Emphasizes elements of discrete mathematics appropriate for computer engineering. Topics: Logic, proof techniques, algorithms, complexity, relations, and graph theory. Advanced Engineering Calc - Extends the treatment of engineering mathematics beyond the topics covered in Calculus 3 and differential equations. Topics include non-dimensionalization, elementary asymptotics and perturbation theory, Reynold's transport theorem and extensions of Leibnitz's rule, as applied to continuum conservation equations, Hamiltonian formulations, Legendre and Laplace transforms, special functions and their orthogonality properties. I can take either one or two but not all 3; I have no clue on how to make this decision. I'm definitely curious about the Advanced Calc class but haven't had any time to look into those topics and there's no class pages or book references for it up yet. None of these courses are required for my major so I can kinda have fun with them if I choose to but I also want something important and relevant to my major. Any advice or input would be greatly appreciated. Thanks.