EdX

CS50's Introduction to Computer Science (edX)

CS50's Introduction to Computer Science (edX)

An introduction to the intellectual enterprises of computer science and the art of programming. This is CS50, 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, CS50 teaches students how to think algorithmically and solve problems efficiently.

Class Deals by MOOC List - Click here and see EdX's Active Discounts, Deals, and Promo Codes.

Topics include abstraction, algorithms, data structures, encapsulation, resource management, security, software engineering, and web development. Languages include C, PHP, and JavaScript plus SQL, CSS, and HTML. Problem sets inspired by real-world domains of biology, cryptography, finance, forensics, and gaming. As of Fall 2014, the on-campus version of CS50 was Harvard's largest course.
Students who earn a satisfactory score on 9 problem sets (i.e., programming assignments) and a final project will receive a certificate from HarvardX. This is a self-paced course–you may take CS50 on your own schedule.

This course is part of the following programs:
-Computer Science for Game Development Professional Certificate
-Computer Science and Mobile Apps Professional Certificate
-Computer Science for Web Programming Professional Certificate
-Computer Science for Artificial Intelligence Professional Certificate
-CS50's AP® Computer Science Principles XSeries

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 in 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
Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Introduction to Java Programming: Fundamental Data Structures and Algorithms (edX) EdX
Universidad Carlos III de Madrid - UC3M,UC3Mx

Introduction to Java Programming: Fundamental Data Structures and Algorithms (edX)

Learn to enhance your code by using fundamental data structures and powerful algorithms in Java. In this introductory course, you will learn programming with Java in an easy and interactive way. You will learn about fundamental data structures, such as lists, stacks, queues and trees, and presents algorithms for inserting, deleting, searching and sorting information on these data structures in an efficient way.

Self Paced
Self-Paced
Fundamentos TIC para profesionales de negocios: Programación (edX) EdX
Universitat Politècnica de València,UPValenciaX

Fundamentos TIC para profesionales de negocios: Programación (edX)

¿Tienes que trabajar con las Tecnologías de la Información y te faltan conocimientos? Conoce los fundamentos de la programación software. Este curso forma parte de una serie de 5 cursos de introducción al uso de sistemas de información en las empresas que te introducirá en el apasionante mundo de las TIC.

Self Paced
Self-Paced
How to Code: Complex Data (edX) EdX
The University of British Columbia,UBCx

How to Code: Complex Data (edX)

Learn how to design more complex programs, using new data structures, abstraction, and generative recursion. As your program requirements get more complex, you will find that simple additions to the design method make it easy to write well-structured and well-tested code that is easy to maintain. By learning how to capture common data and control structures using abstraction, your programs will get shorter and better tested.

Self Paced
Self-Paced
Global Software Development (edX) EdX
Delft University of Technology,DelftX

Global Software Development (edX)

Develop the technical and organizational skills you need to practice software engineering in a globally distributed environment. Software engineering operates ever more frequently in globally distributed settings, in a practice that is known as Globally Distributed Software Engineering (GDSE). In this course, you will obtain a practical overview of the organization and operation of software engineering of this practice. As such, it is aimed at professionals in distributed software development teams, and executives setting up and leading such teams who would like to develop the required technical and organizational skills.

Self Paced
Self-Paced
HTML5 Coding Essentials and Best Practices (edX) EdX
World Wide Web Consortium - W3C,W3Cx

HTML5 Coding Essentials and Best Practices (edX)

Learn how to write Web pages and Web sites by mastering HTML5 coding techniques and best practices. HTML5 is the standard language of the Web, developed by W3C. For application developers and industry, HTML5 represents a set of features that people will be able to rely on for years to come. HTML5 is supported on a wide variety of devices, lowering the cost of creating rich applications to reach users everywhere.

Self Paced
Self-Paced
Data Structures and Algorithm Design Part I | 数据结构与算法设计(上) (edX) EdX
Tsinghua University,TsinghuaX

Data Structures and Algorithm Design Part I | 数据结构与算法设计(上) (edX)

Learn the basics of data structures and methods to design algorithms and analyze their performance. 本课程旨在围绕各类数据结构的设计与实现,揭示其中的规律原理与方法技巧;同时针对算法设计及其性能分析,使学生了解并掌握主要的套路与手段。

Self Paced
Self-Paced
Software Construction: Object-Oriented Design (edX) EdX
The University of British Columbia,UBCx

Software Construction: Object-Oriented Design (edX)

Learn how to design large software systems that solve real-world problems using object-oriented design techniques. By the end of the course, you will have a solid foundation in Java and Object-Oriented Design, as well as many software development concepts that can be applied to any language.

Self Paced
Self-Paced
Introduction to Java Programming: Starting to code in Java (edX) EdX
Universidad Carlos III de Madrid - UC3M,UC3Mx

Introduction to Java Programming: Starting to code in Java (edX)

Learn to program with Java in an easy and interactive way! In this introductory Java programming course, you will be introduced to powerful concepts such as functional abstraction, the object oriented programming (OOP) paradigm and Application Programming Interfaces (APIs). Examples and case studies will be provided so that you can implement simple programs on your own or collaborate with peers.

Self Paced
Self-Paced
Computational Thinking and Big Data (edX) EdX
University of Adelaide,AdelaideX

Computational Thinking and Big Data (edX)

Learn the core concepts of computational thinking and how to collect, clean and consolidate large-scale datasets. Computational thinking is an invaluable skill that can be used across every industry, as it allows you to formulate a problem and express a solution in such a way that a computer can effectively carry it out.

Self Paced
Self-Paced
Software Engineering: Introduction (edX) EdX
The University of British Columbia,UBCx

Software Engineering: Introduction (edX)

Learn how to apply engineering principles, such as Agile, to build a full-stack software system. You will learn software engineering principles that are applicable to the breadth of large-scale software systems. The course explores topics such as agile development, REST and Async programming, software specification, design, refactoring, information security, and more.

Self Paced
Self-Paced