Online Computer Science Degree Programs Directory

Welcome to, the comprehensive online resource for prospective computer science students. Our goal is to present the most authoritative and unbiased information on the field to help you make smart decisions about your education and career in computer science.

Using the Directory

Choose from more than 4,000 programs at over 1,300 schools around the country offering computer science degrees at every level of study, and join thousands of students who have already discovered the perfect program to fit their lifestyle, study habits, and career goals. To learn eveything you need to know about pursuing a computer science degree, be sure to read the guide to computer science programs below the degree directory.

Becoming a Student

I am interested in going into this field. What can you tell me about it?

This degree program is the study of the design of computers and the processes that allow them to be useful tools. Students in a this program will explore the physical parts of a computer system as well as the theory behind computer programs and applications. They will also work to improve current technology and think of new ways to use technology to our advantage.

CS draws from several disciplines like math, information technology and engineering. Students who excel in this program are well-rounded people who are intelligent, logical and imaginative. They also have excellent mathematical skills and the ability to work well individually and on teams.

A degree in this program can lead to a variety of high-paying jobs as computer programmers, software engineers and research scientists. If you enter this field, you can specialize in many concentrations including artificial intelligence, software development and computer networks and security. But you will not be able to get a job without at least a bachelors degree, so you should plan to spend a minimum of 4 years in college if you want to enter this field.

Let’s hear some other perspectives

An Interview with Hayley Elder

Hayley Elder

Student, Bachelor of Science in Computer Science, University of Phoenix

“The single best piece of advice that I can offer to a prospective student is to avoid procrastinating.”

Read the Full Interview >>

An Interview with Luke Duncan

Luke Duncan

Student, Master of Science in Computer Science, University of Michigan

“I knew that a masters degree would help me to form the kind of relationships I needed in order to start a successful career. I have pursued my masters degree with a professional rationale. My ambition has always been to find work in Silicon Valley. I have used the work I pursued during my masters degree as a means to an end.”

Read the Full Interview >>

An Interview with Todd Gaugler

Todd Gaugler

Student, Bachelor of Science in Mathematics, Computer Science, and Economics, Queens College

“I have become very passionate about it and it is a much more dynamic subject than many people would assume.”

Read the Full Interview >>


What exactly is a CS professional?

CS professionals design the architecture of computer hardware and the software programs that allow people to operate computers. Some professionals use computing theory and mathematics to create new technology. Others apply that technology by using coding languages to program computers. Although a degree in computer science can lead to many jobs, professionals can be classified into 3 broad categories:

Research Computer Scientists

Research computer scientists study computational science and theory. They create original technologies and discover more uses for existing technology. For instance, they may invent new computer languages, design the physical hardware of a computer or create artificial intelligence. They usually have a PhD and they work for universities, government agencies or corporate research and development firms.

Software Engineers

Software engineers design computer software like operating systems, business tools and computer games. They analyze the needs of computer users and build applications to meet those needs. The programs that they create rely on mathematical algorithms, which are sets of instructions that tell a computer what to do. Software engineers are categorized as applications engineers or systems engineers, depending on the type of software that they develop.

Computer Programmers

These professionals program the software and web applications that software engineers design. Programmers use a variety of coding languages like Python, C++ and Perl to convert software designs into instructions that computers can follow. They also write new code and update existing code to fix bugs.

Let’s hear some other perspectives

An Interview with Michael L. Littman

Michael L. Littman

Chairperson, Department of Computer Science, Rutgers University

“The image of the computer scientist working alone in a dark cave is not representative of reality. There is a tremendous amount of interaction in the field, especially on large software projects.”

Read the Full Interview >>

An Interview with Rohith Pottabathni

Rohith Pottabathni

Quality Assurance Engineer, Yahoo

“Above all, computer programmers should have the drive to create new things and ideas.”

Read the Full Interview >>

An Interview with Aaron McCarty

Aaron McCarty

Software Developer, Epic

“Successful students should be effective communicators with a natural aptitude for technical work.”

Read the Full Interview >>

Personality Quiz

How do I know if this would be a good fit for me?

Here is a quick quiz to help you decide if you have the personality it takes to be successful. Rate, on a scale from 1 to 5, how well each of the following statements describes you.

I like to use the latest technology.

Computer science professionals invent new technology and improve current computer systems. If you enjoy using cutting-edge technology in your daily life, you may like computer science.

I like to solve problems and puzzles.

Computer science professionals use technology to solve complex problems. If you are discouraged by complicated tasks, computer science is not the best career choice for you.

I am curious about the way machines work.

Computer science professionals explore the basic components of computer hardware and software to determine how to make computers faster and more powerful. If you like to understand the mechanical processes of machines, this subject may fascinate you.

I am careful and I pay close attention to detail.

Computer science tasks like programming require meticulous attention to detail because a single typing error can result in a software bug. If you find details trivial, you may not excel in computer science.

I work well in a group.

The development of new technology requires teamwork and cooperation. As a computer science professional, you will often work together with other computer scientists, software engineers and programmers to complete a project.

I communicate clearly and effectively.

Computer science professionals must communicate with other engineers and programmers as well as the end users who utilize their programs. You must be able to speak about technical matters with experts and the general population.

I can keep track of many things at the same time.

Computer scientists often manage several tasks simultaneously. You must be organized and efficient if you want to work in this field.

I can think in unconventional or unusual ways.

Computer science professionals design new processes and create innovative technologies. If you are excited by new inventions and ideas, you may enjoy computer science research.

I am comfortable working with numbers.

Computer science professionals use advanced mathematics to design software systems and applications. You will need to be confident about applying your mathematical skills to real-world situations to succeed in this field.

I like to learn about new concepts and ideas.

Computer technology evolves constantly. You will need to be a lifelong learner to stay current with advances in the field.

Get My Score

*Note that this is not a scientific quiz. The result is simply my rough estimate of how well I believe our personality matches that of a successful computer science professional.

By my assessment, a career in computer science is probably not a good fit for your personality. Please go to the Admissions Advisor homepage for a listing of other careers you may want to consider.

By my assessment, although a career in computer science may not be an ideal fit for your personality, if you are willing to adapt in a few areas, you can still find success in the field. Please see the list to the right for information on the areas that you may need to work on.

By my assessment, your personality is a good fit for a career in computer science. Scroll through our site to gain valuable insight into what it will take you to earn the necessary credentials.

Making the Right Choice

Is there anything else I should consider in deciding if computer science is the right choice for me?

CS vs. IT

It is important to understand the difference between the two. These subjects are related, but distinct. Both subjects involve the use of computer technology, but CS professionals take a more theoretical approach to the field than IT workers. CS professionals think about ways to make existing technology better by improving the physical components of computers and designing better software systems. They also create entirely new kinds of technology. Because they are high-level thinkers who deal with abstract mathematical concepts and computer theory, they need at least a bachelors degree to find a job.

On the other hand, IT is concerned with storing, sharing and analyzing information using computer networks, databases and the Internet. IT coursework focuses less on mathematics and more on how students can apply technology to business and communications. Examples of IT professionals are network architects, computer systems administrators, network security specialists and web developers. Some IT positions only require an associates degree.


What  professions can I choose from?

Some of the most common professions for those with a degree include:

Education Required:

Bachelors (4 years)

Average Salary:


Work Environment:

Software publishers, corporate businesses, government agencies

Job Description:

Quality assurance analysts make sure that software and web applications work smoothly before they are released to the public. They create automated processes that are designed to find mistakes in code, which can result in program errors called bugs. After checking for coding errors, quality assurance analysts report their test results to software engineers or application developers to be fixed.

Education Required:

Bachelors (4 years)

Average Salary:


Work Environment:

Software publishers, corporate businesses, government agencies, private consulting

Job Description:

Computer programmers follow the specifications of software engineers to write the code that allows software and web applications to run correctly. They use different programming languages to write these codes, including Python, Perl, Java, C++ and SQL. In addition, programmers help engineers and quality assurance analysts to identify and prevent bugs.

Education Required:

Bachelors (4 years) or masters (2 to 3 years of graduate school)

Average Salary:

$92,000 (Lowest 10% earned less than $53,000; highest 10% earned more than $136,000)

Work Environment:

Software publishers, corporate businesses, government agencies

Job Description:

Software systems engineers design computer software like operating systems, network control systems and database management systems. They begin the software systems design process by identifying the needs of a business or a group of people. Then they build computer systems to meet those needs by using mathematical algorithms that instruct computers. Finally, they oversee testing of the software system to make sure it works correctly.

Education Required:

Bachelors degree (4 years)

Average Salary:

$85,000 (Lowest 10% earned less than $54,000; highest 10% earned more than $128,000)

Work Environment:

Software publishers, corporate businesses, government agencies, private consulting

Job Description:

Web application developers are software engineers who create applications that are featured on websites, like online shopping carts, content management systems and subscription services. Web application developers analyze business needs and write technical specifications that provide computer programmers with coding instructions.

Education Required:

Doctorate (4 – 7 years of graduate school)

Average Salary:

$78,000 (Lowest 10% earned less than $37,000; highest 10% earned more than $133,000)

Work Environment:

Colleges, universities

Job Description:

Computer science professors teach classes about computer theory, advanced mathematics and information technology. They prepare course material, mentor students and assess their academic progress. Most computer science professors conduct scholarly research in addition to teaching classes.

Education Required:

Doctorate (4 – 7 years of graduate school)

Average Salary:

$98,000 (Lowest 10% earned less than $58,000; highest 10% earned more than $151,000)

Work Environment:

Software publishers, corporate businesses, government agencies, universities

Job Description:

Research computer scientists study the practice and theory that drives computing technology. They work in academic and corporate research settings to invent new computer hardware and software. They work in teams to design new applications for existing technology and also conduct independent research.

Job Outlook

What is the job outlook for professionals?

According to the Bureau of Labor Statistics, job prospects for CS professionals are extremely good. In 2008, there were more than 1,365,000 CS professionals working in the United States, including software engineers, research computer scientists and programmers. The job outlook is particularly bright for software engineers, whose prospects are expected to increase by 32% through 2018. Positions for research computer scientists are projected to increase by 24% during this time as well. In contrast, jobs for computer programmers are expected to decrease by about 3% in the same period.
Profession Employment Projected Average Growth

Average Salary Growth 2006 - 2011

Profession 2006 2007 2008 2009 2010 2011

Salary By Percentile

Profession 10th 25th 50th 75th 90th

Education Requirements

How long would it take me to become a professional?

It will take you at least 4 years to become a CS professional, but keep in mind that the time it will take depends on the specific career that you want to pursue. For instance, if you want to get an entry-level job as a computer programmer or quality assurance analyst, you will need to earn a bachelors degree, which typically takes 4 years. But if you want to develop software or web applications, you may need to gain several years of programming experience in addition to a bachelors degree. If you want to manage a team of developers, programmers or engineers, a masters degree will enhance your prospects. Masters degrees require 2 to 3 years of graduate school. And if you want to be a university professor or a research scientist, you will need to spend 4 to 7 years in graduate school so you can earn a PhD.

Areas of Study

What can I expect to learn while pursuing my education?

As a student, you can expect to grow in both knowledge and skills.


Software Engineering

Software engineeering is the development and design of new computer software like operating systems, productivity tools and web applications. Software engineering teaches the processes and protocols that engineers use to create software. Some topics that will be covered include object-oriented design, best practices for writing code, database design and systems programming.

Computer Architecture

Computer architecture refers to the structure of the physical parts of a computer, which are commonly known as hardware. This subject helps students to understand the capabilities of different hardware components and the relationship between software and hardware. It also covers general design issues like memory capacity, caches, microcoding and pipelining.

Computer Networking

Computer networking explores how computers are connected in a network using the Internet. It teaches ways to configure computers so that many users can access the same information. Knowledge of computer networking will include discussion of topics like parallel and cloud computing, Internet architecture and protocols, data security and congestion control.

Data Structure

Data structure examines the best ways to use computers to store and access large amounts of data. It teaches database management system design and ways to implement those systems in a practical setting. Specific topics considered in this course include storage structures, query optimization and web databases.

Advanced Mathematics

Computer science incorporates advanced mathematics subjects to model complex computer processes and algorithms, which tell computers what to do. Some mathematical concepts that are essential, it include calculus, algebraic proofs, statistics and probablity. It also uses principles of physics and discrete mathematics.


Programming Languages

Computer science professionals use programming languages to write code. Writing clear and concise code is a skill that requires programmers and developers to follow the accepted conventions of the industry. As a student you will learn about the philosphy of different programming languages as well as their syntax and structure.

Project Management

As a student, you will learn how to manage your time effectively as you work on projects. You will become proficient with project management tools like online calendars and spreadsheets that help you to monitor your progress. Your classes will help you to gain the ability to plan and execute projects on a large scale, like developing new software or designing a computer network.

Problem Solving

As a student, you will develop problem solving skills that let you use technology to your advantage. You will be trained to analyze problems from several perspectives so that you can decide on the best course of action. You will also learn how to spot and fix common technical issues quickly.


In your curriculum, you will develop a wide range of oral and written communication skills. For instance, you will be able to write technical reports, and user instructions and clearly present your ideas to others. In addition, you will learn how to interact with people who have a range of technical knowledge about computers, from experts to novices.

Research Methods

Your curriculum will teach you how to conduct scholarly research. You will learn to combine research that has already been performed with your original ideas to create new theories and to make technology better. Some research techniques that you will learn include observation, experimentation and statistical data anaylsis.

Licensing Information

What else should I keep in mind when considering studying this program?

Professional Certification

Some professionals choose to get certified in technical specialties like software development or widely used programming languages. Organizations like the Institute of Electrical and Electronics Engineers (IEEE) offer professional certifications after applicants pass exams that demonstrate their skills in these areas. In addition, software companies like Adobe and Microsoft offer certification in their programs. These certifications are not mandatory, but they may help your resume to stand out by proving that you are skilled in a particular area.

Questions & Answers

Select a category to find answers to your questions


What are some other resources that can help me learn more about pursuing this degree?

Association For Computing Machinery

Association of Software Professionals

Bureau of Labor Statistics

Computer Science – A Guide to Web Resources

Computing Research Association

Computer Science Teachers Association

Institute for Electrical and Electronics Engineers (IEEE) Computer Society

National Association of Programmers

Upsilon Pi Epsilon International Honor Society for the Computing and Information Disciplines

USENIX – The Advanced Computing Systems Association