MU's Computer Science program consists of two components, which explore topics such as computer graphics, artificial intelligence, networks, software engineering, databases, human-computer interaction, game programming and parallel processing. All Computer Science majors start with the core component to gain skills that are considered fundamental to the study of computer science. This includes grounding in various aspects of programming, computer architecture, discrete mathematical structures, computational models and data structures. The second component is an elective section in which students select courses based on personal interest and career goals from various advanced topics in computer science. This allows students to tailor their coursework to their own needs, while ensuring that every student receives the same fundamental background in the canonical areas of computer science.