At my school, since Spring 2007, each Computer Science major may declare one of the following areas of emphasis:
- Computer Systems
- Software design
- Computational Science and Visualization
- Modeling and Simulation
- Internet and Information Technology
- Theoretical Computer Science
- Artificial Intelligence (AI)
Note: An area of emphasis does not replace classes required to graduate, but just structures major electives into a more coherent theme. Declaring an area of emphasis should not increase the number of credit hours you need for your degree.
In order to declare an area of emphasis, a student needs at least 12 hours of area-related courses taken as electives:
Computer Systems:
- Operating Systems
- Computer Networks
- Computer Security
- Compilers
- LSI System Design
- Distributed systems
Software design:
- Software Engineering
- Database Management
- Compilers
- Programming Languages
- Simulation and Modeling
Computational Science and Visualization:
- Numerical methods and computing
- Numerical Simulations in Science and Engineering
- Computer graphics
- Human computer interaction
Modeling and Simulation:
- Algorithms
- Algorithms for Computational Biology
Internet and Information Technology
- Web Programming
- Global Information Systems
- Database Management
- AI & the Web
Theoretical Computer Science
- Introduction to Linear Algebra
- Algorithms for Computational Biology
- Introduction to Quantum Computation
- Combinatorics
- Graph Theory
Artificial Intelligence (AI)
- Game programming
- Robotics
- Symbolic programming
- Evolutionary computation
- Human Computer Interaction
So, my question is this: Which area of emphasis do you think is the best and why?