Computer science majors study the theories and design of computing systems, software and applications and learn programming languages that allow them to create software and programs. Computer science courses cover a range of topics and often require classmates to function as a team. Projects build on knowledge gained in previous courses and have real-world applications. Courses on computer networks, programming languages, databases, web programming, data structures, compilers, computer security, software engineering and the like provide a solid foundation for a career after graduation.
The major curriculum is designed to support a variety of interests in computing. An introductory programming course teaches problem-solving using computers. Data structures, object-oriented programming and computer organization are important components of the major. Advanced courses in areas such as computer graphics, operating systems, comparative programming languages, high-performance computing, computer networks, theory of computation, computational science and team programming projects allow students to strengthen their knowledge of and abilities in the discipline.
Because mathematical understanding and logical thinking are critical for success as a computer science major, math classes on topics such as calculus, linear and abstract algebra, mathematical modeling, numerical methods, probability and statistics are keys.
The major in computer science has as its foundation the curricula recommendations of the Association for Computing Machinery (ACM) and provides the basis for graduate study and employment in computer science. These recommendations are followed by most computer science programs in the United States.
Students pursuing a Bachelor of Science in biology, chemistry, computer science, mathematics, physics or psychology can also obtain an emphasis in computational science. Similarly, majors in accounting, business economics, economics, finance or intercultural studies for business can obtain an emphasis in information management.