Earning a computer science degree exposes graduates to immense opportunities in terms of career growth and salary potential. Individuals who pursue computer science can expect lucrative careers. According to the Bureau of Labor Statistics (BLS), the 2017 median annual salary for computer and information systems managers was $139,220. In addition to generous compensation, the demand for computer science professionals outpaces most other fields.

Many employers report difficulty finding workers with the education and skills needed to fill open positions. The BLS projects the number of computer and information systems managers to increase by 12% from 2016-2026; this exceeds the projected growth for the average position in the U.S. significantly. Opportunities for computer science degree holders exist in many areas, including in the federal government, at colleges and universities, and at software publishers.

Should I Get a Bachelor's in Computer Science?

Although some people working in the field of computer science taught themselves the skills needed to succeed, earning a bachelor's degree can greatly increase your salary potential and lead to career advancement. An online bachelor's in computer science might appeal to working professionals looking to change careers, while an on-campus program might attract recent high school graduates who know they want to pursue work that requires an undergraduate degree. Earning a bachelor's in computer science also allows motivated learners to go on and pursue a master's degree in the field.

Students who earn a computer science degree gain many concrete skills, including learning how to read and write code, use programming languages and systems, and analyze algorithms. Other covered topics include data structures, compilers, operating system principles, computer system architecture, and math. Students also gain skills related to critical thinking, creativity, logic, problem solving, and analytical thinking.

Enrolling in a computer science degree program provides many other benefits in addition to what you learn in the classroom. For example, while attending school, students can develop professional connections by networking with their classmates, instructors, and internship supervisors. Additionally, as learners prepare to graduate, many programs help students find internships or offer job placement assistance.

What Can I Do With a Bachelor's in Computer Science?

Earning a computer science degree opens up a variety of career paths. A bachelor's in computer science prepares graduates to work as computer network architects, computer programmers, computer hardware engineers, and computer and information systems managers. You typically need a master's to work as a computer and information research scientist, but some opportunities do exist for individuals who hold a bachelor's degree, particularly within the federal government.

Important qualities for computer science professionals include good analytical, communication, critical-thinking, and math skills; ingenuity; logical thinking; and being detail-oriented. If you work in a specialized field, like in biomedical applications, you may also require knowledge or experience specifically related to that field. Some computer science professionals work on interdisciplinary teams, making the ability to collaborate important.

Computer and Information Systems Managers

Often referred to as IT managers or directors, these individuals coordinate various computer-related activities at organizations. They help create and meet IT goals using computer systems. This position typically requires a bachelor's degree in order to qualify for entry-level positions.

Median Annual Salary: $139,220

Projected Growth Rate: 12%

Computer Hardware Engineers

Computer hardware engineers research, design, and develop computer systems. They also test computer hardware to make sure it operates appropriately and often collaborate with software developers. They may also work in research labs that build computer models. The typical entry-level position requires a bachelor's degree.

Median Annual Salary: $115,120

Projected Growth Rate: 5%

Computer Programmers

Computer programmers write and test code, ensuring that computer applications and software programs work together. Computer programmers typically specialize in one or a few different programming languages and usually work closely with software developers. Most programmer positions require workers to hold a bachelor's degree.

Median Annual Salary: $82,240

Projected Growth Rate: -7%

Computer Network Architects

Responsible for designing and building data communication networks (e.g., wide area networks, intranets, and local area networks), computer network architects usually need at least a bachelor's degree to obtain an entry-level position. To design a successful network, these professionals also need extensive knowledge related to an organization's business plan and goals.

Median Annual Salary: $104,650

Projected Growth Rate: 6%

Computer and Information Research Scientists

Computer scientists research and solve problems in business, science, medicine, and other fields using the principles of computing. They also invent and improve computer software and hardware. These professionals can specialize in areas like programming, robotics, and data science. Although most of these jobs require a master's in computer science, some federal jobs accept applicants who only hold a bachelor's degree.

Median Annual Salary: $114,520

Projected Growth Rate: 19%

How to Choose a Bachelor's in Computer Science Program

Students should consider several program-specific characteristics to find the best schools for computer science. Keep in mind that the best computer science degree varies depending on your academic and career goals. Variables to consider include a program's length, available classes and specializations, cost, online options, location, and final project/practicum requirements.

Many undergraduate programs allow either part- or full-time study, and some schools also offer accelerated bachelor's tracks, which allow students to graduate more quickly. Consider what type of enrollment best fits your needs. Additionally, the available classes in each program may vary widely. For example, some computer science programs focus more heavily on software engineering, while others prioritize programming. Similarly, some programs allow participants to choose from numerous specializations, whereas others offer none.

Decide what skills you most want to learn and look for a program that aligns with your goals. As an example, if you know you want to pursue work as a computer programmer, make sure you choose a program that strongly emphasizes this area. You should also consider whether or not you want to complete a practicum or other professional experience; distance learners may find these types of in-person requirements inconvenient or burdensome.

Cost represents another crucial variable to consider when looking at schools. Figure out what you can afford and then compare tuition rates. The price tag on a bachelor's degree varies widely, with relatively affordable programs found at community colleges and state schools. You should also consider whether you want to attend an on-campus or online computer science program. If you plan to attend classes in person, consider the importance of a school's location.

Programmatic Accreditation for Bachelor's in Computer Science Programs

Attending a regionally accredited school ensures students that they will receive a high-quality education. Learners at accredited institutions also qualify for federal financial aid and can more readily transfer credits to other colleges and universities. The same cannot be guaranteed for students who attend an unaccredited school.

In addition to looking at regionally accredited schools, make sure that any computer science programs you consider hold programmatic accreditation. This type of accreditation indicates that a specific program meets minimum quality standards deemed important for success in the industry. The Accreditation Board for Engineering and Technology (ABET) provides accreditation for programs in computing, applied science, engineering, and engineering technology. The Computing Accreditation Commission within ABET specifically accredits computer science programs.

You can look and see which programs hold ABET accreditation by visiting this this site. If you attend a school without ABET accreditation, you might not learn certain important skills and some employers may be reluctant to hire you. You might also find yourself ineligible for admission into some master's in computer science programs.

Bachelor's in Computer Science Program Admissions

The college admissions process can vary significantly depending on what schools and programs you apply to. Typically, the more competitive the school, the more involved the admissions requirements. Most programs ask students to submit their high school and/or college transcripts and SAT or ACT test scores. Some college applications also require prospective students to submit letters of recommendation, a personal statement, and/or a description of their participation in extracurricular activities.

In some cases, you may need to complete an in-person interview with an admissions officer. Depending on the schools that draw your interest, on-campus programs typically involve a more demanding admissions process than online schools. Only you can decide how many schools to apply to, but submitting 5-8 applications is not uncommon. If you receive multiple acceptance letters, carefully consider the pros and cons of each program before making your final decision.


  • Minimum GPA: Aspiring computer science majors typically need a minimum 3.0 GPA, although especially competitive programs may require even higher GPAs. Applicants can sometimes offset a low GPA by demonstrating extensive experience with computing.

Admission Materials

  • Application: An application's length and what it asks for vary depending on the school. However, creating a CommonApp account can help students keep track of different program requirements as well as previously submitted applications.
  • Transcripts: Students coming straight from high school must submit their high school transcripts, whereas transfer students must also submit college transcripts from any school(s) they previously attended. Individuals can often request transcripts online for a small fee.
  • Letters of Recommendation: Many applications ask for 2-3 letters of recommendation. These should be filled out by respected individuals who know you well, like teachers and coaches. Be mindful of deadlines when seeking out letter writers, and make sure to ask for a recommendation several weeks in advance.
  • Test Scores: Most computer science bachelor's programs ask recent high school graduates to submit their SAT or ACT scores. The minimum acceptable scores usually match those of the school's general admission requirements.
  • Application Fee: The fee required to submit a college application varies by school, with the average fee falling around $40. However, fees at some colleges and universities cost $90 or more.

What Else Can I Expect From a Bachelor's in Computer Science Program?

Computer science program details vary based on the school. However, students can expect to follow a course of study that emphasizes programming, computer organization, and math classes (e.g., calculus, differential equations, and linear algebra). Some programs let students choose a concentration to focus more heavily on an area of particular interest.

Concentrations Offered for a Bachelor's Degree in Computer Science
Concentration Description Careers
Information Security An information security concentration teaches students about network and system weaknesses and risks. Individuals learn to create secure code and understand secure programming principles. Students also explore concepts of cyber security and learn to reverse engineer software. Programming languages explored may include C++, Python, and Java, and learners may gain experience with software tools like OpenGL, Eclipse, and Netbeans. Computer and Information Systems Manager
Artificial Intelligence A concentration in artificial intelligence teaches individuals how to apply the intelligent processes used by humans and other animals to computer-based systems. Covered topics include sensor-controlled behavior, image processing, computer learning, robot motion planning, natural language processing, and information retrieval. Artificial Intelligence Software Engineer
Computing Systems A computing systems specialization introduces learners to topics like advanced operating systems, the software development process, database systems design, and compiler design. Students learn to help organizations make their computing systems work more efficiently and effectively by drawing on skills related to information technology and business. Computer Systems Analyst
Human-Computer Interaction Specializing in human-computer interaction teaches learners the best ways to design computer software and hardware for people. Students explore concepts such as user-centered design, usability testing, information visualization, and tangible computing. This specialization may use hands-on studio classes where participants design, prototype, and evaluate computer programs. User Experience Researcher
Programming Students learn high-level programming languages as well as complex coding methods. After learning basic commands, learners move on to explore algorithms, entire structures, and operating systems design. Students also learn how to adapt operating systems to meet organizational goals. Computer Programmer

Courses in a Bachelor's in Computer Science Program

The courses offered in a computer science program differ depending on the specific school. However, most bachelor's programs require students to complete courses in computer programming, data structures, computer architecture, algorithms, and logic. See the sample classes listed below for a general idea of typical computer science classes taken at the undergraduate level.

Introduction to Software Engineering

Students explore the software lifecycle and learn about concepts like documentation, verification, requirements analysis, validation, and specification. This course may feature laboratory components where participants design and create their own software.

Programming Languages for Web Applications

This course looks at the process of building web apps and analyzes the pros and cons of various programming languages. Learners discover ways to program network and web applications using scripting languages like JavaScript and Perl. They may also learn to develop GUIs and internet programming.

Sustainability and Computing

In this class, students explore the interaction between technology and the environment, looking at ways to use computing technology to promote sustainability. Covered topics may include smart buildings and transportation systems. This discussion-based course requires learners to think critically about the impact of computing technology on society.

Secure Data Management & Web Applications

Topics covered in this course include query optimization and security, web data management, mobile data management, and continuous queries. Students complete hands-on experiences using advanced information and data management technologies. Class projects may use data management tools in the context of e-commerce or biomedical informatics.

Wide Area Networks

This course introduces learners to the emerging technology of broadband networks and teaches them to use appropriate protocols. Students may also explore technologies related to switched multimegabit data services and frame relay and learn about network traffic and its impact on network design, congestion control algorithms, and application performance objectives.

How Long Does It Take to Get a Bachelor's in Computer Science?

It takes an average of four years (~120 semester credits of coursework) to graduate from a typical bachelor's in computer science program. Students usually dedicate about half of their credits towards fulfilling general education requirements and the rest of their time concentrating on computer science-related coursework. The exact program length can vary based on numerous factors, including the number of credits you decide to take each term and your enrollment status (i.e., full time or part time).

Keep in mind that taking fewer classes per term can make it easier to juggle multiple responsibilities, but the longer you take to earn your degree the higher the total cost. Some programs also offer students the opportunity to enroll in fast-track degree pathways, allowing them to finish more courses in a condensed time frame.

How Much Is a Bachelor's in Computer Science?

Many students feel overwhelmed at the thought of paying tens of thousands of dollars for a degree, and figuring out the exact cost of an education can prove difficult. The price tag for a bachelor's in computer science varies considerably based on what program and school you choose. According to the College Board, four years of tuition at a community college costs around $14,000, while a bachelor's from a public, in-state college costs close to $40,000. If you start looking at private colleges, just one year of school costs an average of almost $35,000.

You also need to think about other costs besides tuition. For example, students may need to pay for books, other school-related fees, housing, and other living expenses. If you choose an online program, you can save some money by avoiding costs associated with commuting, parking, and/or on-campus housing. Keep in mind that few students end up paying the full-stated tuition; most learners receive help in the form of grants, scholarships, and other types of financial aid.

Certifications and Licenses a Bachelor's in Computer Science Prepares For

Cisco Certified Design Professional

Earning a CCDP certificate indicates a worker's design expertise and advanced understanding of network components and multi-layer enterprise architectures. Professionals working as systems engineers, network design engineers, and senior analysts may benefit from earning this credential. Earning the CCDP certificate also requires passing three Cisco exams: 300-101 ROUTE, 300-115 SWITCH, and 300-320 ARCH.

Microsoft Certified Solutions Developer: App Developer

Professionals earn this credential to demonstrate their qualifications to work as an app developer. It proves that an individual holds the skills necessary to build mobile and web applications and services. To earn the credential, developers first receive their MCSA certification in universal Windows platform or web applications. They must also pass an exam.

Professional Software Developer Certification

IEEE coordinates this certification, which indicates expertise in software design, software testing, and software construction. To earn this credential, an individual must pass the 100-minute, 80-question IEEE computer science exam online. They must also successfully complete two three-hour applied exam modules.

Certified Information Systems Security Professional

This certificate, offered by (ISC)2, demonstrates leadership in cyber security issues. Individuals who hold this credential know how to design, implement, engineer, and run information security programs. Eligible candidates must hold at last five years of paid work experience.

Certified Information Security Manager

Earning the CISM credential from ISACA demonstrates a worker's expertise in the area of information security management. This certificate can help current or aspiring information security managers, IT consultants, and chief information officers. To earn the certification, professionals must pass the CISM exam, adhere to ISACA's code of ethics, and agree to complete continuing education hours.

Resources for Computer Science Students

Computing Research Association - Job Announcements

CRA maintains a job board that includes many computer science positions; individuals need not hold CRA membership to view these listings.

BABEL: A Glossary of Computer Oriented Abbreviations and Acronyms

Students can consult the searchable BABEL database to look up the meaning of hundreds of computer science abbreviations and acronyms.

Teach Yourself Computer Science

Students can find a variety of helpful resources, including recommended books and videos, to learn nine subjects considered essential to computer science, including programming, computer architecture, math for CS, and databases.


Interested individuals can learn to code for free using Codeacademy. Completely online and self-paced lessons cover subjects like programming, web development, and data science.


The w3schools website represents the world's largest web developer site. It contains helpful resources that cover HTML, CSS, JavaScript, SQL, PHP, Color Picker, and Bootstrap.

Professional Organizations in Computer Science

Joining a professional organization dedicated to computer science allows students and recent graduates to take advantage of a variety of opportunities, including professional networking, access to job boards, career services, mentorship programs, and scholarships. Members may also qualify for discounted rates for annual conferences, continuing education programs, and industry publications. Additionally, students and entry-level professionals often pay a discounted membership rate.

IEEE Computer Society

With more than 60,000 members, the IEEE Computer Society represents one of the world's largest membership organization dedicated to computer science and technology. It oversees 17 scholarly journals, 13 magazines, a digital library containing 500,000 articles, and 200 technical conferences each year.

Association for Women in Computing

Founded in 1978 as one of the first professional association to represent women in computing, AWC advocates for the advancement of women in the field.

Computing Research Association

CRA encompasses more than 200 organizations that take part in computing research, including academic, industry, and governmental groups. Its mission includes enhancing innovation and education in computer science. It also advocates for the field, mentors new talent, and encourages collaboration.

Association for Computing Machinery

Founded in 1947, ACM provides leadership and promotes high standards for the field of computing. Members gain access to professional networking opportunities and continuing education courses.

Association for the Advancement of Artificial Intelligence

This nonprofit, scientific society promotes responsible research into artificial intelligence (AI). Part of its work includes training new AI professionals. Members receive discounts on conferences and opportunities for grants and career advancement.