A degree in computer science can be earned from most colleges, universities, and community colleges. Some students even opt to complete a degree in an online format. The following is a list of some courses in which individuals can expect to participate when in a computer science program. While this is not a complete list of all the courses that would be involved, these are the most common, and often required courses.

Introduction to Computer Systems
Students in this course will explore computer hardware structures, low-level programming, and programming language. After completing this course, students should understand the internal structure of digital computers. This course is designed to give a fundamental understanding so students can build on this foundation with more advanced courses.

Introduction to Computer Programming
This course will likely involve very basic steps involved in computer science. Even if students have some experience working with computers, this course will take them through the most basic steps. Most of this course will also be geared towards programming and understanding how computers can solve problems.

The purpose of this course is to teach students about algorithms and how to use them. Some likely course topics include stable matching, probability, network flow, hashing, graph algorithms, bloom filters, caching, suboptimal algorithms, and heaps, among many others. A useful skill to have before taking this class is knowledge of proofs and how to program in at least one programming language such as C, Python, or Java.

Discrete Structures / Discrete Mathematics
Discrete mathematics' definition is exactly how it sounds; this course will deal with mathematical structures that are discrete. Students will study objects such as graphs, integers, and statements in logic. Instructors in these courses usually aim to improve a student's critical thinking and problem solving skills. A completed course in computer programming may be required before enrolling in this class.

Calculus I and II
Nearly every single computer science degree program will require students to take calculus I, and possibly calculus II. The topics likely to be covered in these courses are functions, models, differentiation rules, limits and derivatives, integrals, trigonometry, integration, infinite sequences and series.

Participants in this course will be working with data, performing such tasks as organization, analysis, interpretation, collection, and presentation. Computers have made these methods much easier, and working with large data sets is simpler than even 10 years ago. Some subjects that will be studied in this course include data display, causation, inference, sampling methods, regression, correlation, and probability.

Software Development / Design
This course will explain exactly what software development is, and how to carry out tasks associated using relevant programs. If participating in this course early in your academic career, the topics and techniques taught are likely to be very basic. Students will discover how working solo on a project differs from working with a team, and how to task plan and carry out test management.