Mathematics and engineering courses supplement a strong core of computer science courses, enabling students to design and implement software that requires complicated computations, data structures and interfaces.