CS50: Introduction to Computer Science

An introduction to the intellectual enterprises of computer science and the art of programming.

CS50x

Associated Schools

Harvard School of Engineering and Applied Sciences

Harvard School of Engineering and Applied Sciences

What you'll learn.

A broad and robust understanding of computer science and programming

How to think algorithmically and solve programming problems efficiently

Concepts like abstraction, algorithms, data structures, encapsulation, resource management, security, software engineering, and web development

Familiarity with a number of languages, including C, Python, SQL, and JavaScript plus CSS and HTML

How to engage with a vibrant community of like-minded learners from all levels of experience

How to develop and present a final programming project to your peers

Course description

This is CS50x , Harvard University's introduction to the intellectual enterprises of computer science and the art of programming for majors and non-majors alike, with or without prior programming experience. An entry-level course taught by David J. Malan, CS50x teaches students how to think algorithmically and solve problems efficiently. Topics include abstraction, algorithms, data structures, encapsulation, resource management, security, software engineering, and web development. Languages include C, Python, SQL, and JavaScript plus CSS and HTML. Problem sets inspired by real-world domains of biology, cryptography, finance, forensics, and gaming. The on-campus version of CS50x , CS50, is Harvard's largest course. 

Students who earn a satisfactory score on 9 problem sets (i.e., programming assignments) and a final project are eligible for a certificate. This is a self-paced course–you may take CS50x on your own schedule.

Instructors

David J. Malan

David J. Malan

Doug Lloyd

You may also like

CS50T

CS50's Understanding Technology

This is CS50’s introduction to technology for students who don’t (yet!) consider themselves computer persons.

CS50W

CS50's Web Programming with Python and JavaScript

This course picks up where CS50 leaves off, diving more deeply into the design and implementation of web apps with Python, JavaScript, and SQL using frameworks like Django, React, and Bootstrap.

CS50L

CS50 for Lawyers

This course is a variant of Harvard University's introduction to computer science, CS50, designed especially for lawyers (and law students).

CS50: Introduction to Computer Science

This is cs50x.

An introduction to the intellectual enterprises of computer science and the art of programming in an online course from Harvard.

Harvard John A. Paulson School of Engineering and Applied Sciences

What You'll Learn

This is CS50x , Harvard University's introduction to the intellectual enterprises of computer science and the art of programming for majors and non-majors alike, with or without prior programming experience. An entry-level course taught by David J. Malan, CS50x teaches students how to think algorithmically and solve problems efficiently. Topics include abstraction, algorithms, data structures, encapsulation, resource management, security, software engineering, and web development. Languages include C, Python, SQL, and JavaScript plus CSS and HTML. Problem sets inspired by real-world domains of biology, cryptography, finance, forensics, and gaming. The on-campus version of CS50x , CS50, is Harvard's largest course. 

Students who earn a satisfactory score on 9 problem sets (i.e., programming assignments) and a final project are eligible for a certificate. This is a self-paced course–you may take CS50x on your own schedule.

The course will be delivered via edX and connect learners around the world. By the end of the course, participants will be able to:

  • A broad and robust understanding of computer science and programming
  • How to think algorithmically and solve programming problems efficiently
  • Concepts like abstraction, algorithms, data structures, encapsulation, resource management, security, software engineering, and web development
  • Familiarity in a number of languages, including C, PHP, and JavaScript plus SQL, CSS, and HTML
  • How to engage with a vibrant community of like-minded learners from all levels of experience
  • How to develop and present a final programming project to your peers

Course FAQs

Your Instructors

David J. Malan

David J. Malan

Gordon McKay Professor of the Practice of Computer Science, Harvard John A. Paulson School of Engineering and Applied Sciences

Doug Lloyd

Senior Preceptor in Computer Science, Harvard University

Brian Yu

Ways to take this course

When you enroll in this course, you will have the option of pursuing a Verified Certificate or Auditing the Course.

A Verified Certificate costs $219 and provides unlimited access to full course materials, activities, tests, and forums. At the end of the course, learners who earn a passing grade can receive a certificate. 

Alternatively, learners can Audit the course for free and have access to select course material, activities, tests, and forums.  Please note that this track does not offer a certificate for learners who earn a passing grade.

Data Science Principles

Data Science Principles gives you an overview of data science with a code- and math-free introduction to prediction, causality, data wrangling, privacy, and ethics.

Cybersecurity: Managing Risk in the Information Age

Develop a personalized mitigation strategy for your organization’s networks, systems, and data to successfully respond to cyberattacks.

Technology Entrepreneurship: Lab to Market

Join us to learn a systematic process for technology commercialization to bring cutting-edge innovations out of the lab and into the world.

10 Best Computer Science Courses to Take in 2022

Elham Nazif

Are you looking for the best introductions to computer science? I’ve ranked the top courses available online, following a robust methodology. And they're all free to audit. You can read about it below.

But if you’re in a hurry, here are my top picks. Click on one to skip to the course details:

What is Computer Science?

The definition of computer science is almost as broad as the definition of physics. So, to say that computer science is the study of computers and computing concepts is just as 'useful' as saying that physics is the study of nature and its phenomena.

Instead, I’ll tell you the main subfields of computer science that most universities include in their syllabus.

  • Computer architecture and organization naïvely ponders: ‘How do I design a computer?’
  • Programming steps in and questions: ‘But how will the computer understand the human?’
  • Operating systems interjects: ‘Hold on, how should the human interact with the computer?’
  • Data structures and algorithms chirps in: ‘After you've figured that out, how do we store and compute data efficiently?’
  • Networking and communication waits politely before inquiring: ‘So that’s all cool, but how can we make computers talk to each other?’

You get the gist. I’m sure you’ve had one of these intriguing thoughts pop up in your mind before. Luckily, these are the questions that computer science tries to answer.

By studying computer science, you can become a better programmer. Just as a veterinarian is likely to understand animals better than the average pet owner, by studying computer science, you can get a better grasp of the features, abilities, and limitations of these awesome code-running machines that we call ‘computers’.

Course Ranking Methodology

I followed a three-step process to build this ranking:

First , let me introduce myself. I’m part of Class Central , the leading search engine for online courses. I ( @elham ) built this ranking in collaboration with my friend and colleague @manoel , following the same approach we used with some success in our previous rankings of the best Python courses and best machine learning courses . At this point, I’d say it’s a pretty robust method.

We started building this ranking by looking at our database of 50K+ online courses . We were interested in things like ratings, reviews, and course bookmarks. This allowed us to make an initial selection. So this phase was purely data-driven.

This tentative first step rapidly helped surface some of the best options available out there. Word of mouth is very effective in online learning. Good courses get noticed. And the very best gather a lot of attention, and raving reviews.

That said, reviews don’t always tell the whole story. In fact, some courses are so good at grabbing the spotlight early on that other excellent resources can go unnoticed. So the next step was to bring our personal knowledge of online education into the mix.

Second , we used our experience as online learners to evaluate each of our initial picks.

We both come from computer science backgrounds and are prolific online learners, having completed about 45 MOOCs between us. Additionally, Manoel has an online bachelor’s in computer science , and I am currently completing my foundation in computer science.

Manoel gathered the courses while I wrote the article you’re currently reading. Throughout this process, we bounced ideas off each other and made iterative improvements to the ranking until we were both satisfied with the end result.

Third , during our research, we came across courses that felt well-made but weren’t well-known. If we adopted a purely data-centric approach, we would have to leave those courses out of the ranking, if only because they had fewer enrollments and ratings.

But no. This ranking is deliberately opinionated and holistic. When we felt confident that a course was worth including, even when the course might not yet have quite as many reviews as some of its competitors, we went with our gut and included it.

We also spiced up the list by including a wide variety of computer science courses that will hopefully cater to the diverse range of learners, whether you’re a true beginner or someone with some foundations in computer science, or an interest in specific topics like math.

After going through this process — combining Class Central data, our experience as lifelong learners, and lots of editing — we arrived at our final ranking. So far, we’ve spent more than 10 hours building this ranking, and we intend to continue updating it in the future.

Course Ranking Statistics

Here are some aggregate stats about the ranking:

  • In total, the courses in this ranking accumulated over 5 million enrollments with 2 courses having over 1 million enrollments each.
  • The most popular course in the list has 3.5 million enrollments.
  • All of the courses in this ranking are either entirely free, or free to audit.
  • With 4 courses each, edX and Coursera are tied for the most represented provider in this ranking.
  • Around 480k people are following Computer Science Courses on Class Central .

Without further ado, let’s go through the top picks.

1. CS50's Introduction to Computer Science (Harvard University)

Banner-2

My first pick has to be CS50's Introduction to Computer Science , offered by Harvard University on edX. Launched on edX in 2012, CS50 is the computer science course on the internet. It is famous for its splendid production quality and its yearly curriculum updates.

It provides a succinct but comprehensive overview of what computer science is all about. Whether you are a newbie who has never heard of ‘Hello World!’, or a programmer who knows a thing or two about computers, you’ll come out of this course having learned something new.

One Thing to Note

Although the course exercises come in two versions, easy and challenging, I found that even the easy exercises can be a bit tricky. If you know nothing about programming, I’d recommend you find someone to study this course with.

Fortunately, CS50 has one of the largest and most active course communities online: check their Discord .

Or if you’re looking for a shorter, more practical course, you might want to have a look at my Python ranking , which includes some gentler on-ramps into the world of programming.

The Instructor

We can't discuss CS50 without bringing up David J. Malan , the Harvard professor that teaches the course. Rarely has an instructor been so instrumental to the success of a course.

Beyond being an excellent educator, Prof. Malan is a true entertainer, with near-perfect delivery. And when you’re tackling an academic course that may take you dozens of hours to complete, having an instructor capable of capturing the learner’s attention makes a huge difference.

So if despite a sincere desire to learn, you find yourself falling asleep while taking online courses, this might just be the course for you. Prof. Malan’s energy is contagious!

What You’ll Learn

The course begins with the premise that computer science is, at its core, problem solving. It introduces you to binary, the fundamental language of computers, and explains how sequences of 1s and 0s can somehow represent text, images, videos, and even sounds.

You’ll learn that algorithms are step-by-step instructions designed to solve a problem. The most common type of algorithms you’ll deal with throughout the course are algorithms for sorting and searching , like bubble sort, merge sort, and binary search.

You may wonder, ‘What’s the point of having many different algorithms if they all do the same thing?’. This is when you’ll learn about measuring the efficiency of an algorithm with Big O notation .

The first programming language the course teaches is the beginner-friendly language Scratch. Through block-based coding, you'll use Scratch to illustrate fundamental programming concepts like functions, conditional statements, boolean expressions, loops, and variables.

Later in the course, you’ll notice that these fundamental concepts keep coming up time and again, since they can be found in pretty much every programming language that CS50 will teach you.

The course then removes your training wheels and drags you down into the depths of low-level programming languages. By “low-level”, I don’t mean “less valuable”. In computer science, low-level programming languages are languages that are close to machine code: the closer they are to machine code, the “lower” they are.

Assembly language is as close as we get to binary, and the course will briefly discuss it. But our first deep dive into traditional programming (writing lines of code instead of arranging colorful blocks like with Scratch) will be with C, a low-level programming language where you'll manage memory by hand and implement your first data structures.

You’ll learn that computers store data in sequences of locations in memory, and how computers can locate and access data with addresses and pointers. You’ll also learn about the different ways we can create and store lists of values, like arrays, linked lists, and trees.

You’ll compare the advantages and disadvantages of each data structure. For example, hash tables can be accessed in constant time, but require mitigating the risk of data collision.

You’ll then be brought back up to the surface towards “higher-level” programming, where you’ll be able to comfortably breathe as you begin working with Python, and continue jumping from topic to topic.

You’ll explore SQL, the programming language of many databases. The final weeks of the course culminate in you building and designing an interactive website with HTML, CSS, JavaScript, and a Python framework called Flask.

How You’ll Learn

The course is ten weeks long, plus an open-ended final project that might take an extra week (or more, if you want to work on something really ambitious).

The course is recorded annually on-campus at Harvard before being launched online the following Spring. While the recording is ongoing, you might be able to join via live stream with a hundred other learners, or if you live near campus, even attend in person — though the pandemic might preclude this for the foreseeable future. Otherwise, you’ll have access to on-demand recordings on edX or via Harvard OCW .

Regarding assessments, you’ll complete ten problem sets, eight labs, and a final end-of-course project that you’ll have to design and come up with yourself or with a team. You’ll be able to code and submit these via a convenient in-browser VS Code-based editor.

CS50 Lineup

A lot of people have heard about CS50’s Introduction to Computer Science, but not many realize that there are 10 other courses under the CS50 brand. A few follow-up courses worth mentioning are:

  • Introduction to Artificial Intelligence with Python
  • Introduction to Game Development
  • Web Programming with Python and JavaScript

What’s even better: many of these courses offer a free certificate. If you’d like to know more about the CS50 courses, and how to get a free certificate, you can read Manoel's CS50 guide .

  • The course instructor David J. Malan has been teaching CS50 for 15 years , first on-campus at Harvard, and on edX since 2012 .
  • CS50 has been bookmarked around 30k times and has over 100 reviews on Class Central.
  • Every year, CS50 organizes Puzzle Day , a friendly problem-solving competition where you’ll have the opportunity to collaborate with learners worldwide.
  • CS50 is a part of both our list of most-popular courses of all time and best free courses of all time .
  • David J. Malan was the founder and chairman of Diskaster, a hard drive and memory card data recovery firm. One of the exercises in the course is a nod to his previous work .
  • CS50 is the longest course on this ranking, owing to its comprehensiveness.

If you're interested in this course, you can find more information about the course and how to enroll here .

2. Computational Thinking for Problem Solving (University of Pennsylvania)

Banner-7

My second pick would be Computational Thinking for Problem Solving from the University of Pennsylvania on Coursera.

This course focuses on the skills underlying computer science  — computational thinking.

Computational thinking is the process of breaking a problem into parts, and then coming up with a resolution method that can be carried out by a computer.

Once you’ve embraced computational thinking, you’ll be in the right mindset to tackle additional computer science courses. So you could see this course as a foundation before the foundation. That said, if your interest lies in problem solving per se rather than CS as a whole, this course should also be a great fit.

You do not need any prior experience with computer science or programming to take this course, although some basic high school mathematics would be useful.

The course covers four main topics: computational thinking, algorithms, computer architecture, and Python.

First, the course outlines the four pillars of computational thinking. You’ll begin with decomposition, breaking down a complex problem into smaller, simpler problems. Then through pattern recognition, you’ll compare the problem to other similar problems that have been solved previously.

Afterwards, during data representation and abstraction, you’ll simplify the problem even more by identifying what characteristics of the problem are important and filtering out those that are not.

The last pillar of computational thinking, algorithms, forms the second section of the course. The course defines algorithms as a set of step-by-step instructions to solve a problem. With algorithms, you can teach the computer how to solve problems without explicitly telling them precisely how. Instead, your algorithm will be able to handle a number of different cases, as long as these satisfy some preconditions.

You’ll explore a variety of algorithms, like linear and binary search. You’ll learn how to represent algorithms with flowcharts, analyze the complexity of algorithms (Big O), and calculate the number of possible solutions to an optimization problem. Lastly, you’ll compare the benefits and limitations of common algorithmic approaches to problem solving.

The third part of the course gives a brief history of computers, before settling on the computer architecture used by modern computers — the Von Neumann Architecture. 

It consists of three fundamental units: the memory, CPU, and I/O. You’ll learn how data and instructions are stored and accessed in computers as bits and bytes, and also how executing code amounts to moving pieces of data in memory and operating on it in the CPU.

In the fourth and final section, the course will instruct you on the basics of Python programming. You’ll explore iterations, classes, and debugging. And you’ll end the course by coding your own Python program, where you’ll get to implement the algorithms you learned previously into code.

The course is 4 weeks long, with each week having about 18 hours of course material. You’ll learn primarily from video lectures, and after each video there’ll be a short quiz to test your recall. There is supplementary material available on math, for those not-so-confident in their mathematical abilities.

At the end of each week, you’ll be presented with a case study where you’ll see examples of computational thinking used to solve real-life problems. Afterwards, you’ll complete a project where you’ll apply what you’ve learned. Do note that the assessments in this course are for verified learners.

  • This course is endorsed by Google , which decided to make it part of its Digital Garage, a collection of courses and resources for learners wanting to gain tech skills.
  • Penn’s Prof Susan Davidson, the course instructor, was named a Fellow of the American Association for the Advancement of Science in 2021.
  • Prof. Davidson also teaches some of the courses of Penn’s Master of Computer and Information Technology (MCIT), which is offered online through Coursera.

3. Introduction to Computer Science and Programming Using Python (Massachusetts Institute of Technology)

Banner-8

My third pick for the best computer science course is Introduction to Computer Science and Programming Using Python , offered by MIT on edX.

This course approaches the field of computer science and programming through Python. The course focuses on breadth rather than depth, giving students background knowledge on the numerous applications of computation.

So this course is similar to our first pick in that it’s a survey course: it covers a lot, but not in great detail. But it’s dissimilar in that it focuses entirely on one programming language, Python, while Harvard’s course involves multiple languages.

Depending on your goals, this focus on Python could be seen as a positive or a negative. For what it’s worth, I believe Python is an excellent first programming language.

Heads up! This course tries to mirror the MIT on-campus experience, so don’t expect it to be a cakewalk. You won’t need any prior experience with computer science or programming to take it, but you’ll need a background in high school mathematics.

The main topics the course explores are computational thinking, data structures, iteration and recursion, decomposition, abstraction, and algorithms and complexity.

You’ll be given a brief introduction to computation and computational thinking. You’ll learn what computers are, how they work, and what their limitations are.

By understanding that computers only know what you tell them (and what they can infer from what you tell them), you’ll realize that in order for the computer to accomplish a task, they need a ‘recipe’ containing a sequence of instructions they should follow. This is what computer scientists call an algorithm.

Your programming journey begins by learning Python and its basic syntax. With Python, you’ll explore concepts common to most programming languages. These include variables, conditional statements, and control flows.

Furthermore, you’ll be introduced to functions and the role they play in decomposition, abstraction, and recursion, which are concepts fundamental to problem-solving in computer science.

By then, you should be able to code simple programs that can come up with approximate solutions to difficult math equations through a guess-and-check method.

Lastly, you’ll learn about the different ways we can represent information in Python, called data structures. You’ll work with lists, tuples, and dictionaries, and understand when to use one data structure over another.

The course is 9 weeks long with an expected workload of 14 to 16 hours each week. The main mode of learning is video lectures, and the course includes plenty of activities to put your hard-earned skills into practice. You’ll also have access to a learner’s forum where you can discuss with fellow learners.

There are 3 problem sets containing challenging coding exercises that will help you solidify your knowledge. If you are a verified learner, you’ll have to complete a timed mid-term and final exam in order to receive your certificate.

  • This course has over 18k bookmarks and 120 reviews on Class Central.
  • It is the first of a two-course XSeries Program on edX. The second is Introduction to Computational Thinking and Data Science , which could make for a good follow-up.
  • One of the instructors, Professor John Guttag, leads the Data Driven Inference Group at MIT’s legendary Computer Science and Artificial Intelligence Laboratory (CSAIL).

4. Principles of Computing (Part 1) (Rice University)

Banner-4

Principles of Computing (Part 1), by Rice University on Coursera, is my fourth pick for the best computer science introduction. The course emphasizes doing rather than watching, requiring you to complete many coding assignments.

This course aims to help you step up your programming skills by teaching you computational problem solving, a skill that underlies computer science, and that was also the focus of our second pick . This will involve learning important programming practices and developing a mathematical foundation for problem solving.

To take this course, you’ll need to be comfortable with writing small (100+ lines) programs in Python, as well as have some background in high school mathematics. So this one doesn’t start from scratch, and is therefore geared toward learners that also have some basics down.

If you’re looking for a problem solving course with fewer prerequisites, you might want to have a look at our second pick .

The course includes refreshers on Python, code testing, probability and randomness, combinatorics, and function growth.

After a brief review of Python, the course will explain how to build tests, and why having tests for your Python programs can be useful.

Many programmers dislike or don’t simply bother to write tests for their code, but as one of the instructors explains, it’s a best practice worth treating as an integral part of the programming process.

Writing tests will help you save time and effort, and serves as a reusable sanity check that your program actually does what it’s supposed to do. For your first mini-project, you’ll recreate the well-known game 2048 in Python.

Then, the course moves on to the role of probability and randomness in computer science. You’ll learn how to identify unreasonable outcomes in probability, along with calculating the expected value of multiple outcomes.

For example, what’s the chance that a die would roll seven sixes out of ten tosses? And if that were to happen, to what extent could we conclude that the die is weighted — that is, that the rolls were unfair?

You’ll also see how we can use Python to simulate the probability of outcomes, a valuable tool used in statistical modeling. And for your second mini-project, you’ll work with probabilities to create an opponent that you can face in a game of Tic-Tac-Toe.

The course also touches on combinatorics, which deals with enumerations, permutations, and combinations. You’ll figure out how to calculate the total number of ways an event can play out.

This helps greatly in calculating the number of steps an algorithm would take, thereby allowing you to estimate the running time of the algorithm, and in turn, determine if the algorithm would be worth implementing. You can see why combinatorics plays a major role in password and computer security. For your third mini-project, you’ll code the familiar dice game Yahtzee .

In the final part of the course, you’ll be taught the importance of counting in solving complex problems. Counting answers the question of how long an algorithm might take to run given a task. Another name for counting you might be more familiar with is “time complexity”.

You’ll also learn about higher-order functions in Python, that is functions that take other functions as algorithms, like the map function. In your last mini-project, you’ll use these concepts to make your own version of Cookie Clicker .

The course is split into 5 weeks, with each week involving 7 to 10 hours of study. You’ll learn primarily through video lectures and graded assignments, although the course does supply supplemental notes and activities for further reading and practice.

You’ll code and submit the homework and mini-projects on their companion website CodeSkulptor , and in-browser code editor that will preempt the need of setting up a local coding environment.

  • The course has around 15k bookmarks on Class Central.
  • This course is the third of seven courses that make up the Fundamentals of Computing Specialization . Upon receiving the specialization certificate, you’ll have completed 20+ projects, including a capstone project.
  • If you’re not interested in taking a full specialization after this course, but you’d like to learn more about the course topic, as the course name implies, there’s a follow-up course: Principles of Computing (Part 2) .
  • Course instructor Prof. Scott Rixner is faculty director of two online degree programs at Rice University. So his dedication to online education extends beyond the scope of his own MOOCs.

5. Computer Science 101 (Stanford University)

Banner-5

Computer Science 101 aims to demystify the magic of computers by demonstrating that they work by following a few relatively simple patterns.

This course will help you become familiar with those patterns. It will give insights into how computers work and what their limitations are.

In addition, the course delves into networking and other major topics within CS. No prior knowledge of computer science required!

The course starts off with the fundamental equation of computers: Computer = Powerful + Stupid. Computers are powerful because they can perform billions of operations per second. But they are stupid because they need someone to tell them what to do. This is where programmers come into play.

This course uses small snippets of JavaScript to introduce you to programming and other computer science concepts. You’ll gain a grasp of programming concepts like variables, loops and iterations, conditional statements, and so on. The course later covers low-level and high-level languages, as well as compilers and interpreters.

The computer is a tool and the programmer wields the tool. Therefore, to program efficiently, it is important to understand how the tool works. The course covers many aspects of said tool, including hardware. You’ll learn about the parts that make up a computer, and look at how computers can represent different information formats.

The main format you’ll work with is images. One of the things you’ll do is “greenscreen” images as well as turn coloured images into grayscale by operating at the individual pixel level.

Another topic the course covers is computer networks, which is how computers communicate with one another. You’ll learn about the different types of networks.

You’ll study what IP addresses are and how they allow computers to locate each other. The course discusses how computers transmit information through data packets, and also the communication protocol the Internet runs on  —  TCP/IP.

The course also briefly covers a variety of other topics like databases and spreadsheets, computer security, and analog and digital data.

The course is 6 weeks long, with each week taking 4–6 hours to complete. Lessons are provided through video lectures and are supplemented with notes and assessments. However, you’ll need to be a verified learner to access the assessments.

  • The instructor acknowledges Google for supporting his early research into creating the class. I think this goes for all of us!
  • This course has 3k bookmarks on Class Central.
  • The course instructor Nick Parlante’s current interest is in CodingBat Java , an experimental online code-practice tool.

6. How Computers Work (University of London)

Banner-6

This concise course taught by the University of London on Coursera touches on a few key topics in computer science, but it is mostly interested in helping you build a foundational understanding of hardware. It’s in the title really: by the end of the course, you’ll know how computers work.

And through that understanding, you’ll also form a clearer picture of how computers can be leveraged to help solve everyday problems.

The course is just as suitable for someone wanting to build solid foundations for further study in CS, as it is for someone simply curious about how computers work and wanting to explore some key CS topics but not necessarily a deep dive.

You do not need any prior knowledge of computer science to take this course.

This course covers computer hardware, abstraction, modularity, computer networks and communication.

The course begins with abstraction — the art of drawing attention to the important details while filtering out the noise. Many disciplines rely on abstraction, and computer science does so heavily, both at the hardware and software levels.

This concept will become apparent when the course starts discussing computer hardware, like memory, CPU, and other devices. You’ll use notional machines as means for capturing these abstractions.

Afterwards, you’ll move on to another key idea: state and modularity. This will help you answer the question, ‘Why does turning off and on my computer fix most problems?’

Using notional machines, you’ll explain how computer applications function by transitioning through different states, and how modularity allows them to interact with other applications. You’ll learn how to debug stuff, a very useful skill indeed.

Moving on, you’ll learn how computers talk to one another over the Internet through networks and communication protocols. You’ll also learn about the kinds of security threats computers (and users) face, and how to protect yourself from malicious actors.

Lastly, you’ll explore basic web development. By applying your new-found knowledge of abstraction, state, and modularity, you’ll be able to clearly understand how websites work.

The course is 4 weeks long, with 10 hours worth of material per week. It consists of video lectures and quizzes to test your knowledge of the material. You’ll have the chance to share your thoughts in discussion prompts.

  • The course instructor, Prof. Marco Gillies , is the Academic Director of Distance Learning at Goldsmiths, University of London.
  • This course is an introduction to the University of London’s Online Bachelor of Computer Science , offered on Coursera.
  • It is course two out of three of the Introduction to Computer Science and Programming Specialization , with the first course being Introduction to Computer Programming .

7. CS50's Understanding Technology (Harvard University)

Banner-1-1

This is another course from the CS50 family. But unlike our first pick, which is the main CS50 course, this course is for those who work with technology everyday but don’t understand how it all works under the hood or how to solve problems when something goes wrong. And it’s also for those who don’t (yet) work with technology — most notably, computers — but would nonetheless like to understand its functioning.

The course aims to fill in the gaps in your knowledge of hardware, internet, multimedia, programming, and web development, preparing you for the technology of today and tomorrow.

This course has no prerequisites.

The course begins with an introduction to the language of computers, binary. It explains how computers use binary to represent text and other information. Then, you’ll move on to the hardware of the computer: CPU, RAM and Main Memory. You’ll learn about the functions of each of these components.

The course discusses Internet and multimedia, and the technologies underpinning them. It’ll tell you how computers can find and talk with one another. You’ll learn about the common Internet protocol TCP/IP and more.

You’ll learn about the different data representations of multimedia, like audio, images, and video. There are many file formats and compression techniques – the course will give you an overview of some of the main ones.

Next, you’ll be taught how to stay safe on the Internet. You’ll discover several ways to protect your data and privacy. This section will include lessons on cookies, passwords, two-factor authentication, encryption, and more.

You’ll continue with the basics of web development. You’ll learn how web browsers access the web with HTTP requests. Have you ever seen a 404 or 500 error when trying to visit a webpage? You probably have. Well, in this course, you’ll learn what these errors mean. A brief overview on the languages that allow us to build and style web pages, HTML and CSS, is provided.

Last by not least, you’ll discover the basics of programming. You’ll primarily use the block-based language Scratch to explore concepts common to pretty much all programming languages, like variables, expressions, loops, and so on.

Additionally, to demonstrate what an algorithm is (and more specifically the divide-and-conquer paradigm ), you’ll watch the instructor tear a phonebook into halves… I had to mention this because it is both very instructive and memorable!

The course is 6 weeks long, with each week taking 2 to 6 hours to complete, depending on your prior familiarity with the content. Each week contains at least one hour of lecture.

Regarding assessments, you’ll have to complete an assignment for each of the six topics presented in the course to earn a certificate.

  • After taking this course, you’ll be more than ready to tackle CS50, our #1 pick .
  • This course has 1.6k bookmarks on Class Central.
  • Another fact about David J. Malan, the course instructor: he is an active member of the SIGCSE , the arm of the ACM concerned with computer science education.

8. Intro to Theoretical Computer Science (Udacity)

Banner-2-1

For those who have some familiarity with programming and algorithms, and want to further their understanding of problem-solving in computer science, this rigorous but insightful course might be what you’re looking for.

Offered by Udacity, Intro to Theoretical Computer Science explores what makes a problem ‘hard’ to solve, even for a computer. Then, it shows how to reduce and simplify these ‘hard’ problems to make them easier to solve through computation.

The course covers two main areas of theoretical computer science: complexity theory and computability.

Complexity theory asks how much of its resources, like time or memory, will a computer require to solve a problem. Computability, on the other hand, asks if a computer can solve a problem at all, even when given more time and memory.

The course introduces you to a variety of real-world problems from telecommunication, bioinformatics, and finance. You will recognize what makes a problem challenging, and the value of recognizing such problems. This will prime you for understanding what NP-completeness is. Then, you’ll understand what makes a problem ‘hard’ to solve, and be able to prove it.

The rest of the course discusses what to do with the problem once we’ve proved that it is hard (or even impossible to solve).

One of the ways to overcome this obstacle is to employ efficient, intelligent algorithms. Another way is to accept that the problem may not be perfectly solvable, and instead find an approximate solution. And yet another way is to use randomness and probability to poke around and find a solution.

You’ll be able to describe and use these techniques in practical situations: the course discusses the theory but it’s also hands-on.

Lastly, you’ll move on to problems that no computer can ever solve in theory. You will learn about undecidability and recognize the limits of computability.

The course is 8 weeks long, with a total 14 hours of video lectures. Some videos have a quiz to help you practice recalling what you’ve learned. There are 7 chapters, and at the end of each chapter you will complete a problem set to put your new-found skills to good use.

Finally, there’s a summative exam at the end of the course.

  • This course has 2.2k bookmarks on Class Central.
  • One of the course instructors, Sebastian Wernicke, has spoken multiple times at TED .
  • To tackle this course, you may want to learn about algorithms first. The instructors recommend another Udacity course on algorithms as a refresher. In addition, good math foundations would be useful too. Check our picks below if needed.

9. Mathematics for Computer Science (University of London)

Banner-3

Offered by the University of London, this course introduces you to the mathematics and mathematical thinking computer scientists use in their work. What distinguishes this course from other math courses is its playfulness, with fun and interactive exercises.

More specifically, the course combines elements of algebra, analysis, and geometry — topics carefully picked to serve as the backbone of your computer science education.

The course discusses, among others, number bases, an essential topic to understand binary, and conversion between binary and other bases, such as hexadecimal. It explores numerical progressions, like the well-known Fibonnaci sequence. And it will touch on geometry and function graphing.

By the end of the course, you’ll have acquired the foundation needed to understand the math that underpins other computer science courses, and you’ll be ready to tackle more advanced mathematical topics.

The course assumes you know some high school mathematics as well as basic Python programming.

The course investigates five main topics: number bases, modular arithmetic, sequences, series, graph sketching and kinematics.

The course begins with the study of number bases. You might know that binary is the number base used by computers. But did you know that computer scientists also use hexadecimals?

You’ll cover the key concepts of place values and number systems, which will involve converting between binary, hexadecimal, and decimal, as well as adding, subtracting, and multiplying them together. Oh, a cool thing that the course teaches you is steganography, the art of hiding messages in images!

Next, you’ll cover modular arithmetic. Have you ever wondered what “modulo 7” means? You’ll learn about the usefulness of congruence and modular arithmetic operations in computer science (psst, it can be used for encryption).

You’ll identify, describe, and compute sequences of numbers and their sums. You’ll study a special family of sequences called progressions, which consists of arithmetic and geometric progressions. You’ll learn how sequences can be used to generate random numbers. Additionally, you’ll be able to tell when a series converges (meets at a point) or diverges (approaches infinity)

Lastly, the course describes how to represent and describe space numerically using coordinates and graphs. You’ll see how graphs can help us visualize and transform functions like straight lines, quadratics, cubics, reciprocals and more. An example of modeling motion will be given: the field of mathematics called kinematics.

The course is 6 weeks long, with about 40 hours worth of material. Each week comes with one or more quizzes, allowing you to learn by doing. However, you’ll need to pay for the certificate for the course autograder to mark your answers.

  • It is the third and final course of the Introduction to Computer Science and Programming Specialization .
  • Dr. Sara Santos enjoys math busking , which seeks to surprise and amuse people on the streets with performances rooted in math.

10. Mathematics for Computer Science: Essential Skills (University of Hull)

Banner-9

If you have taken a look at the previous two courses but do not have the mathematical foundations to take them yet, this course can help you with the basics.

This course is a short course on mathematics skills for computer science, offered by the University of Hull on FutureLearn.

Meant for learners starting or considering studying computer science at the university level, this course covers Venn diagrams and set theory, algebra techniques, and vectors and matrices — all fundamentals concepts ubiquitous in computer science.

The course assumes no prior mathematical knowledge. You’re starting from scratch.

Starting off with Venn diagrams and set theory, you’ll learn how “sets” (bags of objects, if you will) can be formalized and operated on. You’ll learn to reason about computations and objects of computation. Venn diagrams will help you visualize this type of reasoning.

You’ll then move on to algebra and its techniques. You’ll be given an overview of algebra (which could be described as doing math using variables instead of explicit numbers) and its use in algorithms and scientific computation. The course will teach you how to solve linear equations and quadratic equations using algebra.

The course ends with an overview of vectors and matrices. You’ll learn what vectors are, and why they are especially important in graphics programming. You’ll learn how we can represent vectors as matrices, and how to modify, transform, and invert matrices to solve complex problems.

This course is 3 weeks long, with around 3 hours of material per week. You’ll learn primarily through video material, although there are discussion forums where you can discuss problems with fellow learners.

At the end of each week, there is a quiz that’ll help you strengthen your understanding of mathematical concepts and applications.

  • The course instructor, Laura Broddle , joined the University of Hull in 2015 as a foundation math teaching fellow.
  • She also had visited a sister school in Uganda and was rated an outstanding teacher by Ofsted in 2013.

Part-time content writer for Class Central, full-time computer science student.

If you read this far, thank the author to show them you care. Say Thanks

Learn to code for free. freeCodeCamp's open source curriculum has helped more than 40,000 people get jobs as developers. Get started

Computer Science | Home

BS and BA in Computer Science Undergraduate Program Curriculum Structure

Advanced standing for cs.

All students planning to complete a Computer Science degree at UA, including transfer students, will declare a Computer Science major (Bachelor of Science degree or Bachelor of Arts degree). Students will take a series of 100/200-level Computer Science courses (foundational courses). Upon completion of the foundational courses, students’ academic records will be evaluated, and those who qualify will be offered “Advanced Standing” in the major. Enrollment in the major core courses and the majority of the upper division elective CSC courses is limited to students with Advanced Standing in the Computer Science major.

Foundational Courses and Requirements to Progress to Advanced Standing

Choose the appropriate selection below, based on when you enter/entered in the major:

For students beginning in the major before Fall 2021 (called “pre-major” prior to Fall 2023)

Foundational courses  (four courses, intended to be taken in three consecutive semesters):

All the above CSC courses except CSC 245 are offered every Fall and Spring semester. Some of these courses may also be offered in Summer (no guarantees!).

Requirements for Advanced Standing :

  • Cumulative UA GPA of 2.4 or higher
  • GPA of 3.0 or higher in best attempts at the following 3 courses, taken at UA or elsewhere: CSC 120, CSC 210, CSC 245
  • GPA of 2.0 or higher in all attempts at CSC courses (excluding GRO 1st attempts) taken at UA
  • At least two programming courses (from list below) completed at UA: CSC 110, 120, 210, 252, 317, 335, 337, 343, 346, 352, 372, 380

PLEASE NOTE: CSC 245 was offered for the final time in Summer 2022. If a student qualifies to use CSC 245 to meet the Advanced Standing (called “major admission” prior to Fall 2023) requirements, the following my be substituted: transfer work considered direct equivalency for CSC 245, MATH 243, MATH 323 or completion of CSC 244 with a C or better. There are further details below.

For students beginning in the major in Fall 2021 or later (called “pre-major” prior to Fall 2023)

Foundational courses  (five courses, intended to be taken in three consecutive semesters):

All of the above CSC foundational courses are offered every Fall and Spring semester. Some of these courses may also be offered in Summer (no guarantees!).

  • GPA of 3.0 or higher in best attempts at the following 3 courses, taken at UA or elsewhere: CSC 120, CSC 210, CSC 244

Frequently Asked Questions

How do i declare the major.

Current UA students must have a minimum 2.0 UA GPA, and must go through the Major Declaration workshop. After reviewing the workshop, students will attend a Zoom session to confirm their choice. See the  Prospective Students  website for details.

Prospective UA students may choose Computer Science as their intended major when applying to UA and, if accepted to UA, are automatically declared in the Computer Science major.

How do I progress to advanced standing? Do I have to apply?

At the end of every term (in May, August, and December/January), the Academic Services Office will review Computer Science major students who have completed their foundational coursework.  Those students who meet the requirements for Advanced Standing (see above) will be notified via email and asked to confirm their choice between a Bachelor of Arts and Bachelor of Science degree.

How many times may I attempt a CSC course?

CSC courses may be attempted twice.

Note: A student may not use transfer coursework towards foundational requirements or requirements for Advanced Standing if that student has already attempted the equivalent UA CSC course. 

I need to take CSC 245 to qualify for Advanced Standing, but it is not offered. What do I do?

Students who began in the Computer Science major before Fall 2021  (called “pre major prior to Fall 2023) are required to take CSC 245 (Introduction to Discrete Structures) as one of their pre-major courses.  This course was offered for the last time in Summer 2022.

Students who did not take (or did not pass) CSC 245 should seek to enroll in MATH 243 (if the prerequisite has been met).  If this course is not an option, the student should enroll in CSC 144 and plan to complete CSC 244 the following semester.

Prerequisites:

  • MATH 243:  requires completion of MATH 122B or 125
  • CSC 144:  requires C or higher in MATH 112
  • CSC 244:  requires C or higher in CSC 120 -and- C or higher in CSC 144

Note:   CSC 144 cannot replace CSC 245.  Only MATH 243, or CSC 244, can substitute for CSC 245.

Please contact  your CS advisor  if you have questions.

Program Fee

Computer Science majors are assessed a program fee each semester ($150 for majors, $375 for majors with Advanced Standing). The program fee helps to support the following CS resources:

  • CS Tutor Center
  • Undergraduate teaching assistants
  • Career Coordinator
  • Career Development Center
  • Career fairs

Students demonstrating financial need via submission of the FAFSA (submitted before the first day of the semester) may qualify for the program fee scholarship award. Students awarded the program fee scholarship will have the amount credited to their student account and will be notified by a CS staff member via University of Arizona email.

You are using an outdated browser. Please upgrade your browser to improve your experience.

computer science coursework

Health & Nursing

Courses and certificates.

  • Bachelor's Degrees
  • View all Business Bachelor's Degrees
  • Business Management – B.S. Business Administration
  • Healthcare Administration – B.S.
  • Human Resource Management – B.S. Business Administration
  • Information Technology Management – B.S. Business Administration
  • Marketing – B.S. Business Administration
  • Accounting – B.S. Business Administration
  • Finance – B.S.
  • Supply Chain and Operations Management – B.S.
  • Accelerated Information Technology Bachelor's and Master's Degree (from the School of Technology)
  • Health Information Management – B.S. (from the Leavitt School of Health)

Master's Degrees

  • View all Business Master's Degrees
  • Master of Business Administration (MBA)
  • MBA Information Technology Management
  • MBA Healthcare Management
  • Management and Leadership – M.S.
  • Accounting – M.S.
  • Marketing – M.S.
  • Human Resource Management – M.S.
  • Master of Healthcare Administration (from the Leavitt School of Health)
  • Data Analytics – M.S. (from the School of Technology)
  • Information Technology Management – M.S. (from the School of Technology)
  • Education Technology and Instructional Design – M.Ed. (from the School of Education)

Certificates

  • View all Business Degrees

Bachelor's Preparing For Licensure

  • View all Education Bachelor's Degrees
  • Elementary Education – B.A.
  • Special Education and Elementary Education (Dual Licensure) – B.A.
  • Special Education (Mild-to-Moderate) – B.A.
  • Mathematics Education (Middle Grades) – B.S.
  • Mathematics Education (Secondary)– B.S.
  • Science Education (Middle Grades) – B.S.
  • Science Education (Secondary Chemistry) – B.S.
  • Science Education (Secondary Physics) – B.S.
  • Science Education (Secondary Biological Sciences) – B.S.
  • Science Education (Secondary Earth Science)– B.S.
  • View all Education Degrees

Bachelor of Arts in Education Degrees

  • Educational Studies – B.A.

Master of Science in Education Degrees

  • View all Education Master's Degrees
  • Curriculum and Instruction – M.S.
  • Educational Leadership – M.S.
  • Education Technology and Instructional Design – M.Ed.

Master's Preparing for Licensure

  • Teaching, Elementary Education – M.A.
  • Teaching, English Education (Secondary) – M.A.
  • Teaching, Mathematics Education (Middle Grades) – M.A.
  • Teaching, Mathematics Education (Secondary) – M.A.
  • Teaching, Science Education (Secondary) – M.A.
  • Teaching, Special Education (K-12) – M.A.

Licensure Information

  • State Teaching Licensure Information

Master's Degrees for Teachers

  • Mathematics Education (K-6) – M.A.
  • Mathematics Education (Middle Grade) – M.A.
  • Mathematics Education (Secondary) – M.A.
  • English Language Learning (PreK-12) – M.A.
  • Endorsement Preparation Program, English Language Learning (PreK-12)
  • Science Education (Middle Grades) – M.A.
  • Science Education (Secondary Chemistry) – M.A.
  • Science Education (Secondary Physics) – M.A.
  • Science Education (Secondary Biological Sciences) – M.A.
  • Science Education (Secondary Earth Science)– M.A.
  • View all Technology Bachelor's Degrees
  • Cloud Computing – B.S.
  • Computer Science – B.S.
  • Cybersecurity and Information Assurance – B.S.
  • Data Analytics – B.S.
  • Information Technology – B.S.
  • Network Engineering and Security – B.S.
  • Software Engineering – B.S.
  • Accelerated Information Technology Bachelor's and Master's Degree
  • Information Technology Management – B.S. Business Administration (from the School of Business)
  • View all Technology Master's Degrees
  • Cybersecurity and Information Assurance – M.S.
  • Data Analytics – M.S.
  • Information Technology Management – M.S.
  • MBA Information Technology Management (from the School of Business)
  • Full Stack Engineering
  • Web Application Deployment and Support
  • Front End Web Development
  • Back End Web Development

3rd Party Certifications

  • IT Certifications Included in WGU Degrees
  • View all Technology Degrees
  • View all Health & Nursing Bachelor's Degrees
  • Nursing (RN-to-BSN online) – B.S.
  • Nursing (Prelicensure) – B.S. (Available in select states)
  • Health Information Management – B.S.
  • Health and Human Services – B.S.
  • Psychology – B.S.
  • Health Science – B.S.
  • Healthcare Administration – B.S. (from the School of Business)
  • View all Nursing Post-Master's Certificates
  • Nursing Education—Post-Master's Certificate
  • Nursing Leadership and Management—Post-Master's Certificate
  • Family Nurse Practitioner—Post-Master's Certificate
  • Psychiatric Mental Health Nurse Practitioner —Post-Master's Certificate
  • View all Health & Nursing Degrees
  • View all Nursing & Health Master's Degrees
  • Nursing – Education (BSN-to-MSN Program) – M.S.
  • Nursing – Leadership and Management (BSN-to-MSN Program) – M.S.
  • Nursing – Nursing Informatics (BSN-to-MSN Program) – M.S.
  • Nursing – Family Nurse Practitioner (BSN-to-MSN Program) – M.S. (Available in select states)
  • Nursing – Psychiatric Mental Health Nurse Practitioner (BSN-to-MSN Program) – M.S. (Available in select states)
  • Nursing – Education (RN-to-MSN Program) – M.S.
  • Nursing – Leadership and Management (RN-to-MSN Program) – M.S.
  • Nursing – Nursing Informatics (RN-to-MSN Program) – M.S.
  • Master of Healthcare Administration
  • MBA Healthcare Management (from the School of Business)
  • Business Leadership (with the School of Business)
  • Supply Chain (with the School of Business)
  • Back End Web Development (with the School of Technology)
  • Front End Web Development (with the School of Technology)
  • Web Application Deployment and Support (with the School of Technology)
  • Full Stack Engineering (with the School of Technology)
  • Single Courses
  • Course Bundles

Apply for Admission

Admission requirements.

  • New Students
  • WGU Returning Graduates
  • WGU Readmission
  • Enrollment Checklist
  • Accessibility
  • Accommodation Request
  • School of Education Admission Requirements
  • School of Business Admission Requirements
  • School of Technology Admission Requirements
  • Leavitt School of Health Admission Requirements

Additional Requirements

  • Computer Requirements
  • No Standardized Testing
  • Clinical and Student Teaching Information

Transferring

  • FAQs about Transferring
  • Transfer to WGU
  • Transferrable Certifications
  • Request WGU Transcripts
  • International Transfer Credit
  • Tuition and Fees
  • Financial Aid
  • Scholarships

Other Ways to Pay for School

  • Tuition—School of Business
  • Tuition—School of Education
  • Tuition—School of Technology
  • Tuition—Leavitt School of Health
  • Your Financial Obligations
  • Tuition Comparison
  • Applying for Financial Aid
  • State Grants
  • Consumer Information Guide
  • Responsible Borrowing Initiative
  • Higher Education Relief Fund

FAFSA Support

  • Net Price Calculator
  • FAFSA Simplification
  • See All Scholarships
  • Military Scholarships
  • State Scholarships
  • Scholarship FAQs

Payment Options

  • Payment Plans
  • Corporate Reimbursement
  • Current Student Hardship Assistance
  • Military Tuition Assistance

WGU Experience

  • How You'll Learn
  • Scheduling/Assessments
  • Accreditation
  • Student Support/Faculty
  • Military Students
  • Part-Time Options
  • Virtual Military Education Resource Center
  • Student Outcomes
  • Return on Investment
  • Students and Gradutes
  • Career Growth
  • Student Resources
  • Communities
  • Testimonials
  • Career Guides
  • Skills Guides
  • Online Degrees
  • All Degrees
  • Explore Your Options

Admissions & Transfers

  • Admissions Overview

Tuition & Financial Aid

Student Success

  • Prospective Students
  • Current Students
  • Military and Veterans
  • Commencement
  • Careers at WGU
  • Advancement & Giving
  • Partnering with WGU

Bachelor of Science

Online Computer Science Degree

3rd Party Certifications and Program Accreditation

Linux Professional Institute logo

An ABET-Accredited Online Computer Science Degree That Prepares You for a Dynamic Career

Earn your bachelor’s degree in computer science from WGU and  increase your earning potential , job security, and opportunities for advancement. This degree prepares you to design, develop, and optimize systems that will meet industry needs, and gives you the opportunity to earn multiple  industry-recognized certifications .

Designed with input from industry experts, the ABET-accredited B.S. Computer Science degree program at WGU provides a solid foundation for the most  in-demand skills :

  • Architecture and systems
  • Data structures
  • Computer theory
  • Version Control

computer science coursework

You can earn while you learn with this information technology degree.  Top technology certifications , such as Linux and Axelos, are  built into the CS degree program  and do not add time or additional costs—but they do add to your résumé as soon as you've earned them, even before you complete your degree!

60% of graduates finish within 

WGU lets you move more quickly through material you already know and advance as soon as you're ready. The result: You may finish faster.

*WGU Internal Data

Tuition per six-month term is

Tuition charged per term—rather than per credit—helps students control the ultimate cost of their degree. Finish faster, pay less!

Average salary increase

WGU Computer Science graduates report an average salary increase of $17,691 after completing this degree program.

Ready to Start Your WGU Journey?

Next Start Date: {{startdate}}

Start Dates the 1st of Every Month

Computer Science Courses

Program consists of 38 courses

At WGU, we design our curriculum to be timely, relevant, and practical—all to help you show that you know your stuff.

Earning an online ABET-accredited bachelor’s degree in Computer Science, designed by industry experts, combines theoretical depth and technical know-how. This program enhances the practical knowledge you have gained through experience and certifications. The experts who make up our IT Program Council know exactly what it takes for an online degree program to help you be successful in the field of computer science.

This program focuses on the skills you need to become a linchpin in your organization. In addition to core IT skills, the program focuses on algorithms and data structures, artificial intelligence and robotics, database and information retrieval, human-computer communication, numerical and symbolic computation, and more. Start earning your degree online today.

The B.S. Computer Science degree program is an all-online program that you will complete by studying and working independently with instruction and support from WGU faculty. You will be expected to complete at least 12 competency units each 6-month term. (One course is typically 3 or 4 units.)

Computer Architecture introduces students to concepts and characteristics of organization and architecture applied to modern computer systems including performance, processor, memory, input/output, and multiprocessors to optimize system design, performance, and efficiency.

Data Structures and Algorithms I covers the fundamentals of dynamic data structures, such as bags, lists, stacks, queues, trees, and hash tables with their associated algorithms. This course discusses object-oriented design and abstract data types as design paradigms. The course emphasizes problem-solving and techniques for designing efficient, maintainable software applications. Students will implement simple applications using the techniques learned.

Data Structures and Algorithms II explores the analysis and implementation of high-performance data structures and supporting algorithms, including graphs, hashing, self-adjusting data structures, set representations, and dynamic programming. The course also introduces students to NP-complete problems. The course discusses how to use Python techniques to implement software solutions for problems of memory management and data compression. This course has two prerequisites: Data Structures and Algorithms I and Discrete Math II.

Introduction to Artificial Intelligence explores the foundational principles and practices of artificial intelligence (AI), machine learning, and robotics. The course prepares students to analyze relationships, build agents, and create models relevant to AI problems. The prerequisites for this course are Introduction to Probability and Statistics as well as Data Structures and Algorithms II.

The Computer Science Capstone course allows the student to demonstrate their application of the academic and professional abilities developed during the BSCS program. The capstone challenges students to integrate skills and knowledge from all program domains into one project.

Introduction to IT examines information technology as a discipline and the various roles and functions of the IT department as business support. Students are presented with various IT disciplines including systems and services, network and security, scripting and programming, data management, and business of IT, with a survey of technologies in every area and how they relate to each other and to the business.

Linux Foundations prepares learners for the LPI Linux Essentials certification, and is an introduction to Linux as an operating system as well as an introduction to open-source concepts and the basics of the Linux command line. Learners will gain skills in identifying the fundamentals of open-source software and to develop resources for data access and security.

This course covers operating systems from the perspective of a programmer, including the placement of the operating system in the layered application development model. Primarily, OSs provide memory management, task scheduling, and CPU allocation. Secondarily, OSs provide tools for file storage/access, permission control, event handling, network access, and cross-process interaction. OSs also provide tools for debugging problems within a single process or within groups of programs. There are no prerequisites for this course.

Web Development Foundations introduces students to web design and development using HTML, XML, and Cascading Style Sheets (CSS), the foundational languages of the web. This course also covers how to troubleshoot problems using developer tools and integrated development environments commonly employed in web development. There are no prerequisites for this course. 

Business of IT - Applications examines Information Technology Infrastructure Library (ITIL®) terminology, structure, policies, and concepts. Focusing on the management of information technology (IT) infrastructure, development, and operations, learners will explore the core principles of ITIL practices for service management to prepare them for careers as IT professionals, business managers, and business process owners. This course has no prerequisites.

IT Leadership Foundations is an introductory course that provides students with an overview of organizational structures, communication, and leadership styles specific to information technology in organizations. It also introduces students to some of the power skills that help make successful IT professionals, including time management, problem solving, and emotional intelligence. Students in this course explore their own strengths and passions in relation to the field. There are no prerequisites for this course.

Data Management Foundations offers an introduction in creating conceptual, logical and physical data models.  Students gain skills in creating databases and tables in SQL-enabled database management systems, as well as skills in normalizing databases. No prerequisites are required for this course

Data Management - Applications covers conceptual data modeling and introduces MySQL. Students will learn how to create simple to complex SELECT queries, including subqueries and joins, and how to use SQL to update and delete data. Topics covered in this course include exposure to MySQL; creating and modifying databases, tables, views, foreign keys and primary keys (FKs and PKs), and indexes; populating tables; and developing simple Select-From-Where (SFW) queries to complex 3+ table join queries. The following course is a prerequisite: Data Management - Foundations.

Advanced Data Management enables learners to extract and analyze raw data. Skillful data management allows organizations to discover and explore data in ways that uncover trends, issues, and their root causes. In turn, businesses are better equipped to capitalize on opportunities and more accurately plan for the future. As organizations continue to extract larger and more detailed volumes of data, the need is rapidly growing for IT professionals who possess data management skills. The skills gained in this course include performing advanced relational data modeling as well as designing data marts, lakes, and warehouses. This course will empower learners with the skills to build business logic at the database layer to employ more stability and higher data-processing speeds. Learners will gain the ability to automate common tasks to summarize and integrate data as they prepare it for analysis. Data Management - Foundations is a prerequisite for this course.

Software Engineering introduces the concepts of software engineering to students who have completed the core courses in programming and project management. The principles build on previously acquired concepts, switching the emphasis from programming simple routines to engineering robust and scalable software solutions. This course does not cover programming, but it provides an overview of software engineering processes and their challenging nature, focusing on the need for a disciplined approach to software engineering. A generic process framework provides the groundwork for formal process models. Prescriptive process models such as the Waterfall Model and Agile Development are included. This course also introduces the elements and phases of software engineering, including requirements engineering, design concepts, and software quality. There are no prerequisites for this course.

This course lays the foundation for understanding terminology, principles, processes, and best practices of information security at local and global levels. It further provides an overview of basic security vulnerabilities and countermeasures for protecting information assets through planning and administrative controls within an organization. This course has no prerequisites.

Back-End Programming introduces students to creating back-end components of a web application with the support of framework packages. This course also teaches students how to implement database functionality in a web application and how to create web services. This course requires intermediate expertise in object-oriented programming and the Java language.

Java Fundamentals introduces you to object-oriented programming in the Java language. You will create and call methods, design Java classes, and other object-oriented principles and constructs to develop software that meets business requirements. This course requires foundational knowledge of programming including variables, type, program flow and debugging.

Java Frameworks builds object-oriented programming expertise and introduces powerful new tools for Java application development. Students will execute exception handling, Java frameworks, and other object-oriented principles and constructs to develop a complete application including a user interface. This course requires foundational knowledge of object-oriented programming and the Java language.

Advanced Java refines object-oriented programming expertise and skills. You will implement multithreaded, object-oriented code with the features of Java necessary to develop software that meets business requirements. Additionally, you will determine how to deploy software applications using cloud services. This course requires intermediate expertise in object-oriented programming and the Java language.

Software Design and Quality Assurance applies a QA focus to every phase of the software development life cycle. This course investigates best practices for quality analysis, quality planning, and testing strategies as they pertain to the everyday practice of software development. Students will come to understand how their work fits into the bigger picture: how QA, testing, and code-writing practices interact within specific process models; the potential impact of new code on existing code or on other applications; the importance of usability and the influence users have on the ultimate success of an application. Students will explore test plans, test cases, unit tests, integration tests, regression tests, usability tests, and test and review tools.

Scripting and Programming - Applications for undergraduates explores the various aspects of the C++ programming language by examining its syntax, the development environment, and tools and techniques to solve some real-world problems.

Version control is critical to maintaining software and enabling scalability solutions. A best practice for any programming project that requires multiple files uses version control. Version control enables teams to have collaborative workflows and enhances the software development lifecycle. This course introduces students to the basics of publishing, retrieving, branching, and cloning. There are no prerequisites for this course.

Scripting and Programming - Foundations introduces programming basics such as variables, data types, flow control, and design concepts. The course is language-agnostic in nature, ending in a survey of languages, and introduces the distinction between interpreted and compiled languages. Learners will gain skills in identifying scripts for computer program requirements and in using fundamental programming elements as part of common computer programming tasks. Learners will also gain an understanding of the logic and outcome of simple algorithms.

Network and Security - Foundations introduces learners to the basic network systems and concepts related to networking technologies. Learners will gain skills in applying network security concepts for business continuity, data access, and confidentiality, and in identifying solutions for compliance with security guidance.

This is Introduction to Physical and Human Geography, a three-module course that addresses the question of what geography really is in today's complex world; how migration affects—and has been affected by—geography; and one of the biggest present problems related to geography: climate change. Because the course is self-paced, you may move through the material as quickly or as slowly as you need to, with the goal of demonstrating proficiency in the five competencies covered in the final assessment. If you have no prior knowledge of this material, you can expect to spend 30–40 hours on the course content.

Welcome to Composition: Successful Self-Expression! In this course, you will focus on four main topics: professional writing for a cross-cultural audience, narrowing research topics and questions, researching for content to support a topic, and referencing research sources. Each section includes learning opportunities through readings, videos, audio, and other relevant resources. Assessment activities with feedback also provide opportunities to check your learning, practice, and show how well you understand course content. Because the course is self-paced, you may move through the material as quickly or as slowly as you need to gain proficiency in the seven competencies that will be covered in the final assessment. If you have no prior knowledge or experience, you can expect to spend 30-40 hours on the course content. You will demonstrate competency through a performance assessment. There is no prerequisite for this course and there is no specific technical knowledge needed.

Health, Fitness, and Wellness focuses on the importance and foundations of good health and physical fitness—particularly for children and adolescents—addressing health, nutrition, fitness, and substance use and abuse.

Ethics in Technology examines the ethical considerations of technology use in the 21st century and introduces students to a decision-making process informed by ethical frameworks. Students will study specific cases related to important topics such as surveillance, social media, hacking, data manipulation, plagiarism and piracy, artificial intelligence, responsible innovation, and the digital divide. This course has no prerequisites.

American Politics and the U.S. Constitution examines the evolution of representative government in the United States and the changing interpretations of the civil rights and civil liberties protected by the Constitution. This course will give candidates an understanding of the powers of the branches of the federal government, the continual tensions inherent in a federal system, the shifting relationship between state and federal governments, and the interactions between elected officials and the ever-changing electorate. This course will focus on such topics as the role of a free press in a democracy, the impact of changing demographics on American politics, and the debates over and expansion of civil rights. Upon completion of the course, candidates should be able to explain the basic functions of the federal government, describe the forces that shape American policy and politics, and be better prepared to participate in America’s civic institutions. This course has no prerequisite.

Welcome to Introduction to Communication: Connecting with Others! It may seem like common knowledge that communication skills are important, and that communicating with others is inescapable in our everyday lives. While this may appear simplistic, the study of communication is actually complex, dynamic, and multifaceted. Strong communication skills are invaluable to strengthening a multitude of aspects of life. Specifically, this course will focus on communication in the professional setting, and present material from multiple vantage points, including communicating with others in a variety of contexts, across situations, and with diverse populations. Upon completion, you will have a deeper understanding of both your own and others’ communication behaviors, and a toolbox of effective behaviors to enhance your experience in the workplace.

This is a Global Arts and Humanities course that contains three modules with corresponding lessons. This course is an invitation to see the world through the humanities, examine the humanities during the Information Age, and explore the global origins of music—essentially questioning what makes us human, and how people are connected across culture and time. Each module includes learning opportunities through readings, videos, audio, and other relevant resources. Assessment activities with feedback also provide opportunities to practice and check learning. With no prior knowledge or experience, a learner can expect to spend 30-40 hours on the course content.

Technical Communication introduces skills in editing professional communications, evaluating the impact of professional etiquette in digital environments, and in creating artifacts that are persuasive, informational, and research-based. The course also introduces skills in delivering multimedia presentations using professional verbal communication skills.

Applied Probability and Statistics is designed to help students develop competence in the fundamental concepts of basic statistics including: introductory algebra and graphing; descriptive statistics; regression and correlation; and probability. Statistical data and probability are often used in everyday life, science, business, information technology, and educational settings to make informed decisions about the validity of studies and the effect of data on decisions. This course discusses what constitutes sound research design and how to appropriately model phenomena using statistical data. Additionally, the content covers simple probability calculations, based on events that occur in the business and IT industries. No prerequisites are required for this course.

This course guides candidates to apply theoretical concepts of calculus to real-world situations, demonstrating a developing mathematical mindset. This course focuses on limits, derivatives, integrals, and differential equations; it also prepares students for Discrete Mathematics. Prerequisites may include an entrance exam that assesses pre-calculus skills, or readiness; alternatively, completion of pre-calculus within the past 3 – 5 years.

Discrete Mathematics I helps candidates develop competence in the use of abstract, discrete structures fundamental to computer science. In particular, this course will introduce candidates to logic and proofs; Boolean algebra and functions; set theory; finite and infinite sequences and series; and relations, graphs, and trees. The course emphasizes applications in computer science. Calculus I is a prerequisite for this course.

Discrete Mathematics II addresses abstract, discrete, computational methods used in computer science. In particular, this class introduces searching and sorting algorithms; big-O estimates; number theory and cryptography; recursion and induction; counting and advanced counting techniques; discrete probability; and modeling computation. This course emphasizes applications in computer science. Discrete Mathematics I is a prerequisite for this course.

This course provides students an introduction to using the scientific method and engaging in scientific research to reach conclusions about the natural world. Students will design and carry out an experiment to investigate a hypothesis by gathering quantitative data. They will also research a specific ecosystem using academic sources and draw conclusions from their findings.

Capstone Project

Special requirements for this program

At the end of your program, you will complete a capstone project that represents the culmination of all your hard work—a project that allows you to take what you’ve learned and apply it to a real-world situation, proposing a solution to an actual issue faced in an actual place of business. 

Skills For Your Résumé

As part of this program, you will develop a range of valuable skills that employers are looking for. 

  • Analyzed the objectives, scope, and organizational impact of software systems, providing valuable insights.
  • Implemented a process to create and maintain software source code to achieve goals, ensuring efficient and well-organized codebases.
  • Java (Programming Language): Created an object-oriented program using Java, demonstrating strong programming skills.
  • Software Development: Specified a software development lifecycle plan that meets project requirements, leading to successful project execution, on-time delivery, and high-quality software products.
  • SQL (Programming Language): Manipulated data with structured query language (SQL) statements, enabling effective data retrieval and management.
  • Software Engineering: Collaborated with developers to determine the optimal software design, fostering effective teamwork, and ensuring that software solutions are well-designed, efficient, and user-friendly.

“I truly enjoyed my experience with, and time at, WGU. I appreciate the innovative approach to education making it competency-based. Especially compared to a traditional university that would rather I instead pointlessly sit in a class for 6 months even if I am already competent in the areas the class is aiming to educate me in. My mentor was also amazing and helped me power through the program at the pace I expected. Couldn't have done it without him. Literally can't recommend WGU enough!”

—Steven Christensen B.S. Computer Science

WGU vs. Traditional Universities Compare the Difference

Traditional Universities

AVG. cost For 3RD PARTY IT CERTIFICATIONS

Included with your tuition cost

TUITION STRUCTURE

Per credit hour

Flat rate per 6-month term

Schedule and wait days or even weeks to meet with one of many counselors

Simply email or call to connect with your designated Program Mentor who supports you from day one

Scheduled time

Whenever you feel ready

Professor led lectures at a certain time and place

Courses available anytime, from anywhere

TIME TO FINISH

Approximately 4 years, minimal acceleration options

As quickly as you can master the material, typically less than 3 years

TRANSFER CREDITS

Few accepted, based on certain schools and specific courses

A generous transfer policy that is based on your specific situation

*The cost of valuable industry certification exams can range from $150 to $400. At WGU, we offer vouchers for certification exams, so the cost is included in your tuition price. Students may have to pay additional fees for membership to complete the certification requirements.

computer science coursework

Affordability

WGU tuition is charged per six-month term, not per credit. That means if you want to move faster through the online computer science degree program, you'll pay less.

computer science coursework

On Your Schedule

No class times, no assignment deadlines. You are in charge of your learning and schedule. You can move through your courses as quickly as you master the material, meaning you can graduate faster.  

computer science coursework

Entirely Online

The computer science bachelor's degree at WGU is 100% online, which means it works wherever you are. You can do your coursework at night after working at your full-time job, on weekends, while you're traveling the world or on vacation—it's entirely up to you.

Accredited, Respected, Recognized™

The flexibility you need. The respect you deserve. Earn a degree and IT certifications at the same time with WGU. Boost your résumé and showcase your talents to impress employers and set yourself apart from the competition.

ABET Computing Accreditation Commission

IT CERTIFICATIONS

3rd Party Computer Science Certifications Included

Industry certifications in this degree program includes a Linux certification, as well as the AXELOS ITIL® Foundation certification.    The cost of these certifications is included in your tuition , helping you save money as you enhance your skills. Earning certifications before you’ve even finished your degree gives you the knowledge, skills, and credentials that will immediately boost your résumé.

  • ITIL®*^ Foundation Certification

*Subject to vendor availability. ^ITIL® is a registered trade mark of AXELOS Limited, used under permission of AXELOS Limited. All rights reserved.

  • Linux Essentials

COST & TIME

An Affordable CS Degree

By charging per six-month term rather than per credit—and empowering students to accelerate through material they know well or learn quickly—WGU helps students control the ultimate cost of their degrees. The faster you complete your program, the less you pay for your degree.

A College Degree Within Reach

There is help available to make paying for school possible for you:

computer science coursework

The average student loan debt of WGU graduates in 2022 (among those who borrowed) was less than half* the national average.

computer science coursework

Most WGU students qualify for financial aid, and WGU is approved for federal financial aid and U.S. veterans benefits. 

computer science coursework

Many scholarship opportunities are available. Find out what you might be eligible for.

* WGU undergraduate students have approximately half the debt at graduation compared to the national average, according to the Institute for College Access and Success (2022).

FLEXIBLE SCHEDULE

A Different Way to Learn: Degree Programs Designed to Fit Your Life—and All the Demands on Your Time

Professional responsibilities. Family obligations. Personal commitments. At WGU, we understand schedules are tight and often unpredictable for adult students. That’s why we offer a flexible, personalized approach to how education should be. No rigid class schedules. Just a solid, career-focused teaching program that meshes with your current lifestyle. You'll be challenged. You'll work hard. But if you commit yourself and put in the hours needed, WGU makes it possible for you to earn a highly respected degree as a busy working adult.

"Online classes were great. Sometimes I would have difficulty on a subject and was able to promptly contact my instructor for further help. Scheduling a phone call was also easy.”

—Lehi Toskin B.S. Computer Science

computer science coursework

CAREER OUTLOOK

Computer Scientists Are in High Demand

The field of computer science is rapidly expanding into some truly exciting areas, including artificial intelligence, robotics, intelligent systems, and human-computer interaction . Increase your earning potential, boost your résumé with valuable credentials , and find a career you love with the help of a computer science degree.

According to the National Center for Education Statistics, there are almost 10 times more U.S. computing jobs open than there were students who graduated with a computer science degree in 2015. When you’ve completed WGU’s online Bachelor of Science in Computer Science degree program, you’ll find yourself in demand because of the skills, knowledge, and certifications you’ve gained. Stand out from the competition and become a vital player on a team with the help of the right program.

Return on Your Investment

On average, wgu graduates see an increase in income post-graduation.

Average income increase from all degrees in annual salary vs. pre-enrollment salary. Source:  2023 Harris Poll Survey  of 1,655 WGU graduates.

Survey was sent to a representative sample of WGU graduates from all colleges. Respondents received at least one WGU degree since 2017.

The market for computer and information research scientists is projected to grow 21% through 2031.

—U.S. Bureau of Labor Statistics

Learn About Careers for Computer Science Graduates

Some of the job titles a graduate of this computer science bachelor’s degree program are qualified for include:

  • Information Manager
  • Data Engineer 
  • NLP Scientist 
  • Software Engineer
  • Computer Vision Engineer 
  • Business Intelligence Developer
  • Machine Learning Specialist 
  • Application Developer
  • Algorithm Engineer 
  • Computational Linguist 
  • Security Engineer
  • Computer Vision Engineer

WGU Grads Hold Positions With Top Employers

Admissions requirements unique to computer science.

Students must be able to use key Calculus principles, rules, and applications while in the B.S. Computer Science program. Students must meet the following admission requirements for admittance to this program:

1.    Possess a high school diploma or its equivalent.

2.    Demonstrate readiness through completion of  one   of the following:

  • Option 1 : Submit transcripts documenting completion of college-level coursework with a minimum of 2.75 GPA or higher, AND successful and verifiable completion of a pre-calculus course from a WGU approved third-party provider with a grade “C” or better.
  • Option 2 :   A high school GPA of 3.0, or higher, AND a B grade, or better, in a high school honors, IB, or AP level advanced mathematics course.

If no previous Pre-Calculus course has been completed by the time of application, students can complete this course through WGU Academy , prior to matriculation. 

NOTE: You do not need to take the ACT or SAT to be admitted to this program.  Learn why we don't require these tests .

computer science coursework

Get Your Enrollment Checklist

Download your step-by-step guide to enrollment.

computer science coursework

Get Your Questions Answered

Talk to an WGU Enrollment Counselor.

Transfer Credits

Get added support and flexibility as you start your degree  take a course or two at your pace before committing to a full degree program. strengthen your study habits, gain essential learning skills and, best of all, each completed course counts toward your degree requirements. .

Learn More about Pathways to Starting

Questions about Computer Science at WGU

  • General IT Program Questions
  • Computer Science Program Questions

What if I can't meet the eligibility requirements to enroll in the IT program I am interested in?

You should speak with an Enrollment Counselor. WGU can often provide advice or resources to help a prospective student fulfill enrollment prerequisites.

Why are certifications and other prerequisites required?

When you enroll in a WGU degree program, our goal is to see you through to graduation. Admission requirements are designed to increase your likelihood of success. Years of data and experience with the nontraditional students WGU serves have shown us how various types of academic and professional experience can be highly important in helping a student persist to graduation. Industry certifications are one of many ways a student can meet eligibility.

Why doesn't WGU accept certifications that are older than five years?

WGU has an obligation to our graduates—and their current and future employers—to ensure WGU alumni have mastered the most up-to-date, current competencies and skills needed in the workplace. Recency of certifications helps us ensure that students have demonstrated competency in skills as they are needed in today's working world.

Is this program truly "at your own pace"?

As a full-time student, you will be required to maintain a minimum pace of 12 competency units (CUs) per term for undergraduate programs or 8 CUs per term for graduate programs. However, there is no maximum speed—once you complete a course, you move immediately to the next, and you complete a course not by waiting for the syllabus, the professor, or the rest of the class. You progress by learning the material and proving it—so you can move through your coursework at the speed of your own learning and experience.

If there aren't classes or lectures, what role do Instructors play?

Instructors are highly educated, experienced experts in the subject matter of a course. Unlike in a traditional university where going to class means listening to an instructor lecture while you take notes and try to learn in a group setting, WGU's Instructors provide one-on-one instruction and support when you need it—tailoring the instruction to your precise needs when you need it. Instructors also provide additional resources, lead topical discussions in online communities, and find countless other ways to bring a specific course to life for students.

What is computer science?

Computer science is the study of computers, systems, networks, and servers. Computer science analyzes the performance of computer hardware and software. Computer scientists design and analyze algorithms, programs, and operations of computers.

What can I do with a degree in computer science?

There are many job opportunities available for those who have a degree in computer science, including:

  • Data scientist
  • Software tester
  • Web developer
  • Systems analyst
  • Business analyst
  • Product manager
  • Network architect
  • Software engineer
  • Computer engineering
  • Machine learning
  • Network architecture

Is computer science hard?

Computer science can be a challenging degree and career path. It involves learning about lots of coding, which can be like another language. It also involves understanding complex network systems and programs. The world of computer science is unique and can be foreign for some. But for many, the reason they love computer science is because something clicks and makes sense. If you enjoy languages, math, science, and computers, computer science will likely be a challenging but exciting degree.

What is needed for a computer science degree?

A computer science degrees should cover important topics that will prepare you for your future. In order for a computer science degree to be successful and relevant it should include scripting, programming languages, computer architecture, network fundamentals, and more.

The University

For students.

  • Student Portal
  • Alumni Services

Most Visited Links

  • Business Programs
  • Student Experience
  • Diversity, Equity, and Inclusion
  • Student Communities

What You Need to Know About Becoming a Computer Science Major

Computer science majors are strong logical thinkers and problem solvers who use computers and computational processes to build websites, mine data and more.

Becoming a Computer Science Major

Cropped shot of a IT technician working on his laptop while standing inside of a server room

Getty Images

Students in a computer science major enter the dynamic world of technology, studying topics like artificial intelligence, software design and computer graphics. By the time majors complete their degrees, they will have the skills to examine complex problems with computer tools.

What Is a Computer Science Major?

Computer science is a major for problem-solving students who want to learn how to use computers and computational processes to build websites, program robots, mine data and more. Computer science majors may go on to master’s or doctorate programs in the field, and they can work in research and industry. Students will gain experience with the theory and practice of computer science as they explore algorithms, programming languages and operating systems, for example.

In classes, majors may apply their learning to topics like computational finance, robotics and network security. Undergraduates may be able to access internships and research opportunities through their programs.

Computer science major vs. computer engineering major: What’s the difference?

Computer science and computer engineering are separate computing majors that both study the hardware and software of computer systems. Computer science, with its deep foundation in mathematics, focuses on the theory behind programming, computation and operating systems.

Computer engineering is the study of engineering applied to computers and computer systems. While a computer engineering major is rooted in the practical use and development of computers, a computer science major teaches students how to design operating systems, for example, that run on the machines computer engineers create.

Common Coursework Computer Science Majors Can Expect

Computer science majors must study calculus to earn their degrees. Other relevant math courses include statistics and linear algebra. Introductory computer science classes cover topics like algorithm design, computer organization and abstract data types. After students develop a strong foundation in the major, they can move on to more complicated courses related to data visualization, neural networks and cryptography, among other subjects.

At some schools, students may choose to pursue either a Bachelor of Arts or a Bachelor of Science in computer science. The B.A. contains fewer required classes and may be more relevant for students who plan to work in another field after college. Many degree programs make it possible for students to combine computer science with another discipline, like architecture, electrical engineering or molecular biology. Students interested in research can seek out opportunities with faculty members, develop independent projects and look into relevant coursework.

How to Know if This Major Is the Right Fit for You

Strong logical thinkers excited by the idea of entering a challenging field might think about majoring in computer science. If you’d be eager to contribute to innovative research that boosts cybersecurity, creates virtual reality or trains machines, computer science may be the right fit for you.

Even if you don’t see yourself becoming a researcher, a computer science degree could still be a good choice. Career paths in the field span industries from fashion to information technology, with jobs for computer scientists available in data science, software engineering, application development and more. If you’re an adaptable problem solver or hope to become one, you may want to consider courses in computer science.

Pick the Perfect Major

Discover the perfect major for you based on your innate wiring. The Innate Assessment sets you up for success by pairing you with majors, colleges and careers that fit your unique skills and abilities.

computer science coursework

What Can I Do With a Computer Science Major?

Computer science has applications in all kinds of industries, including transportation, entertainment and medicine. With so many possible landing places, you can likely find your niche.

A major in computer science can open positions in data analytics, web development and consulting, for example, and jobs are available at companies ranging in size from small startups to large corporations. The major’s focus on programming skills prepares students to work as a computer system analyst, for example, who helps organizations use IT systems more efficiently. For a career path like this that works with more advanced systems, a student may benefit from earning a master's in computer science or a master's in computer information systems . Those interested in the systems used to store, organize and secure data can use their knowledge of programming languages to become a database administrator.

A computer science program can also prepare students to become information security analysts, who use software to protect organizations’ network security. A certification, like the CompTIA Security+ certification, can give prospective IT professionals’ resumes a boost, as it certifies you have the necessary skills to work in a cybersecurity career.

Those interested in becoming computer programmers can gain certifications in specific products and programming languages, and some companies require that computer programmers are certified in the areas in which they work, according to the Bureau of Labor Statistics. Those just entering the field may want to consider a program that doesn't have any prerequisites, such as the Certified Entry-Level Python Programmer or the C Programming Language Certified Associate Certification .

Students can also consider graduate study in the field. There are master’s options for those interested in industry positions as well as doctorate paths for those more likely to pursue research. When hiring a software developer – a role involving the planning and designing of software based on user needs – employers may prefer candidates who have a master’s degree.

Job opportunities in computer science are on the rise, so majors should have plenty of options. See the table below for jobs computer science majors can consider after earning a bachelor's or master's degree.

Data is sourced from the U.S. Bureau of Labor Statistics .

What Computer Science Majors Say

“I would say don't hesitate to take your first comp sci class. I began in my sophomore year, and even though many peers were ahead, the introductory course was interesting and manageable, and it is fun to tackle those projects. Give it a shot.”

– Cathy Chen , a junior at Colgate University, class of ‘25, a computer science and economics major, and a member of the Colgate Coder club.

“Being a computer science student can definitely be challenging at times, but it’s a worthwhile challenge. It’s a journey of exploring and problem solving. There’s a level of satisfaction that comes from exploring complex algorithms, developing innovative software, and understanding the intricate world of technology. Some advice I would give to new students is to not be afraid to explore new fields they’re interested in and to not be scared of making mistakes. I would also say to stay curious and keep exploring as technology is advancing every day. In my experience with student organizations like Women In Cybersecurity and Girls Who Code, these organizations are very helpful in encouraging minorities such as women to continue their studies in the field.”

– Daniyah Taimur , a junior at the University of Maryland, class of ‘25, a computer science and economics major, and a mentor of Girls Who Code UMD.

Schools Offering a Computer Science Major

Check out some schools below that offer computer science majors and find the full list of schools here that you can filter and sort.

2024 Best Colleges

computer science coursework

Search for your perfect fit with the U.S. News rankings of colleges and universities.

College Admissions: Get a Step Ahead!

Sign up to receive the latest updates from U.S. News & World Report and our trusted partners and sponsors. By clicking submit, you are agreeing to our Terms and Conditions & Privacy Policy .

Ask an Alum: Making the Most Out of College

You May Also Like

Protests boil over on college campuses.

Lauren Camera April 22, 2024

computer science coursework

Supporting Low-Income College Applicants

Shavar Jeffries April 16, 2024

computer science coursework

Supporting Black Women in Higher Ed

Zainab Okolo April 15, 2024

computer science coursework

Law Schools With the Highest LSATs

Ilana Kowarski and Cole Claybourn April 11, 2024

computer science coursework

Today NAIA, Tomorrow Title IX?

Lauren Camera April 9, 2024

computer science coursework

Grad School Housing Options

Anayat Durrani April 9, 2024

computer science coursework

How to Decide if an MBA Is Worth it

Sarah Wood March 27, 2024

computer science coursework

What to Wear to a Graduation

LaMont Jones, Jr. March 27, 2024

computer science coursework

FAFSA Delays Alarm Families, Colleges

Sarah Wood March 25, 2024

computer science coursework

Help Your Teen With the College Decision

Anayat Durrani March 25, 2024

computer science coursework

Southern New Hampshire University

Online Students

For All Online Programs

International Students

On Campus, need or have Visa

Campus Students

For All Campus Programs

Michael Richards standing in his cap and gown after graduating with an online computer science degree with a concentration in software engineering.

Online Computer Science Degree Bachelor's Program (BS)

Clock Icon

Build a future in computer science

  • $330/credit (120 total credits)
  • Transfer up to 90 credits
  • Median annual salary of $127,260 for software developers 1
  • Accredited by NECHE
  • Learn Python, Java and C++
  • Use industry-standard software development and testing tools

Computer Science Degree Overview

Gain the skills you need to enter one of the nation's fastest-growing fields with your online Bachelor of Science (BS) in Computer Science from SNHU.

SNHU's online degree program employs industry-standard software development with popular programming languages such as Python, Java and C++. You can further expand your toolbox with experience in full-stack development and cloud integration using JavaScript, NoSQL and Amazon Web Services (AWS).

Armed with these skills, along with fluency in today's most widely used programming languages, you'll be proficient with software employers use – giving you a critical advantage that can help advance your career.

Aligned with industry standards: SNHU's online CS degree program employs industry-standard software development and testing tools like Eclipse, OpenGL, Cucumber with Maven and Junit testing.

Technology resources: SNHU provides cloud-based virtual environments in some courses to give you access to the technology you need for your degree – and your career. Learn more about our virtual environments .

Checklist Icon

What You'll Learn

  • Software project planning
  • Portfolio creation and management
  • Agile software methodologies
  • Full-stack development
  • Security mindset

Laptop Icon

How You'll Learn

At SNHU, you'll get support from day 1 to graduation and beyond. And with no set class times, 24/7 access to the online classroom, and helpful learning resources along the way, you'll have everything you need to reach your goals.

Concentration Options

Data analysis build structured databases, explore big data and learn how to clean data in snhu’s online bachelor of science (bs) in computer science with a concentration in data analysis. according to the u.s. bureau of labor statistics, job prospects for software developers are projected to grow 25% through 2032  – well above the national average. 1 armed with a specialized cs degree in data analysis, candidates can gain additional skills to help them stand out in an exciting and competitive field. the concentration in data analysis introduces various functions of a data analyst, including creating database environments, learning regression analysis and using tools and technologies for analysis. you’ll have the option to explore topics of interest including big data and data validation. if you're interested in a career in data science, you may also want to explore our full data analytics degree online  program. courses may include: structured database environments emerging technologies and big data data validation: quality and cleaning request info apply now project management for stem become a project management expert while learning the ins and outs of computer science and software development with snhu's online  bachelor of science (bs) in computer science with a concentration in project management for stem . the project management institute (pmi) ® predicts that 25 million new project professionals are needed by 2030. 2 along with these numbers, and the projection that jobs in the it and computer science fields will grow at record numbers in the coming years, there's a great need for qualified project managers who understand the complex world of computer science. the project management for stem concentration provides a focused study of the methodologies and tools necessary for managing projects effectively. emphasizing business processes, goals and techniques, you’ll develop the skills of an experienced project manager by creating detailed project plans for real scenarios. if you're seeking a more business-focused program, you may also be interested in our online project management degree  concentration in business administration. courses may include: project management resource estimating and scheduling adaptive project management request info apply now information security gain a fundamental overview of the basics of computer networking and security with snhu's online bachelor of science (bs) in computer science degree with a concentration in information security. in the information security concentration, you’ll learn about the interconnectivity of computer systems while exploring the fundamentals of computer networking. gain familiarity with foundational cybersecurity policies, procedures, best practices and security planning within the it field. explore how legal and human factors influence the development of information security strategies. if you're interested in a career in information security, you may also want to explore our full online cybersecurity degree program. courses may include: computer systems security computer networking cybersecurity foundations request info apply now software engineering learn the fundamental concepts and principles of software engineering – a systematic approach used to develop software on time, on budget and within specifications – with a bachelor of science (bs) in computer science with a software engineering concentration from snhu . according to the u.s. bureau of labor statistics, job prospects for software developers are projected to grow by 25% through 2032  – well above the national average. 1 armed with a specialized computer science degree in software engineering, candidates can gain additional skills to help them stand out in an exciting and competitive field. the online software engineering degree  concentration introduces concepts, techniques and principles of software design and development. exploring user interface (ui) and user experience (ux) concepts and techniques, this concentration emphasizes user-centricity and contemporary techniques. you’ll learn approaches to reverse engineer code, develop secure code and test code. courses may include: ui/ux design and development secure coding software reverse engineering request info apply now if (typeof accordiongroup === "undefined") { window.accordiongroup = new accordion(); } accordiongroup.init(document.getelementbyid('47e19f8ebb934a2994e35ff50e610f97')); { "@context": "http://schema.org", "@type": "videoobject", "name": "is a computer science degree worth it", "description": "https://www.snhu.edu/online-degrees/bachelors/bs-in-computer-science “i got hired the same month that i graduated,” said jef dewitt, a graduate of snhu’s online computer science program. “i landed a fully remote, full-stack developer position.” whether you’re new to the field or looking to build your resume, southern new hampshire university’s online bs in computer science degree offers a perfect pathway to advance your career. plus, with some of the lowest online tuition rates in the nation, flexible class schedules and an entire team of support—from admissions and advising to student financial services—you’ll have everything you need to help you reach the finish line. “snhu empowers you to build the future you want,” dewitt said. “you just have to get started.” visit snhu.edu to learn more about our online bs in computer science degree. 00:00 - why earn a computer science degree 00:36 - why snhu 01:28 - graduating from snhu 01:57 - career outcome", "thumbnailurl": "https://i.ytimg.com/vi/shnrn6kpwuk/default.jpg", "uploaddate": "2022-10-12t23:00:11z", "duration": "pt2m33s", "embedurl": "https://www.youtube.com/embed/shnrn6kpwuk", "interactioncount": "5381" } earn your computer science degree online at snhu.

Whether you’re new to the field or looking to build your resume, Southern New Hampshire University’s online BS in Computer Science degree offers a perfect pathway to advance your career.

Computer Science Career Outlook

Earning a bachelor's in computer science will also help prepare you for jobs across a number of different industries and organizations.

Michael Richards with text Michael Richards

“Now I get to completely change my career. Instead of just making a living, I get to do something I’m passionate about," Richards said.

Our online computer science degree helps you position yourself for roles including:

Software Developer

Be the inspiration behind the next software programs and applications. A bachelor's in computer science can give you the skills you need to learn the programming languages essential for success in the job.

Systems Analyst

Develop the knowledge that lets you create more efficient systems, networks and protocols. Your BS in Computer Science prepares you to work with clients and get to the root of their technology issues.

Software Tester

Seek out bugs and defects in software before larger audiences use your product. An online bachelor's in computer science can position you to join a team that understands the importance of quality assurance.

Full-Stack Developer

Take on both front-end and back-end development when you earn your computer science bachelor's degree. Master techniques and the newest technologies with the skills you'll acquire.

Dr. Francis J. Manning III, adjunct computer science faculty and academic partner

"Computer science is enabling technologies that provide the foundation for advancement across all industries," said Dr. Francis J. Manning III , adjunct faculty and academic partner at SNHU. "These technologies support automation, information security, data analytics and all of the necessary capabilities that enable other industries to continue to advance."

Job Growth and Salary

Prospects for software developer occupations appear promising in the coming years. According to the U.S. Bureau of Labor Statistics, this increased demand is due to a growing need for new mobile-friendly applications, as well as innovative software in the health and medical insurance industries.

Growth Icon

According to the U.S. Bureau of Labor Statistics, the need for software developers is expected to grow much faster than average – about 25% through 2032. 1 For those looking to break into the field, the BLS also notes that most workers will need a bachelor's degree at the entry level. 1

Salary Icon

Although salaries can vary by region and responsibility, the Bureau of Labor Statistics found that software developers earned a median annual salary of $127,260 in 2022. 1

Understanding the Numbers When reviewing job growth and salary information, it’s important to remember that actual numbers can vary due to many different factors — like years of experience in the role, industry of employment, geographic location, worker skill and economic conditions. Cited projections do not guarantee actual salary or job growth.

Start Your Journey Toward an Online Computer Science Degree

Why snhu for your computer science degree flexible with no set class meeting times, you can learn on your schedule and access online course materials 24/7. affordable as part of our mission to make higher education more accessible, we’re committed to keeping our tuition rates low. in fact, we offer some of the lowest online tuition rates in the nation. prior coursework could also help you save time and money. snhu’s transfer policy  allows you to transfer up to 90 credits toward your bachelor's degree and 45 credits for an associate degree from your previous institutions—that means you could save up to 75% off the cost of tuition. you could also save time and money by getting college credit for previous work experience , or by taking advantage of military discounts and employer tuition assistance if available to you. respected founded in 1932 , southern new hampshire university is a private, nonprofit institution with over 160,000 graduates across the country. snhu is accredited by the new england commission of higher education (neche), a regional accreditor, which advocates for institutional improvement and public assurance of quality.  recently, snhu has been nationally recognized for leading the way toward more innovative, affordable and achievable education: u.s. news & world report named snhu the 2021 most innovative university in the north and one of the nation's "best regional universities" awarded the 21st century distance learning award for excellence in online technology by the united states distance learning association (usdla) a $1 million grant from google.org to explore soft skills assessments for high-need youth network at southern new hampshire university, you'll have access to a powerful network of more than 300,000 students, alumni and staff that can help support you long after graduation. our instructors offer relevant, real-world expertise to help you understand and navigate the field. plus, with our growing, nationwide alumni network, you'll have the potential to tap into a number of internship and career opportunities. 93.6% of online students would recommend snhu (according to a 2022 survey with 17,000+ respondents). discover why snhu may be right for you . admission requirements expanding access to quality higher education means removing the barriers that may stand between you and your degree. that’s why you can apply at any time and get a decision within days of submitting all required materials: completed free undergraduate application prior transcripts, which we can retrieve at no cost to you test scores are not required as part of your application acceptance decisions are made on a rolling basis throughout the year for our 6 (8-week) undergraduate terms . how to apply if you’re ready to apply, follow these simple steps to get the process going: complete a free undergraduate application submit any additional documents required work with an admission counselor  to explore financial options  and walk through the application process if you have questions or need help filling out your application, call 1.888.387.0861 or email [email protected] . if (typeof accordiongroup === "undefined") { window.accordiongroup = new accordion(); } accordiongroup.init(document.getelementbyid('abfb28b9ac7c4e0f9650bec8b9da61ae')); courses to prepare you for your career.

Dr. Sharon Kibbe , Associate Dean of STEM programs at SNHU

"As a part of their coursework, students will develop a digital portfolio of artifacts to demonstrate their technical skills to prospective employers."

Computer Science Courses & Curriculum

SNHU's computer science program is designed to help you gain the skills you need to succeed in the modern workforce — with a career-focused curriculum, affordable tuition and the flexibility you need to fit your degree into your busy life.

.b{fill:#21386d;}.c{fill:#21386e;stroke:#21386e;stroke-linecap:round;stroke-linejoin:round;stroke-width:.17px;}

120 Credits

.b{fill:#21386d;}.c{fill:#21386e;}

8-Week Terms

.st0{fill:none;stroke:#21386E;stroke-width:4;stroke-linecap:round;stroke-miterlimit:10;}

100% Online

.st0{fill:none;stroke:#0A3370;stroke-width:5;stroke-miterlimit:10;} .st1{fill:none;stroke:#0A3370;stroke-width:5;stroke-linecap:round;stroke-miterlimit:10;} .st2{fill:none;stroke:#0A3370;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;} .st3{fill:none;stroke:#093471;stroke-width:5;stroke-linecap:round;stroke-miterlimit:10;} .st4{fill:none;stroke:#0A3370;stroke-width:5;stroke-linejoin:round;stroke-miterlimit:10;} .st5{fill:#0A3370;} .st6{fill:none;stroke:#093471;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;} .st7{fill:none;stroke:#093471;stroke-width:5.6167;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;} .st8{fill:none;stroke:#093471;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;} .st9{fill:none;stroke:#093471;stroke-width:5.0059;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}

No Set Class Times

Students enrolled in the online computer science degree program at Southern New Hampshire University will have the opportunity to develop critical technical and professional skills through work on authentic, collaborative, industry-specific projects, as well as through the exploration of emerging tools, technologies, and environments in the field of computer science.

SNHU graduate Derald Wise talking on his cellphone while working at a laptop computer.

The program curriculum will help you gain a solid understanding of fundamental programming techniques, algorithms and data structures, as well as the mathematical computation and quantitative reasoning skills that underpin the work done in the field of computer science.

Instructors with real-world experience in their field will help you build skills you can use immediately in your career. Plus, you'll create a portfolio that showcases your work.

SNHU's BS in Computer Science program includes:

Degree-Specific Courses

The courses in this program prepare the learner for a career in software with relevant and emerging topics in the software industry, such as industry-standard programming languages and tools, operating systems, systems architecture and design, algorithms and data structures, software security concepts, agile team development, mobile and full-stack development. You'll gain the experience required to develop professional programs using the full software team development process with career-focused experience that employers expect.

General Education

All undergraduate students are required to take general education courses , which are part of SNHU's newly redesigned program, The Commons. The goal of The Commons' curriculum is to empower you with some of the most in-demand skills, so you can succeed not only in your academic career, but in your personal and professional life too.

Earn IT Credits

If you've earned IT certifications through organizations like Cisco, CompTIA, (ISC)2 or Oracle, you may be eligible to receive credit toward your degree program. If you’re seeking certification, some IT and computer science courses can help you prepare for specific exams.

Earn Math Credits

Save time and tuition with our Pathways to Math Success assessments. Depending on your scores, you could earn up to 12 math credits – the equivalent of 4 courses – toward your degree for less than $50 per assessment. For additional information, or to register for a Pathways to Math Success assessment, contact your admission counselor or academic advisor today.

Computer Science Technical Requirements Component Type Minimum Requirement Recommendation Operating System Windows 10, 64 Bit Windows 10, 64 Bit Processor Intel 8th Gen i5 or i7 Intel 9th Gen i7 Memory (RAM) 8GB RAM 16GB RAM Hard Drive 250+ GB 500+ GB Solid State Drive (SSD) Graphics Card Built-in (Intel) Discrete/dedicated (such as NVIDIA or AMD) Wireless 802.11 a/c dual band 802.11 a/c dual band Office Suite Office 2013 Professional or newer Office 2013 Professional or newer Antivirus Software Required for campus students. Strongly recommended for online students. Required for campus students. Strongly recommended for online students. Optional Accessories CD/DVD drive, external hard drive, extra power cord and headphones/earbuds CD/DVD drive, external hard drive, extra power cord and headphones/earbuds SNHU Purchase Programs Visit Dell Visit Dell Help desk support : Microsoft Windows 10, limited support for MacOS (Campus only). Support for other OS is not currently available. if (typeof accordionGroup === "undefined") { window.accordionGroup = new accordion(); } accordionGroup.init(document.getElementById('85a84d83b70c44cf8df6b43b59ea2366')); What to Expect as an Online Student No set class times: Asynchronous classes let you do your coursework when and where you want Pick your pace: Choose between full time (2 courses) or part time (1 course) each term Student support: 24/7 access to online student services like the library, tech and academic support if (typeof carouselContainer === "undefined") { window.carouselContainer = new carousel(); } let vc_0a2c09e41977426b8f3008e18ed9a68a = document.getElementById('carousel-0a2c09e41977426b8f3008e18ed9a68a') if (vc_0a2c09e41977426b8f3008e18ed9a68a !== null) { carouselContainer.init(vc_0a2c09e41977426b8f3008e18ed9a68a); } University Accreditation

New England Commission of Higher Education

Tuition & Fees

As a private, nonprofit university, we’re committed to making college more accessible by making it more affordable. That’s why we offer some of the lowest online tuition rates in the nation.

We also offer financial aid packages to those who qualify, plus a 30% tuition discount for U.S. service members, both full and part time, and the spouses of those on active duty.

Tuition Rates are subject to change and are reviewed annually. *Note: students receiving this rate are not eligible for additional discounts.

Additional Costs No Application Fee, Course Materials ($ varies by course)

Frequently Asked Questions

A woman with an associate degree in IT working in a server room

What Can You Do with an Associate Degree in Information Technology?

A woman looks at a computer screen studying how to become a software engineer

How to Become a Software Engineer

Angela Foss associate dean of online STEM programs helping a participant during an Hour of Code event.

What is Hour of Code? A Chance to Kickstart Your Coding Literacy

  • Welcome to UC Santa Cruz
  • Introducing UC Santa Cruz
  • Academic Programs
  • Arts Division
  • Humanities Division
  • Physical and Biological Sciences Division

Applied Mathematics

  • Biomolecular Engineering
  • Computational Media
  • Computer Engineering B.S.

Computer Science B.S.

  • Computer Science B.A.
  • Network and Digital Technology B.A.
  • Computer Engineering Minor
  • Computer Science Minor
  • Computer Science and Engineering Contiguous Bachelor’s/Master’s Pathway: Computer Science and Engineering
  • Computer Science and Engineering M.S.
  • Computer Science and Engineering Ph.D.
  • Natural Language Processing M.S.
  • Human Language Media and Modeling Designated Emphasis
  • Computer Engineering BS Elective Course List
  • Computer Engineering BS Digital Hardware Concentration Grad-Level Course List
  • Network and Digital Technology Electives Course List
  • Electrical and Computer Engineering
  • Technology and Information Management
  • Social Sciences Division
  • The Colleges
  • Physical Education
  • Undergraduate Information
  • Graduate Information
  • Resources, Residency, and Policies
  • Teaching and Administrative Staff
  • Academic Calendar
  • Catalog Home
  • All Catalogs

2023-24 UCSC General Catalog > Academic Units > Baskin Engineering > Computer Science and Engineering > Computer Science B.S.

Information and Policies

Introduction.

The bachelor of science (B.S.) program is appropriate for students desiring a strong concentration in the core areas of computer science—algorithms, programming languages, and systems—with more courses in computer science, computer engineering, and computational media; this program also allows for a few electives outside of science and engineering.

Applications of computer science are found in many other areas of study, from art, music, and linguistics to social sciences, economics, business, digital, and social media, environmental and life sciences, and sciences. Thus, interdisciplinary activities are encouraged. For those students whose primary interest is in another area, a minor in computer science is offered.

Program Learning Outcomes

Recipients of a Bachelor of Science degree in Computer Science at the University of California, Santa Cruz, are expected to have the following skills and experiences:

  • Algorithms, data structures, and complexity
  • Programming languages
  • Software engineering and development
  • Computer systems
  • Apply system-level perspective by thinking at multiple levels of detail and abstraction and by recognizing the context in which a computer system may function, including its interactions with people and the physical world.
  • Apply problem-solving skills and the knowledge of computer science to solve real problems.
  • Understand how technological advances impact society and the social, legal, ethical and cultural ramifications of computer technology and their usage.
  • Write about and orally communicate technical material about computer science and computer systems, broadly conceived.

Academic Advising for the Program

The Baskin Engineering undergraduate advising office offers general advising for prospective and declared undergraduates majoring in Baskin Engineering programs. The office handles major declarations, transfer credits, course substitutions, articulations, and degree certifications. Undergraduate students obtain and submit all paperwork requiring departmental approval to the undergraduate advising office. Transfer students should also refer to the Transfer Information and Policy section.

Baskin Engineering Building, Room 225 [email protected] (831) 459-5840

Getting Started in the Major: Frosh

It is recommended that high school students intending to apply to the computer science major have completed four years of mathematics (through advanced algebra and trigonometry) and three years of science in high school. Comparable college mathematics and science courses completed at other institutions also serve to properly prepare a student for the computer science major.

This major is highly course intensive and sequential; students who intend to pursue this major must begin taking classes for the major in their first quarter at UC Santa Cruz. 

Math placement is required for one or more of the foundational courses for this major. For more information, please review the Math Placement website .

Transfer Information and Policy

Transfer students who want to pursue the computer science major, must have applied and been admitted to UC Santa Cruz as a proposed computer science major. 

Transfer Admission Screening Policy

Prior to admission, transfer students must have completed the following five courses or their articulated equivalents with a combined minimum GPA of 3.0.

Lecture-lab combinations count as one course.

This course

Plus this course, plus one of the following options, plus one of the following, minimum gpa.

The combined GPA in the five courses above must be at least a 3.0. A student lacking one of these five courses may be admitted if they have completed CSE 16 , and CSE 12 , or the articulated alternative.

Furthermore, transfer students entering in the fall must have completed at least three of these courses by the end of the fall term of the previous academic year and have a minimum 3.0 GPA over all completed CS major qualification courses at that time.

Transfer students are strongly recommended to complete CSE 16 as part of their screening courses, and to complete one course out of MATH 21 , AM 10 , MATH 23A or AM 30 , and most general education requirements prior to arriving at UC Santa Cruz.

Transfer students admitted for the winter term must satisfy the major preparation criteria for transfer students admitted for the fall term and, additionally, must have successfully completed at least two additional courses that are required for the proposed degree, prior to admission. It is highly recommended that these courses should be AM 10 (or MATH 21 ) and AM 30 (or MATH 23A ).

Most courses in the computer science program at UC Santa Cruz have a strong theoretical component to prepare the student for designing, as opposed to simply using, computer systems. Often, courses taken at other institutions which emphasize applications of current languages and computers do not count toward the computer science major at UCSC.

At UCSC, computer science students are first introduced to programming using the programming language Python. The core programming sequence—courses CSE 30 and CSE 13S —exposes students to both Python and C. Many upper-division courses that involve programming use the C and C++ programming languages.

Transfer students who are not familiar with both an object-oriented language and C may need to take a remedial course. Students familiar with C++ and Unix should find the transition to Python and C relatively simple.

Getting Started in the Major: Transfer Students

Transfer students should declare their major in their first quarter at UC Santa Cruz. Instructions for declaring a major in the Baskin School of Engineering are on the Baskin Engineering undergraduate advising  major declaration page .

Major Qualification Policy and Declaration Process

Major qualification.

Transfer students should refer to the Transfer Admission Screening requirements. 

For all students, it is necessary to be listed as a proposed computer science major within Baskin Engineering before being able to declare the major. Additionally, students must satisfy the following three criteria to qualify for the CS B.S. major:

Students must declare CS (Computer Science B.S. or Computer Science B.A.) as their major between student’s second to sixth quarter.

CS Major Qualification courses

Students must have completed the following CS major qualification courses to qualify for the CS BS major:

Complete these three courses

Cumulative gpa.

Students must also have a cumulative GPA of at least 3.0 in the CS major qualification courses attempted at UC Santa Cruz, with at most one unsuccessful attempt (grade C-, D+, D, D-, F, or NP) permitted in a CS major qualification course.

Appeal Process

Students who are informed that they do not qualify for the major may appeal this decision by submitting a letter to the undergraduate director through the Baskin Engineering undergraduate advising office within 15 days from the date the notification was mailed. Within 15 days of receipt of the appeal, the department will notify the student, college, and Office of the Registrar of the decision.

How to Declare a Major

Students interested in pursuing computer science must indicate computer science as a proposed major on their application for admission to UC Santa Cruz.  Students admitted to UCSC in fall 2018 or later will be able to declare a computer science major only if they have been admitted to UCSC as proposed computer science majors.

There are four steps to declaring a Baskin Engineering major. For a detailed guide to this process, please consult Baskin Engineering's Declare Your Major  website. 

Students should start the declaration of major process by completing Step One on the Baskin Engineering Declare Your Major website as soon as they complete the CS major qualification courses or reach their declaration deadline quarter, whichever comes first.

Students petitioning when the campus declaration deadline is imminent (i.e., in their sixth quarter, for students admitted as frosh), will either be approved, denied, or provided with conditions (e.g., completion of some courses with certain grades) that will be resolved within at most one more enrolled quarter, even if they have not completed all CS major qualification courses.

Letter Grade Policy

All students admitted to a Baskin Engineering major, or seeking admission to a major, must take all courses required for that major for a letter grade. This policy includes courses required for these degrees that are sponsored by other departments.

Course Substitution Policy

Undergraduate engineering students who wish to substitute a major course with a course from another department at UC Santa Cruz, or from another academic institution, must first seek approval through the Baskin Engineering Undergraduate Advising Office. The advising office requires a Petition for Course Substitution be approved before credit for an alternate course can be applied to any Baskin Engineering major requirement.

Petition forms are available at the Undergraduate Advising Office and online.

Petitions and procedures for approval must be obtained from and submitted to the Undergraduate Advising Office.

Community Colleges courses once enrolled at UCSC

Once enrolled in Baskin Engineering students who wish to take a course at a California community college must first check  Assist.org  to see if the course is equivalent at UC Santa Cruz. If the course is not listed on Assist.org, students must submit a course substitution petition to the BE Undergraduate Advising Office to have it reviewed for equivalency. Courses that need to be reviewed must be accompanied by a course description and syllabus. It is very helpful if students can provide further evidence of course content, such as examples of programming assignments, homework, or examinations. To guarantee equivalency, departments may sometimes require a grade of B or better.

If the course is approved for equivalency or was on Assist.org, then the student must also receive approval by their major department to take the class at the community college  PRIOR  to taking it. Forms and procedures for approval can be obtained from and submitted to the BE Undergraduate Advising Office.

Four-Year Institutions and the UC Education Abroad Program (UCEAP)

Students who intend to take a course at a four-year institution or UC Education Abroad, must submit a Course Substitution Petition to the BE Undergraduate Advising Office to have the course reviewed for equivalency. Courses that need to be reviewed must be accompanied by a course description and syllabus. It is very helpful if students can provide further evidence of course content, such as examples of programming assignments, homework, or examinations. To guarantee equivalency, departments may sometimes require a grade of B or better.

If the course is approved for equivalency, then the student must also receive approval by their major department PRIOR to taking the class. Forms and procedures for approval can be obtained from and submitted to the BE Undergraduate Advising Office.

Double Majors and Major/Minor Combinations Policy

Students may not receive both the Computer Science B.A. and Computer Science B.S. degrees.

Students may not receive both the Network and Digital Technology B.A. and the Computer Science B.S. degrees.

Students must obtain a GPA of 3.8 or higher in the courses in the major to be considered for the distinction of "Highest Honors in the Major." Students must obtain a GPA of 3.5 or higher in the courses in the major to be considered for the distinction of "Honors in the Major." Baskin Engineering reserves the right to withhold honors based on other criteria, such as an incident of academic dishonesty.

Requirements and Planners

Course requirements.

This program is designed for students who wish to maximize exposure to computer science concepts and methods by taking a large selection of upper-division computer science courses, as well as courses in the sciences and mathematics. A minimum of 20 courses must be completed for the B.S. in computer science.

Lower-Division Courses

Computer science and engineering, all of the following.

Students with no prior programming will take CSE 20 before CSE 30 , and CSE 12 . Students with a prior programming course, AP credit, or clearing the “ Test-out ” bar will start with CSE 30 , and CSE 12 . 

Plus the following

Mathematics.

Plus one of the following options:

One of these courses

Plus one of these courses, engineering science, upper-division courses.

The following courses:

One of the following:

Three courses must be completed from the list below . At least one course must be a computer science and engineering course. At most two courses can be from applied mathematics, statistics or mathematics, of which at most one may be substituted with two physics classes, chosen from the following list of class pairs: PHYS 6A and PHYS 6C , PHYS 6A and PHYS 6B , PHYS 5A and PHYS 5C , PHYS 5A and PHYS 5B . Any laboratories required or recommended by the Physics Department associated with these classes are not part of the computer science B.S. major requirements.

List of B.S. electives:

  • Any CSE course with a number between 100 and 189, except for the DC courses CSE 115A and CSE 185E /CSE 185S.
  • Or any course from the following list:

Disciplinary Communication (DC) Requirement

Students of every major must satisfy that major's upper-division Disciplinary Communication (DC) requirement.

The DC requirement in computer science B.S. is satisfied by completing an additional course from the following options.

Course CSE 195 may be used either as an elective, or to satisfy the DC requirement, but not for both.

Comprehensive Requirement

In addition to the above requirements, students must satisfy one of the following two exit requirements: pass one of the capstone courses (see Capstone Courses below); or successfully complete a senior thesis. A passed capstone course also counts toward satisfying the minimum number of upper-division electives requirement.

Capstone Courses

Students may choose from one of the following capstone courses to satisfy their exit requirement (lecture-lab combinations count as one course):

Students taking one of the capstone courses will enroll normally. Students need to pass the capstone course to pass the exit requirement. No course may be attempted more than twice without prior approval from the chair of the department offering the course. Withdrawals count as an attempted class for this purpose.

Senior Thesis

The senior thesis consists of a self-contained project within the broad scope of computer science, but one that is not available in the regular course offerings. A student wishing to complete a senior thesis must successfully complete a minimum of 5 credits in CSE 195 , Senior Thesis Research. The supervision of a senior thesis student is always at the discretion of the faculty member.

The student first submits a written thesis proposal and obtains approval of a faculty sponsor. Then the student submits a written draft and makes an oral presentation to a faculty examining committee. After receiving feedback from the examining committee, the student submits one or more additional drafts, until the final draft is approved by the examining committee. The total amount of writing shall be consistent with the campus Disciplinary Communication requirement. A passing grade in CSE 195 is earned when the final thesis is approved.

The tables below are for informational purposes and do not reflect all university, general education, and credit requirements. See  Undergraduate Graduation Requirements  for more information.

The following are three sample academic plans: (1) a four-year plan for the B.S. major for first-year students with programming experience; (2) an alternative first-year plan for students without programming experience; and (3) a two-year plan for the B.S. major for transfer students that have completed all general education requirements.

Students completing the courses in the planners will have satisfied the MF and SR general education requirement.

Four-Year Plan for Students with Programming Experience

* WRIT 2 should be taken in or before spring quarter of the second year.

First-Year Plan for Students Without Programming  Experience

Two-Year Degree Planner for Transfer Students

Note:  One elective must be drawn from the DC course list and one from the capstone course list. Also, the above plan assumes having taken one of MATH 21 , MATH 23A , or AMS 10 and most general education requirements prior to arriving at UC Santa Cruz as well as courses equivalent to CSE 16 and CSE 30 and CSE 13S ).

Curriculum charts for all Baskin Engineering majors are available on the Baskin Engineering Advising  Major Curriculum Charts page .

'ZDNET Recommends': What exactly does it mean?

ZDNET's recommendations are based on many hours of testing, research, and comparison shopping. We gather data from the best available sources, including vendor and retailer listings as well as other relevant and independent reviews sites. And we pore over customer reviews to find out what matters to real people who already own and use the products and services we’re assessing.

When you click through from our site to a retailer and buy a product or service, we may earn affiliate commissions. This helps support our work, but does not affect what we cover or how, and it does not affect the price you pay. Neither ZDNET nor the author are compensated for these independent reviews. Indeed, we follow strict guidelines that ensure our editorial content is never influenced by advertisers.

ZDNET's editorial team writes on behalf of you, our reader. Our goal is to deliver the most accurate information and the most knowledgeable advice possible in order to help you make smarter buying decisions on tech gear and a wide array of products and services. Our editors thoroughly review and fact-check every article to ensure that our content meets the highest standards. If we have made an error or published misleading information, we will correct or clarify the article. If you see inaccuracies in our content, please report the mistake via this form .

What to expect in a computer science degree program

tamika-johnson-headshot-2.jpg

When exploring a computer science (CS) career, consider time, investment, and course complexity. Expectations in a computer science degree program include analytical thinking, evaluating complex problems, and studying algorithm design.

If you are ready to learn what you can expect in a computer science degree, this CS degree program guide can help. It offers information on degrees, specializations, course length, required projects, internships, and tuition and fees.

What is a computer science degree?

Students in a computer science — sometimes called CS — program learn computational theory, development, application, and design. Courses cover theoretical foundations of computer and web application development. 

CS students can earn an associate, bachelor's, master's, or Ph.D. They often earn specializations, too. With a CS specialization, students can gain pursue niche roles, like IT security or software engineer. 

After earning a traditional or online computer science degree , students can pursue work in roles like web developer, software engineer, or database administrator.

What to expect from computer science courses

For a two-year associate degree, students generally complete a 64-credit program that covers the basics. In a four-year bachelor's program, students take both general education and foundational computer science courses . 

Students who go on to pursue a master's degree typically earn about 33 credits in 2-3 years. Those who go on to become Ph.D. students spend about 4-5 years and earn 90 credits as well as completing a dissertation.

You will take core classes plus electives that interest you.

Intro-level CS students take classes in calculus I, introduction to linear algebra, probability and statistics, introduction to programming, and ethics and technology. 

These courses focus on application, differential equations, and vector spaces as well as problem solving, algorithm development, and debugging and testing. 

As the program progresses, students select electives in topics like graphical user interface, systems programming, ethical hacking, artificial intelligence, and compiler theory. 

Courses are a mix of theoretical and hands-on.

CS programs integrate both theory and practical application. First, students learn the history and evolution of state machines, computational complexity, program correctness, and cryptography. 

Theoretical CS classes provide greater insights into the construction of computers, efficiency of information systems, and commonly used encryption tools. In theory courses, CS students might work directly with implementation, verification, and programming challenges.

Expect to take math courses.

While earning a CS degree, you are required to take several math and statistics courses. Math is vital for understanding many programming languages. 

You also need a solid understanding of abstract language, differential equations, algorithms, and data structures. 

Entry-level students should expect to take calculus I and II, introduction to linear algebra, and probability and statistics.

Expect to spend time on computer science projects.

CS students tend to have heavy course loads, so they should expect to need more study time for course completion than most degrees. Organizational skills, time management, and scheduling are especially important. 

CS students often learn through projects that introduce them to topics like computer security, scientific computing, and computational efficiency. 

Along with group discussion, students complete open-ended software projects, presentations, independent studies, and group assignments. 

Students may focus on areas like computer architecture and organization, database management systems, and computer networks.

You may want to consider a computer science concentration as you progress through your degree.

After completing core CS courses, students select electives to personalize their CS degrees. Specializations prepare students for job opportunities in specialized areas of the industry. 

Students usually choose specializations that fit their career interests and help them gain required workforce skills. Here are some of the most common CS specializations.

Artificial intelligence

Computer and network security

Game design

Human-computer interaction

Information management and analytics

Programming languages

Real-world computing

Software theory

You may want to learn and practice skills outside of your degree courses.

While not a requirement, CS students can benefit from practical experience outside of their degree programs. 

By learning how to code , students increase logical and math reasoning skills. With the additional knowledge, students increase their analytical and problem-solving skills. 

Practical experience can also help students practice the easier programming languages , such as Python, Java, and Ruby. 

Internships will allow you to practice what you have learned and gain hands-on experience.

CS internships offer real-world experience. They may come through public or private organizations, such as commercial banks or credit unions, tech companies, or small businesses in need of IT support. 

Interns learn a company's culture and work environment, engage in team events and projects, and advance their career development. 

These opportunities can help enhance students' technical skills, professional networks, and employment opportunities. 

How hard is a computer science degree?

While CS programs are challenging, dedicated and passionate students can succeed. 

To find success with a computer science degree , students should be able to problem-solve and think critically as well as exhibit a joy for learning and taking on challenging design tasks. Successful students spend hours practicing coding, applying theory, and learning the basics of computer networking. It also helps to have prior experience with basic computer skills.

CS programs have rigorous curricula and challenging courses. As you progress, math becomes more intense. 

However, with faculty support, good organization and time management, and resilience, you can be successful. 

How much will I be spending as a computer science student?

While researching CS programs, consider both online and traditional programs. For CS degrees, tuition and fees range from $15,000 to $85,000. In-state students often pay much less than out-of-state students, and online students sometimes pay in-state rates regardless of location.

CS students should also consider bootcamps. The average cost of a coding bootcamp program is $13,500, which is equivalent to three semesters at some four-year colleges. 

When researching programs, be sure to look into perks as well as costs. There are several online schools that provide computers free of charge or at a discounted rate. Others rent iPads and laptops. 

Common questions about computer science degrees

What's the difference between it and computer science.

Information technology (IT) specializes in network security, database management, and desktop support. CS concentrates on coding, programming, and algorithms. If you're interested in IT, check out the information technology guide . 

What's the difference between computer engineering and computer science?

Computer engineers are skilled in building and repairing computers. Computer scientists have a deeper knowledge of programming languages and how to manage operating systems and networks.

Does a BA or BS in computer science matter?

Most CS programs focus on science and math, so they offer a BS. If you are interested in a broader education, especially if you might want to take business courses, then consider earning a BA.

Is it possible to get a computer science degree online?

Yes. An accredited online program can provide the same technical and critical thinking skills as a traditional program. The curriculum is typically just as rigorous.

This article was reviewed by Brian Nichols

Born and raised in upstate New York, Brian Nichols attended a vocational high school where he focused on computer science, IT fundamentals, and networking. He received his AS in computer information science from the local community college, then earned a BS in applied networking and system administration from a private college. He now lives in Kansas City, where he works full-time as a DevOps engineer and is a part-time instructor in cybersecurity. He's passionate about cybersecurity and helping students succeed. 

Brian Nichols is a paid member of the Red Ventures Education freelance review network. 

ZDNET Recommends

Computer Science

Program finder image

Undergraduate

The concentration in Computer Science is designed to teach students skills and ideas they will use immediately and in the future. Because information technology affects every aspect of society, graduates with computer science degrees have open to them an enormous variety of careers—engineering, teaching, medicine, law, basic science, entertainment, management, and countless others. Students are also eligible to apply for an A.B./S.M. degree program.

The Bachelor of Liberal Arts degree is designed for industry professionals with years of work experience who wish to complete their degrees part time, both on campus and online, without disruption to their employment. Our typical student is over 30, has previously completed one or two years of college, and works full time.

A graduate degree in computer science equips you to stay ahead of the curve and meet the computing challenges of today and tomorrow. In our rigorous master’s degree program, you’ll focus on advanced computer science theories and applications. Learning from expert faculty from Harvard and industry, you’ll acquire the skills to design, develop, and maintain complex computer and software systems.

Harvard School of Engineering offers a Doctor of Philosophy (Ph.D) degree in Computer Science, conferred through the Graduate School of Arts and Sciences. In addition to the Ph.D. in Computer Science, the Harvard School of Engineering also offers master’s degrees in Computational Science and Engineering as well as in Data Science. Computer scientists at Harvard pursue work in a wide range of areas including theoretical computer science, artificial intelligence, economics and computer science, privacy and security, data-management systems, intelligent interfaces, operating systems, computer graphics, computational linguistics, robotics, networks, architectures, program languages, machine learning, and visualization.

  • Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

A Complete Guide to Computer Science Courses

Computer science involves the design, development, and maintenance of software and hardware systems. Computer science also encompasses the study of algorithms, data structures, and programming languages.

In addition to covering all of the topics above, computer science courses also often include a project component, which gives students the opportunity to apply what they have learned to a real-world problem.

Computer science courses are an excellent way for students to develop the skills that are necessary for a career in computer science as a computer scientist , software developer , or computer programmer .

Computer Science Course Examples

There are many reasons why someone would want to get certified in their field. For some, it is required by their employer. For others, it is a way to show their dedication to their chosen profession.

And still, others see it as a way to improve their marketability and earn a higher salary. But not everyone can afford to pay for a certification course or coding bootcamp . Fortunately, there are many free and low-cost courses available that can provide the same benefits.

Some of the reputable online resources that offer computer science courses include Coursera, Udacity, and edX. edX offers self-paced computer science courses that cover topics like object-oriented programming and penetration testing .

Udacity has a popular introductory course on Python . If you’re looking for something a little more in-depth, IBM offers a full-stack developer course on Coursera.

The courses are self-paced, and there is typically a certification fee upon completion. These courses can help you learn the basics of computer science and get started in your career.

Computer Science Courses on Udacity

Free intro to python.

  • Duration: 5 weeks
  • Level: Beginner
  • Offered by: Kaggle
  • Format: Online
  • Who should get this certification: This course is for learners who would like to learn the basics of the Python programming language, as well as programming best practices.
  • Course description: Students will learn how to create, store, and process data by encoding Python data types and variables, and using conditionals and loops to control the flow of their programs. Students use data structures like lists, sets, dictionaries, and tuples to store collections of related data. They define and document their own functions, write scripts, and resolve program errors.

Introduction to Programming

  • Duration : 4 months
  • Cost : $100/month or $359 for 4 months
  • Level : Beginner
  • Offered by : Udacity (Nanodegree Program)
  • Format : Online
  • Who should get this certification : Students should have previous online experience, be able to do a Google search, and most importantly have the desire to press forward!
  • Course description : Through HTML, CSS, Python, and JavaScript, students first learn coding basics that will help them think and problem-solve as programmers. They will then engage in complex assignments, exercises, and projects that enhance their proficiency in coding and hone their problem-solving skills.

Computer Science Courses on Coursera

Ibm full stack software developer professional certificate.

  • Duration : 14 months (at 3 hours per week)
  • Cost : Coursera subscription of $39/month.
  • Offered by : IBM
  • Who should get this certification : This course is for students who want to master Cloud Native and Full Stack Development through hands-on projects. No prior experience required.
  • Course description : Students will learn the coding techniques and tools that software developers use to build, deploy, test, run, and manage cloud-based applications. They will learn HTML, JavaScript, Node.js, Python, Django, Containers, and micro-services.

Python for Everybody Specialization

  • Duration: 8 months (at 3 hours per week)
  • Cost: Coursera subscription of $39/month.
  • Level: Intermediate
  • Offered by: University of Michigan
  • Who should get this certification: This Specialization builds on the success of the Python for Everybody course. Students should have completed the Python for Everybody course prior to registering for this intermediate-level course.
  • Course description: This course will introduce the basics of programming, including data structures, networked application program interfaces, and databases, using the Python programming language. In the capstone project, students will use the technologies learned throughout the specialization to build their own applications for data retrieval, processing, and visualization.

Computer Science Courses on edX

Introduction to object-oriented programming with java iii.

  • Duration : 6 weeks
  • Cost : Free with optional upgrade
  • Level : Intermediate
  • Offered by : GTx
  • Who should get this certification : This course is for students who want to learn how to create and use exceptions, data types, recursion, and graphical user interfaces (GUIs).
  • Course description : This classroom teaches students how to determine and then create exceptions to handle programming errors. They will also be trained in the use of data structures and recursion. Students will additionally learn about basic graphical user interfaces (GUIs) using JavaFX.

Penetration Testing – Discovering Vulnerabilities

  • Cost: Free with optional upgrade
  • Offered by: NYU
  • Who should get this certification: This is the seventh course in the intermediate, undergraduate-level Cybersecurity Fundamentals MicroBachelors program that makes up the larger series. Students should have completed the previous six courses before attempting this one, unless they have a background in these areas already and feel comfortable skipping ahead.
  • Course description: This is a self-paced class that helps improve a hacker’s ethical hacking skills. The curriculum covers penetration testing subjects starting with an introduction to Penetration Testing Methodologies, Recognizance, Enumeration for Penetration Testers, Scanning, and Vulnerability Enumeration.

Advantages of Computer Science Courses

In the world we live in today, technology is constantly evolving and changing. Computer science is the study of how computers work and how they can be used to solve problems.

It is a rapidly growing field that offers many opportunities for those who are interested in it.

There are many reasons why someone might want to study computer science. For one, it is a rapidly growing field with many job opportunities. Computer science graduates are in high demand, and the salaries for computer science jobs are usually very good.

Additionally, studying computer science can give you a better understanding of how computers work and how to use them effectively.

If you’re considering studying computer science, there are many things to consider. However, overall, it is a field with great potential for those who are interested in it.

With the right skills and knowledge, you can have a successful career in computer science.

Best Computer Science Courses

With so many computer science courses available, it can be tough to decide which ones to take. This article will list the best types of computer science courses to help you make the most of your education.

  • Many introductory computer science courses teach the basics of programming. This is a vital skill for students to learn in order to be successful in the field of computer science. Programming is a way of giving computers instructions to perform specific tasks. In order to program, students must first understand how to code. Coding is the process of creating a set of instructions for a computer to follow. These instructions are written in a special language that the computer can understand. Once students have learned how to code, they can begin writing programs that can perform various tasks.
  • There are different programming languages students can learn in computer science courses. These languages can be used to create different types of software, applications, and websites. The most popular programming languages are Java, Python, and C++. Each language has its own unique features and syntax.
  • Computer science courses usually teach the basics of each language before moving on to more advanced topics. Students learn how to write code, debug programs, and test software applications. By the end of a computer science course, students should be able to write small programs in any programming language.
  • Some computer science courses teach algorithms that solve problems using computers, which is essential for many jobs in the modern world. In addition to teaching how to design and implement algorithms, computer science courses also cover the mathematical foundations of computing. This mathematical foundation is important for students who want to pursue a career in computer science, as it provides them with the ability to analyze and understand algorithms.
  • Data structures are the foundation for algorithms and software design, so it is important for students to learn them. Computer science courses teach data structures because they are essential for students to understand how to store and organize data. By learning about different data structures, students can choose the best one for their needs.
  • Computer science courses teach students about databases, including how to store and retrieve data. In particular, students learn how to design, implement, and maintain database systems. These courses also cover topics such as data security, privacy, and legal issues.
  • Computer science courses that focus on operating systems teach students about the different types of operating systems, how they work, and how to troubleshoot them. In addition, they learn about security issues related to operating systems.
  • Computer science courses that focus on networking teach students about the different types of networks, how they work, and how to troubleshoot them. Students also learn about network architectures, protocols, and components. In addition, they learn about security issues related to networks.
  • Information management is the process of organizing, storing, and retrieving information. Computer science courses provide students with the skills they need to manage information. This is a critical skill for anyone who wants to work in the computer field.
  • Most computer science courses cover topics like database design, data mining, and information security. This gives students the knowledge they need to create and maintain databases. They also learn how to retrieve information from databases and how to protect it from unauthorized access.
  • Information management is a growing field, and computer science graduates are in high demand. Companies are looking for employees who can manage their data effectively. With the right skills, you can start your career in this exciting field!
  • In recent years, the job market has increasingly demanded employees with computer science skills. As a result, many students are now enrolling in computer science courses to learn software engineering. These courses teach students how to design, develop, test and deploy software applications.

Through these courses, students gain an understanding of fundamental computer science concepts. They also learn how to apply these concepts to real-world scenarios. Graduates of computer science courses are highly sought-after by employers.

So if you’re looking to boost your employability, consider enrolling in a computer science course. You’ll gain invaluable skills that will help you excel in your career.

Frequently Asked Questions

Computer science courses are ideal for individuals interested in technology, problem-solving, and software development. They are suitable for those looking to pursue careers in IT, software engineering, data analysis, and more.

These courses cover a wide range of topics, including programming languages, software development, algorithms, data structures, database management, artificial intelligence, and network security.

The duration varies depending on the course’s depth and complexity. Introductory courses might last a few weeks, while degree programs can take several years to complete.

Prerequisites vary by course level. Beginner courses might require basic math skills, while advanced courses may need prior knowledge in programming or related fields.

Graduates can pursue various roles, such as software developers , systems analysts, data scientists , and network architects, among others, in diverse industries like technology, finance, healthcare, and government.

Related Resources

  • Find a Degree, Certification, Bootcamp, or Career in Computer Science
  • Resource Guides for Computer Science
  • How to Become a Computer Scientist
  • How to Get into Computer Science
  • Computer Science Degree Options

Computer Science (College of LSA)

Computer scientists are experts in computation – both in terms of the theory of computation and its innumerable practical applications. A computer scientist understands how to design and analyze algorithms, how to store and retrieve information, how computers function, and how to develop software systems that solve complex problems. Specialists within computer science might have expertise in developing software applications, in designing computer hardware, or in analyzing algorithms, and in many other current and emerging specializations.

The Computer Science Major available through the College of LSA will prepare you for a world of incredible opportunities. Our world-class faculty will challenge you to deepen your intellectual curiosity, and our curriculum will allow you to tailor your computing studies to your specific areas of interest. Along the way, you will develop both algorithmic fundamentals and a framework for understanding that will enable you to keep pace with the ever-changing world of computer science.

CS-LSA program information

The computer science program requires students to have a solid foundation in computer software, hardware, and theory, but also gives each student ample opportunity to take advanced electives in areas of computer science such as databases, architecture, networks, artificial intelligence, and graphics, or in emerging interdisciplinary areas such as electronic commerce, web information systems, and computer game design.

Open to students enrolled in the College of LSA, this program is administered by the CSE Division of the EECS Department.

Enrollment and graduation data

CS-LSA program guide

CS-LSA Program Guide : Fall 2023-Winter 2024

CS-LSA Program Guide : Fall 2024-Winter 2025

What’s the difference between CS-LSA and CS-Eng?

The department offers two program paths to a degree in computer science. One is available to students enrolled in the College of LSA and the other is for students enrolled in the College of Engineering. The program requirements are almost exactly the same for both majors, but if you’d like to know the differences you can find out here .

Declaring in CS-LSA

Declaration requirements are listed in the CS-LSA program guide. If you meet ALL of these requirements and are ready to declare, please fill out our declaration request form . A staff member will check your eligibility and let you know the outcome. For more detailed questions about the major, students can schedule an advising appointment or come to virtual drop-in advising. In addition, please watch this video prior to declaring.

Due to capacity constraints, students who are admitted to the University of Michigan in Fall 2023 or later must first be selected for the CS major before they can declare the major.

CS-LSA with honors program information

For students interested in completing an original research project and a culminating thesis and presentation at the end of their U-M career, CS-LSA majors may opt to pursue the CS Honors program. See the PDF below for more information about this pathway, including deadlines, eligibility, and instructions for proposal submission.

CS-LSA “with Honors” Information

Course descriptions information

EECS Course List (links to Michigan Engineering Bulletin)

Special Topics Courses for the Current Term

Sequential Undergraduate/Graduate Study

Students who enroll in this program and plan to obtain a master’s degree could be eligible for the Sequential Undergraduate/Graduate Study (SUGS) program, which enables completion of both a bachelor’s degree and a master’s degree in five (to five and a half) years.  More information is here . Questions about the program should be directed to  [email protected] .

Your browser is not supported. Please upgrade your browser to one of our supported browsers . You can try viewing the page, but expect functionality to be broken.

Computer Science Fundamentals

Free set of elementary curricula that introduces students to the foundational concepts of computer science and challenges them to explore how computing and technology can impact the world.

computer science coursework

Free, and fun, elementary courses for each grade

  • Six courses, one for each elementary grade
  • Equitable introductory CS courses
  • Use the same course for all students in the same grade, regardless of their experience
  • All courses make suitable entry points for students

Curricula at a glance

Grades: K-5

Level: Beginner

Duration: Month or Quarter

Devices: Laptop, Chromebook, Tablet

Topics: Programming, Internet, Games and Animation, Art and Design, App Design

Programming Tools: Sprite Lab, Play Lab

Professional Learning: Facilitator-led Workshops, Self-paced Modules

Accessibility: Text-to-speech, Closed captioning, Immersive reader

Languages Supported: Arabic, Bahasa Indonesian, Catalán, Chinese Simplified, Chinese Traditional, Czech, French, German, Hindi, Italian, Japanese, Korean, Kannada, Malay, Marathi, Mongolian, Polish, Portuguese-BR, Romanian, Russian, Slovak, Tagalog, Tamil, Thai, Turkish, Ukrainian, Spanish Latam, Urdu, Spanish-ES, Uzbek, Vietnamese

I've been teaching the course since the Monday after the workshop. The students and I LOVE it (and so do their classroom teachers!!!)

CS Fundamentals Teacher

Picking the right CS Fundamentals course for your classroom

With the diverse set of options offered for CS Fundamentals, there is a course for all different needs.

How will your students engage with the content?

Courses specifically designed for your elementary classroom.

Find the course for the grade you teach. Each course is approximately a month long.

Kindergarten

computer science coursework

Program using commands like loops and events. Teach students to collaborate with others, investigate different problem-solving techniques, persist in the face of challenging tasks, and learn about internet safety.

computer science coursework

Through unplugged activities and a variety of puzzles, students will learn the basics of programming, collaboration techniques, investigation and critical thinking skills, persistence in the face of difficulty, and internet safety.

computer science coursework

Create programs with sequencing, loops, and events. Investigate problem-solving techniques and develop strategies for building positive communities both online and offline. Create interactive games that students can share.

computer science coursework

Review of the concepts found in earlier courses, including loops and events. Afterward, students will develop their understanding of algorithms, nested loops, while loops, conditionals, and more.

computer science coursework

Make fun, interactive projects that reinforce learning about online safety. Engage in more complex coding such as nested loops, functions, and conditionals.

computer science coursework

Look at how users make choices in the apps they use. Make a variety of Sprite Lab apps that also offer choices for the user. Learn more advanced concepts, including variables and “for” loops.

Self-paced elementary curriculums

Teachers play a critical role in student learning by teaching our unplugged activities and leading whole class discussions, however, we recognize that CS Fundamentals isn't always taught in a traditional classroom setting. We provide two self-paced express courses alongside Courses A-F. These express courses are designed for situations where teachers allow each student to work at their own pace independently.

Grades: K-1

Pre-Reader Express

computer science coursework

Learn the basics of drag-and-drop block coding by solving puzzles and creating animated scenes. Make art and simple games to share with friends, family, and teachers.

Grades: 2-5

computer science coursework

Learn to create computer programs, develop problem-solving skills, and work through fun challenges! Make games and creative projects to share with friends, family, and teachers.

No devices? We have you covered

computer science coursework

Go ahead, cut the cord (for a while)!

CS education does not always need to be in front of a screen and device access shouldn't be a barrier to learning computer science concepts.

Resources that support you every step of the way

Sign up for a Code.org account to get access to materials that will help you teach computer science with confidence. Code.org has extensive resources designed to support educators, even those without prior CS teaching experience.

Lesson Plans

Get step-by-step guidance, learning objectives, and assessment strategies for effective teaching.

Helpful resources include slide decks, activity guides, rubrics, and more — all organized in one place. Each lesson plan is accompanied by tips for classroom implementation, differentiation ideas, and extension activities to cater to students of all abilities.

Instructional Videos

Watch easy-to-understand overviews of computer science and programming concepts.

Code.org video series are designed specifically to support your classroom and are engaging and fun to watch.

Slide Decks

We offer educators an organized, visually engaging, and pedagogically sound framework to deliver computer science lessons.

Code.org slide decks provide step-by-step instructions, examples, and interactive activities that align with curricular objectives.

computer science coursework

Assessments

Our curricula includes a comprehensive system of formative and summative assessment resources.

These include rubrics, checklists, mini-projects, end-of-chapter projects, student-facing rubrics, sample projects, and post-project tests — all designed to support teachers in measuring student growth, providing feedback, and evaluating student understanding.

computer science coursework

Programming Tools

Code.org's integrated development environments (IDEs) cater to students of all skill levels.

We offer a versatile and user-friendly platform that supports a variety of programming paradigms. This enables learners to seamlessly transition from block-based coding to text-based languages, and fosters creativity and innovation.

Professional learning that meets your needs

Get the support you need as you prepare to teach. Teachers love it, with over 90% ranking it the best professional development ever!

Facilitator-led Workshops

computer science coursework

Join local teachers for inspiring and hands-on support to implement computer science in your classroom. Our Regional Partners offer high-quality, one-day Code.org workshops for individual teachers or for schoolwide PD. Sign up for a professional development workshop near you!

Self-Paced Online Modules

computer science coursework

Through reading, viewing videos, completing interactive puzzles, and reflecting on your learning, you will develop your own understanding while preparing to teach computer science in your classroom.

Frequently asked questions

CS Fundamentals was written using both the K-12 Framework for Computer Science and the CSTA standards as guidance. Currently, every lesson in CS Fundamentals contains mappings to the relevant CSTA standards. The summary of all CSTA mappings for each course can be found at:

  • Course A Standards
  • Course B Standards
  • Course C Standards
  • Course D Standards
  • Course E Standards
  • Course F Standards

A Google Sheets version of the standards can be found at CSF Standards .

The leading K-12 CS curriculum in the United States, our elementary program has been proven effective in major urban school districts like Dallas, as well as small rural districts in Iowa. There is no need to hire specialists to teach CS. Our program is uniquely designed to support teachers new to CS while offering the flexibility to evolve lessons to fit student needs. Share this brochure with your school and district administrators, or suggest they take a look at our administrators page specially designed to answer administrators' most common questions.

Our curriculum and platform are available at no cost for anyone, anywhere, to teach!

New to teaching computer science? No worries! Most of our teachers have never taught computer science before. Join local teachers for inspiring and hands-on support to implement computer science in your classroom. Our Regional Partners offer high-quality, one-day Code.org workshops for individual teachers or for schoolwide PD. Sign up for a professional development workshop near you !

Join over 100,000 teachers who have participated in our workshops. The majority of our workshop attendees say, 'It's the best professional development I've ever attended.' In fact, 90% of attendees would recommend our program to other teachers !

Each CSF course includes 13-17 lessons designed for 45-minute periods. We recommend all students move from lesson to lesson at a pace set by the teacher. There are many teacher-led project levels designed to be experienced in unison while the skill-building lessons can be completed by students at their own pace.

Many lessons have handouts that guide students through activities. These resources can be printed or assigned digitally. Some lessons call for typical classroom supplies and manipulatives. Visit the CSF Syllabus to learn more .

Support and questions

computer science coursework

Still have questions? Reach out to us! We are here to help.

Our support team is here to answer any questions you may have about starting teaching with Code.org. You can also ask other teachers about their experience on our teacher forums.

Subscribe for updates

Sign up to receive monthly emails about Code.org's Computer Science Fundamentals and get helpful reminders, tips, and updates sent right to your inbox.

You can unsubscribe at any time.

computer science coursework

Please select your language

Department Chair:  Mehrdad Aliasgari 

Department Office:  Engineering & Computer Sciences (ECS) 552

Telephone: (562) 985‑4285

Website:  Computer Engineering and Computer Science

Faculty: Mehrdad Aliasgari, Shadnaz Asgari, Muhammad Abdul Basit Ur Rahim, Todd Ebert, Bo Fu, Amir Ghasemkhani, Darin Goldstein, Min He, Michael Hoffman, Shui Lam, Ju Cheol Moon, Frank Murgolo, Oscar Morales Ponce, Amin Rezaei, Arash Sarshar, Hossein Sayadi, Shabnam Sodagari, Jelena Trajkovic, Xiaolong Wu, Hailu Xu, Wenlu Zhang

Undergraduate Advisors:  Computer Science major: Melisa Velazquez; Computer Engineering major: Xiaolong Wu; Cybersecurity Applications and Computer Science minor: Melisa Velazquez

Graduate Advisor:  Graduate Student Success Center

General Education Advising:  Engineering Student Success Center

Administrative Support Coordinator:  Raquel Porter

Administrative Support Assistants: Karl Anthony and   Jennifer Brunetto

Students desiring detailed information should contact the department for referral to one of the faculty advisors.

  • College: College of Engineering    
  • Courses: CECS    

Career Possibilities

Computer Engineer • Software Engineer • Systems Analyst • Mobile Application Programmer • Web Application Developer • Artificial Intelligence Developer • Applications Programmer • Computer Network Architect • Network Administrator • Systems Administrator • Computer Service Representative • Database Administrator • Computer Security Analyst • Game Programmer • Robotics Designer • System on Chip Designer • Embedded Systems Programmer • Data Analyst (Some of these, and other careers, require additional education or experience. For more information, see Career Development Center website .)

ABET Accreditation

The Bachelor of Science in Computer Engineering is accredited by the Engineering Accreditation Commission and the Bachelor of Science in Computer Science is accredited by the Computing Accreditation Commission of ABET . 

Advisory Board

The Department of Computer Engineering and Computer Science is supported by an Advisory Board composed of engineers, computer scientists, and business executives in the Southern California area. This liaison helps the department keep its curricula responsive to the needs of the community.

Undergraduate Degree Programs

The degree in Computer Engineering focuses on computer hardware (design, construction, and operation of computer systems). The Computer Science degree places more emphasis on computer software (and algorithms). The high school student planning to enter either program is advised to pursue a strong program in science and mathematics.

Students will receive a comprehensive education in computer engineering and/or computer science, as well as the sciences and humanities, and will be able to communicate effectively. They will be able to design systems, components or processes that meet performance, cost, time, safety, and quality requirements. They will understand professional responsibilities and will be able to analyze the social and ethical implications of their work.

  • Computer Science, M.S.
  • Computer Engineering, B.S.
  • Computer Science, B.S.
  • Computer Science Applications Minor
  • Computer Science Minor
  • Cyber Security Applications Minor
  • Web Technologies and Applications Minor
  • Web Technologies and Applications Certificate
  • CECS 80 - Foundations for Data Computing
  • CECS 100 - Critical Thinking in the Digital Information Age
  • CECS 105 - Introduction to Computer Engineering and Computer Science
  • CECS 105H - Introduction to Computer Engineering and Computer Science
  • CECS 110 - Beginning Web Design
  • CECS 174 - Introduction to Programming and Problem Solving
  • CECS 180 - Data Computing for Everyone
  • CECS 200 - Intermediate Web Design
  • CECS 201 - Computer Logic Design I
  • CECS 202 - The Digital Information Age
  • CECS 211 - Principles of Computer Engineering I
  • CECS 225 - Digital Logic and Assembly Programming
  • CECS 228 - Discrete Structures with Computing Applications
  • CECS 228H - Discrete Structures with Computing Applications
  • CECS 229 - Discrete Structures with Computing Applications II
  • CECS 229H - Discrete Structures with Computing Applications II
  • CECS 262 - Introduction to Embedded System Programming
  • CECS 271 - Introduction to Numerical Methods
  • CECS 274 - Data Structures
  • CECS 275 - Programming and Data Structures in C++
  • CECS 277 - Object Oriented Application Development
  • CECS 278 - Cyber Security Principles
  • CECS 300 - Design of Dynamic Web Sites
  • CECS 301 - Computer Logic Design II
  • CECS 301H - Computer Logic Design II
  • CECS 302 - Introduction to Computer Forensics
  • CECS 303 - Networks and Network Security
  • CECS 311 - Principles of Computer Engineering II
  • CECS 323 - Database Fundamentals
  • CECS 325 - System Programming
  • CECS 326 - Operating Systems
  • CECS 327 - Introduction to Networks and Distributed Computing
  • CECS 327H - Introduction to Networks and Distributed Computing
  • CECS 328 - Algorithms
  • CECS 328H - Algorithms
  • CECS 329 - Concepts of Computer Science Theory
  • CECS 341 - Computer Architecture and Organization
  • CECS 342 - Principles of Programming Languages
  • CECS 343 - Introduction to Software Engineering
  • CECS 346 - Embedded Systems I
  • CECS 346H - Embedded Systems I
  • CECS 347 - Embedded Systems II
  • CECS 361 - Digital Design Techniques and Verification
  • CECS 378 - Introduction to Computer Security Principles
  • CECS 381 - Stochastic Computing
  • CECS 401 - Fundamentals of Computer Programming for Educators
  • CECS 402 - Computer Science Fundamentals
  • CECS 403 - Digital Devices and Computing Systems
  • CECS 406 - Selected Topics in Computer Science
  • CECS 410 - Computers and Networks
  • CECS 419 - Theory of Computation
  • CECS 427 - Dynamic Networks
  • CECS 428 - Analysis of Algorithms
  • CECS 429 - Search Engine Technology
  • CECS 440 - Computer Architecture
  • CECS 440H - Computer Architecture
  • CECS 443 - Software Project Management and Testing
  • CECS 444 - Compiler Construction
  • CECS 447 - Embedded Systems III
  • CECS 448 - User Interface Design
  • CECS 449 - Computer Graphics
  • CECS 450 - Data Visualization
  • CECS 451 - Artificial Intelligence
  • CECS 453 - Mobile Application Development
  • CECS 455 - Introduction to Game Programming
  • CECS 456 - Machine Learning
  • CECS 457 - Applied Machine Learning
  • CECS 460 - System on Chip Design
  • CECS 460H - System on Chip Design
  • CECS 461 - Hardware/Software Co-design
  • CECS 463 - Digital Signal Processing Design and Simulation
  • CECS 470 - Web Programming and Accessibility
  • CECS 474 - Computer Network Interoperability
  • CECS 475 - Software Development with Frameworks
  • CECS 478 - Introduction to Computer Security
  • CECS 480 - Quantum Computation
  • CECS 490A - Computer Engineering Senior Project I
  • CECS 490B - Computer Engineering Senior Project II
  • CECS 491A - Computer Science Senior Project I
  • CECS 491B - Computer Science Senior Project II
  • CECS 495 - Computational Physiology
  • CECS 496 - Computer Science Problem Solving
  • CECS 497 - Directed Studies
  • CECS 519 - Theory of Computation
  • CECS 521 - Database Architecture
  • CECS 524 - Advanced Topics in Programming Languages
  • CECS 526 - Advanced Operating Systems
  • CECS 528 - Advanced Analysis of Algorithms
  • CECS 529 - Search Engine Technology
  • CECS 530 - Advanced Computer Architecture I
  • CECS 532 - Memory Design and Implementation
  • CECS 542 - Requirements Engineering
  • CECS 543 - Advanced Software Engineering
  • CECS 544 - Software Testing and Verification
  • CECS 545 - Software Architecture
  • CECS 546 - Fault Tolerant Computing Systems
  • CECS 547 - Software Maintenance, Reengineering and Reuse
  • CECS 550 - Pattern Recognition
  • CECS 551 - Advanced Artificial Intelligence
  • CECS 552 - Computer Simulation and Modeling
  • CECS 553 - Machine Vision

IMAGES

  1. A-level Computer Science

    computer science coursework

  2. Cambridge IGCSE™ and O Level Computer Science Coursebook with Digital

    computer science coursework

  3. A Level Computer Science Coursework Advice. Talking through my project with tips for top marks

    computer science coursework

  4. All Essential Information About Computer Science Coursework

    computer science coursework

  5. Computer Science Coursework Help Online UK

    computer science coursework

  6. A Level

    computer science coursework

VIDEO

  1. Computer Science Coursework

  2. A Level

  3. A level OCR computer science coursework Heeseung Lee

  4. Harvard CS50

  5. computer science coursework

  6. Harvard CS50 2023

COMMENTS

  1. Best Computer Science Courses Online [2024]

    Learn Computer Science or improve your skills online today. Choose from a wide range of Computer Science courses offered from top universities and industry leaders. Our Computer Science courses are perfect for individuals or for corporate Computer Science training to upskill your workforce.

  2. Computer Science Courses

    CS50 for Lawyers. This course is a variant of Harvard University's introduction to computer science, CS50, designed especially for lawyers (and law students). Free *. 10 weeks long. Available now. Programming. Online.

  3. CS50: Computer Science Courses and Programs from Harvard

    We are excited to offer a series of introductory CS50 courses and Professional Certificate programs from Harvard that are open to learners of all backgrounds looking to explore computer science, mobile app and game development, business technologies, and the art of programming. Play Video.

  4. CS50: Introduction to Computer Science

    This is CS50x , Harvard University's introduction to the intellectual enterprises of computer science and the art of programming for majors and non-majors alike, with or without prior programming experience. An entry-level course taught by David J. Malan, CS50x teaches students how to think algorithmically and solve problems efficiently.

  5. CS50: Introduction to Computer Science

    This is CS50x , Harvard University's introduction to the intellectual enterprises of computer science and the art of programming for majors and non-majors alike, with or without prior programming experience. An entry-level course taught by David J. Malan, CS50x teaches students how to think algorithmically and solve problems efficiently.

  6. HarvardX: CS50's Introduction to Computer Science

    This is CS50x , Harvard University's introduction to the intellectual enterprises of computer science and the art of programming for majors and non-majors alike, with or without prior programming experience. An entry-level course taught by David J. Malan, CS50x teaches students how to think algorithmically and solve problems efficiently.

  7. Online Computer Science & Engineering Degrees

    Computer Science degree programs on Coursera feature hands-on learning, peer-to-peer support, and the same professors that teach degree courses on campus. Earn your computer science degree or engineering degree online from top computer science schools, like Arizona State University, University of Illinois, and University of London.

  8. Best Online Computer Science Courses and Programs

    Learn. Computer Science. Learn computer science with online courses and programs. Computers power everything from trading on the stock market to weather forecasting. Understanding the science of computers has broad application across nearly every industry. Explore how to learn computer science with online courses delivered through edX.

  9. CS50's Introduction to Computer Science

    This is CS50x , Harvard University's introduction to the intellectual enterprises of computer science and the art of programming for majors and non-majors alike, with or without prior programming experience. An entry-level course taught by David J. Malan, CS50x teaches students how to think algorithmically and solve problems efficiently.

  10. Introduction to Computer Science and Programming Specialization

    The Specialisation should take approximately 13 weeks to complete. How Computers Work course is 4 weeks long, Introduction to Computer Programming is 3 weeks long, and Mathematics for Computer Science there is 6 weeks long. The courses are flexible so these are indicative timings. Learners can study the courses concurrently but should be ...

  11. Computer Science Courses & Tutorials

    Computer Science. Computer Science, often referred to as "CS," is a broad term that covers many sub-disciplines, including the worlds of software and hardware. It can be found in every piece of technology you use, from a smartphone or gaming console to a car or ATM. With so many applications for Computer Science, there's a space for everyone!

  12. Computer Science Courses and Certifications

    Class Central's Top Computer Science Courses. We've picked the best online courses to learn Computer Science from the Class Central catalog. All the 10 courses are free or free-to-audit. Read the Guide. CS50's Introduction to Computer Science. 170 reviews. Computational Thinking for Problem Solving.

  13. 10 Best Computer Science Courses to Take in 2022

    Fun Facts. This course has over 18k bookmarks and 120 reviews on Class Central. It is the first of a two-course XSeries Program on edX. The second is Introduction to Computational Thinking and Data Science, which could make for a good follow-up.; One of the instructors, Professor John Guttag, leads the Data Driven Inference Group at MIT's legendary Computer Science and Artificial ...

  14. BS and BA in Computer Science Undergraduate Program Curriculum

    Students will take a series of 100/200-level Computer Science courses (foundational courses). Upon completion of the foundational courses, students' academic records will be evaluated, and those who qualify will be offered "Advanced Standing" in the major. Enrollment in the major core courses and the majority of the upper division ...

  15. Computer Science Degree Online

    The B.S. Computer Science degree program is an all-online program that you will complete by studying and working independently with instruction and support from WGU faculty. You will be expected to complete at least 12 competency units each 6-month term. (One course is typically 3 or 4 units.)

  16. What to Know About Becoming a Computer Science Major

    Common Coursework Computer Science Majors Can Expect Computer science majors must study calculus to earn their degrees. Other relevant math courses include statistics and linear algebra.

  17. Online Computer Science Degree

    Computer Science Courses & Curriculum. SNHU's computer science program is designed to help you gain the skills you need to succeed in the modern workforce — with a career-focused curriculum, affordable tuition and the flexibility you need to fit your degree into your busy life. 120 Credits.

  18. University of California Santa Cruz

    Information and Policies Introduction The bachelor of science (B.S.) program is appropriate for students desiring a strong concentration in the core areas of computer science—algorithms, programming languages, and systems—with more courses in computer science, computer engineering, and computational media; this program also allows for a few electives outside of science and engineering.

  19. What to expect in a computer science degree program

    Students in a computer science — sometimes called CS — program learn computational theory, development, application, and design. Courses cover theoretical foundations of computer and web ...

  20. Computer Science

    The concentration in Computer Science is designed to teach students skills and ideas they will use immediately and in the future. Because information technology affects every aspect of society, graduates with computer science degrees have open to them an enormous variety of careers—engineering, teaching, medicine, law, basic science, entertainment, management, and countless others.

  21. What Is Computer Science? Meaning, Jobs, and Degrees

    Computer science is an interdisciplinary field focused on studying computers and their uses in the real world. As a result, the field of computer science focuses as much on the theoretical underpinnings of computers as it does their actual uses and creation. Some common areas of study within the field include designing and applying computer ...

  22. Computer Science, BS < George Mason University

    Students must earn a C or better in any course intended to satisfy a prerequisite for a computer science course. Computer science majors may not use more than one course with grade of C- or lower toward department requirements. Repeating Courses. Students may attempt an undergraduate course taught by the College of Engineering and Computing twice.

  23. A List of Popular Computer Science Courses

    Some of the reputable online resources that offer computer science courses include Coursera, Udacity, and edX. edX offers self-paced computer science courses that cover topics like object-oriented programming and penetration testing. Udacity has a popular introductory course on Python. If you're looking for something a little more in-depth ...

  24. Computer Science (College of LSA)

    The computer science program requires students to have a solid foundation in computer software, hardware, and theory, but also gives each student ample opportunity to take advanced electives in areas of computer science such as databases, architecture, networks, artificial intelligence, and graphics, or in emerging interdisciplinary areas such ...

  25. Computer Science Fundamentals

    Computer Science Fundamentals ... These express courses are designed for situations where teachers allow each student to work at their own pace independently. Grades: K-1 Pre-Reader Express. Learn the basics of drag-and-drop block coding by solving puzzles and creating animated scenes. Make art and simple games to share with friends, family ...

  26. PDF Roadmap for BS in Computer Science (Catalog Year 2024

    Computer Science Core . CPSC 323 . 3 . Computer Science Core CPSC 315 . 3 . Computer Science Core CPSC 491 . 3 . Computer Science Core CPSC 351 . 3 . Computer Science Core . CPSC 332 . 3 . Computer Science Core CPSC 481 . 3 . CPSC Elective IV . 3 . Mathematics Requirements (& GE B.5) MATH : 338 . 4 . Computer Science Core . CPSC 471 . 3 ...

  27. Top Computer Science Courses for Beginners [2024]

    In summary, here are 10 of our most popular computer science courses. Computer Science: Programming with a Purpose: Princeton University. Python for Data Science, AI & Development: IBM. Introduction to Computer Science and Programming: University of London. Learn to Program: The Fundamentals: University of Toronto. Google Cybersecurity: Google.

  28. Computer Engineering and Computer Science

    Department Chair: Mehrdad Aliasgari Department Office: Engineering & Computer Sciences (ECS) 552 Telephone:(562) 985‑4285 Website: Computer Engineering and Computer Science Faculty: Mehrdad Aliasgari, Shadnaz Asgari, Muhammad Abdul Basit Ur Rahim, Todd Ebert, Bo Fu, Amir Ghasemkhani, Darin Goldstein, Min He, Michael Hoffman, Shui Lam, Ju Cheol Moon, Frank Murgolo, Oscar Morales Ponce, Amin ...

  29. StanfordOnline CSX0001 Certificate

    This is to certify that Arpon Roy successfully completed and received a passing grade in CSX0001: Computer Science 101 a course of study offered by StanfordOnline, an online learning initiative of Stanford University.

  30. Courses List Course Course Name Number

    Courses List Pursuant to SL2023-132, the following elective middle school courses would satisfy the requirement for a Public School Unit to offer an elective introductory Computer Science course in middle school that surveys the field of Computer Science: Course Number Course Name CY20 Computer Science Discoveries I