Software Engineering - Developing methods for the production of large and complex software systems on time, within budget, and with few or no defects.
Computer Architecture - Designing new computer instruction sets, and combining electronic or optical components to provide powerful but cost-effective computing.
Operating Systems and Networks - Developing the basic software computers use to supervise themselves or to communicate with other computers.
Information Technology - Developing and managing information systems that support business organizations.
Internet Programming - Developing Web databases and applications.
Computer Theory - Investigating the fundamental theories of how computers solve problems, and applying the results to other areas of computer science.
Software Applications - Applying computing and technology to solve problems outside the computer field—in education or medicine for example.
Artificial Intelligence - Developing computer systems that simulate human learning and reasoning ability.
Database Design - Designing database systems to meet information needs for organizations of all sizes.