Enroll for Free Online Computer Science Courses On edX: From Harvard, Massachusetts Institute of Technology (MIT) and Microsoft. We live in a mobile-first and cloud-first world. Computing is ubiquitous, and experiences span devices and exhibit ambient intelligence. Billions of sensors, screens and devices – in conference rooms, living rooms, cities, cars, phones, PCs – are forming a vast network and streams of data that simply disappear into the background of our lives.
Free Computer Science Online Courses On edX: From Harvard, MIT, Microsoft

This computing power will digitize nearly everything around us, and will derive insights from all of the data being generated by interactions among people and between people and machines. We are moving from a world where computing power was scarce to a place where it now is almost limitless, and where the true scarce commodity is increasingly human attention.

In this new connected world, we believe technology creates opportunity, and edX courses are designed to provide you with the core development skills needed to be successful in the cloud-first, mobile-first world.

edX courses, taught by Microsoft, Harvard, MIT experts, let you learn through hands-on experience with broad reach, cutting-edge technologies in areas including cloud services, mobile development, and data sciences. Whether you’re a student or a seasoned technologist, these courses can empower you to build innovative applications, services, and experiences on the Microsoft platform that will help you make a meaningful impact in today’s interconnected world.

1- CS50's Web Programming with Python and JavaScript : Harvard

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 Flask, Django, and Bootstrap.

Topics include database design, scalability, security, and user experience. Through hands-on projects, you'll learn to write and use APIs, create interactive UIs, and leverage cloud services like GitHub and Heroku. By course's end, you'll emerge with knowledge and experience in principles, languages, and tools that empower you to design and deploy applications on the Internet.

Enroll

What you'll learn:

Git
HTML, CSS
Flask
SQL
APIs
JavaScript
Front Ends
Django
Testing, CI/CD
Scalability
Security

2- Introduction to Python for Data Science: Microsoft

The ability to analyze data with Python is critical in data science. Learn the basics, and move on to create stunning visualizations.

Python is a very powerful programming language used for many different applications. Over time, the huge community around this open source language has created quite a few tools to efficiently work with Python. In recent years, a number of tools have been built specifically for data science. As a result, analyzing data with Python has never been easier.

In this practical course, you will start from the very beginning, with basic arithmetic and variables, and learn how to handle data structures, such as Python lists, Numpy arrays, and Pandas DataFrames. Along the way, you’ll learn about Python functions and control flow. Plus, you’ll look at the world of data visualizations with Python and create your own stunning visualizations based on real data.

edX offers financial assistance for learners who want to earn Verified Certificates but who may not be able to pay the fee. To apply for financial assistance, enroll in the course, then follow this link to complete an application for assistance.

Enroll

What you'll learn

Explore Python language fundamentals, including basic syntax, variables, and types
Create and manipulate regular Python lists
Use functions and import packages
Build Numpy arrays, and perform interesting calculations
Create and customize plots on real data
Supercharge your scripts with control flow, and get to know the Pandas DataFrame

3- Introduction to ReactJS: Microsoft

Learn why developers love ReactJS, an open-source JavaScript library for building user interfaces, in this introductory course.

ReactJS is the latest JavaScript framework to capture the hearts and attention of the frontend developer community.

Developers love ReactJS because it highly performant and renders changes almost instantly. The best part about ReactJS is that it is a relatively small framework and does not take too much time to learn!

Starting with the basics of JSX syntax, this course will teach you how to model UI components using React Components. By the end you should be able to manage the state and life cycle of React Components and use them to dynamically generate lists and forms.

Enroll

What you'll learn

How to use the JSX syntax to create React Elements
How to build React applications using React Components
How to manage the state and lifecycle methods of React Components
How to build lists and forms using React Components

4- Introduction to Computer Science and Programming Using Python: MIT

An introduction to computer science as a tool to solve real-world analytical problems using Python 3.5.

This course is the first of a two-course sequence: Introduction to Computer Science and Programming Using Python, and Introduction to Computational Thinking and Data Science. Together, they are designed to help people with no prior exposure to computer science or programming learn to think computationally and write programs to tackle useful problems. Some of the people taking the two courses will use them as a stepping stone to more advanced computer science courses, but for many it will be their first and last computer science courses. This run features lecture videos, lecture exercises, and problem sets using Python 3.5. Even if you previously took the course with Python 2.7, you will be able to easily transition to Python 3.5 in future courses, or enroll now to refresh your learning.

Since these courses may be the only formal computer science courses many of the students take, we have chosen to focus on breadth rather than depth. The goal is to provide students with a brief introduction to many topics so they will have an idea of what is possible when they need to think about how to use computation to accomplish some goal later in their career. That said, they are not "computation appreciation" courses. They are challenging and rigorous courses in which the students spend a lot of time and effort learning to bend the computer to their will.

Enroll

What you'll learn

A Notion of computation
The Python programming language
Some simple algorithms
Testing and debugging
An informal introduction to algorithmic complexity
Data structures

5- Angular Fundamentals: Microsoft

Learn the fundamentals of implementing Angular in your web applications.

In this course, you will learn about the basics of how Angular works, and why Angular has emerged as a popular framework for JavaScript/TypeScript application development. You will also learn how to properly set up your development environment for creating an Angular app, including installing VS Code, Node.JS, TypeScript, and the Angular CLI.

Enroll

What you'll learn

Understand Angular and how it works
How to set up development environment
Typescript in Angular

6- Introduction to C++: Microsoft

Get a brief introduction to the C++ language from the experts at Microsoft.

C++ is a general purpose programming language that supports various computer programming models such as object-oriented programming and generic programming. It was created by Bjarne Stroustrup and, “Its main purpose was to make writing good programs easier and more pleasant for the individual programmer.”

By learning C++, you can create applications that will run on a wide variety of hardware platforms such as personal computers running Windows, Linux, UNIX, and Mac OS X, as well as small form factor hardware such as IoT devices like the Raspberry PI and Arduino–based boards.

(Bjarne Stroustrup, The C++ Programming Language, Third Edition. Reading, MA: Addison-Wesley, 1997).

Enroll

What you'll learn

C++ Syntax
C++ Language Fundamentals
How to Create Functions in C++
Prepare yourself for intermediate and advanced C++ topics in follow-up courses taught by Microsoft

7- Learn to Program in Java: Microsoft

Get started on the path to becoming a software engineer by learning core coding skills in Java—one of the most popular programming languages.

Ready to start your programming journey? Being a software engineer is much more than simply writing code—it requires a strong conceptual understanding of computer science. In this course, which was developed through a combination of academic and industry perspectives, learn not only how to code in Java but also how to break down problems and implement their solutions using some of the most fundamental computer science tools.

Get plenty of hands-on Java coding experience with methods, logic, loops, variables, parameters, returns, and recursion. And write your code using industry-standard tools and practices to help you build strong habits as you grow your development skill set.

Whether you are preparing for advanced university computer science courses, an entry-level software engineering position, or the Advanced Placement Computer Science A exam, get the tools you need to succeed in this practical, self-paced Java course.

Enroll

What you'll learn

Basic Java commands and APIs using industry tools
Foundational data organization and manipulation
Code control structures, such as loops and if/else statements
How to structure code using methods, parameters, and returns

8- Writing Professional Code: Microsoft

Writing professional code is a team sport. Learn how to elevate your game to the next level.

“Professional” sounds boring, right? Wrong! Join expert Andrew Byrne, who has more than 25 years of software development experience, and see how fun it can be to apply your coding skills to actual problems. Create an online portfolio of code on GitHub, and receive feedback from your peers through code reviews and discussions.

Being a professional developer is about managing change, evolving a codebase, maintaining quality, and keeping your users and your business safe.

As a new coder, step up your game as you learn and practice key skills that developers use every day. Work with a collection of code in a version control system like Git, use open source (OSS) libraries, make updates to existing code, improve its readability, and even take a look at security. Don’t miss this opportunity to be part of the team, and get practical experience with real code in a real coding environment.

Enroll

What you'll learn

Work with code that’s maintained in a version control system, such as Git.
Improve code and make it easier to understand using refactoring, code comments, naming conventions and documentation.
Update an existing code base.
Code with confidence with the help of unit tests.
Give and receive meaningful feedback in a peer code review.
Contribute to Open-Source Software (OSS) projects on GitHub.
Learn how to keep your code secure and respect your user’s privacy.

9- DevOps Practices and Principles: Microsoft

An introduction to the core values, principles and practices involved in implementing DevOps environments and solutions.

This course provides the fundamental concepts to prepare you for deeper dives into specific DevOps practices.

We will cover deploying and configuring standardized infrastructure, automating builds and deployments using continuous integration and continuous deployment with Visual Studio Team Services (VSTS) and automating testing before release and whilst in production.

The course will also cover continuous learning from production, and how to improve and scale business results based on application monitoring.

After completing this course, you should be able to understand how to begin crafting a release pipeline that includes continuous integration techniques, continuous testing practices, monitoring, treating infrastructure and configuration as code, and deploying frequently and automatically.

It is intended for both Development and Operations professionals, who are interested in learning and adopting DevOps practices.

Enroll

What you'll learn

DevOps core values, principles and practices
How to deploy to IaaS and PaaS environments in Microsoft Azure using ARM templates, Desired State Configuration (DSC) and other deployment tools
Build and deploy applications automatically to Dev, Test and Production environments
Continuous learning from production to improve and scale business results.
Unit tests, Integration tests, load tests, UI tests and test driven-development
Data retention strategies, exposure control strategies, and hypothesis-driven development.

10- Object Oriented Programming in Java: Microsoft

One of the most important skills in software development is designing how code is organized. In this Java course, learn how to apply industry-standard practices as you structure your software.

What do hiring managers look for in entry-level developers? According to a recent survey, one of the most requested job skills is "strong object oriented design". Yet traditional computer science programs rarely focus on this area.

In this Java course, examine the role of objects in code, explore how to use them, and see how to design them for optimal code reuse and structure. Get tons of hands-on coding experience using popular Java objects, like Arrays and Lists, and then leverage those learnings to design your own object hierarchies. Plus, practice using inheritance, interfaces, abstract classes, and encapsulation techniques to help you manage large code bases.

Get comfortable employing industry standards in designing and managing complex relationships within a code base, as you add to your computer science skill set.

Enroll

What you'll learn

How to employ single and two-dimensional arrays to store complex data
Different implementations of the Java List interface
Design best practices when creating your own objects from scratch
When to properly leverage inheritance, interfaces, and abstract classes to relate objects to one another

11- Introduction to Computational Thinking and Data Science: MIT

6.00.2x is an introduction to using computation to understand real-world phenomena.

6.00.2x will teach you how to use computation to accomplish a variety of goals and provides you with a brief introduction to a variety of topics in computational problem solving . This course is aimed at students with some prior programming experience in Python and a rudimentary knowledge of computational complexity. You will spend a considerable amount of time writing programs to implement the concepts covered in the course. For example, you will write a program that will simulate a robot vacuum cleaning a room or will model the population dynamics of viruses replicating and drug treatments in a patient's body.

Topics covered include:

Advanced programming in Python 3
Knapsack problem, Graphs and graph optimization
Dynamic programming
Plotting with the pylab package
Random walks
Probability, Distributions
Monte Carlo simulations
Curve fitting
Statistical fallacies

Enroll

What you'll learn

Plotting with the pylab package
Stochastic programming and statistical thinking
Monte Carlo simulations

12- Machine Learning with Python: from Linear Models to Deep Learning: MIT

An in-depth introduction to the field of machine learning, from linear models to deep learning and reinforcement learning, through hands-on Python projects. — Course 4 of 4 in the MITx MicroMasters program in Statistics and Data Science.

Machine learning methods are commonly used across engineering and sciences, from computer systems to physics. Moreover, commercial sites such as search engines, recommender systems (e.g., Netflix, Amazon), advertisers, and financial institutions employ machine learning algorithms for content recommendation, predicting customer behavior, compliance, or risk.

As a discipline, machine learning tries to design and understand computer programs that learn from experience for the purpose of prediction or control.

In this course, students will learn about principles and algorithms for turning training data into effective automated predictions.

Enroll

13- Using Python for Research: Harvard

Take your introductory knowledge of Python programming to the next level and learn how to use Python 3 for your research.

This course bridges the gap between introductory and advanced courses in Python. While there are many excellent introductory Python courses available, most typically do not go deep enough for you to apply your Python skills to research projects. In this course, after first reviewing the basics of Python 3, we learn about tools commonly used in research settings. This version of the course includes a new module on statistical learning.

Using a combination of a guided introduction and more independent in-depth exploration, you will get to practice your new Python skills with various case studies chosen for their scientific breadth and their coverage of different Python features.

Enroll

What you'll learn

Python 3 programming basics (a review)
Python tools (e.g., NumPy and SciPy modules) for research applications
How to apply Python research tools in practical settings

14- CS50's Introduction to Game Development: Harvard

Learn about the development of 2D and 3D interactive games in this hands-on course, as you explore the design of games such as Super Mario Bros., Pokémon, Angry Birds, and more.

In a quest to understand how video games themselves are implemented, you'll explore the design of such childhood games as:

Super Mario Bros.
Pong
Flappy Bird
Breakout
Match 3
Legend of Zelda
Angry Birds
Pokémon
3D Helicopter Game
Dreadhalls
Portal

What you'll learn

Via lectures and hands-on projects, the course explores principles of 2D and 3D graphics, animation, sound, and collision detection using frameworks like Unity and LÖVE 2D, as well as languages like Lua and C#. By class’s end, you'll have programmed several of your own games and gained a thorough understanding of the basics of game design and development.

Enroll

15- CS50's Mobile App Development with React Native: Harvard

Learn about mobile app development with React Native, a popular framework maintained by Facebook that enables cross-platform native apps using JavaScript without Java or Swift.

This course picks up where CS50 leaves off, transitioning from web development to mobile app development with React Native.

The course introduces you to modern JavaScript (including ES6 and ES7) as well as to JSX, a JavaScript extension. Through hands-on projects, you'll gain experience with React and its paradigms, app architecture, and user interfaces. The course culminates in a final project for which you'll implement an app entirely of your own design.

What you'll learn

JavaScript
ES6
React, JSX
Components, Props, State, Style
Components, Views, User Input
Debugging
Data
Navigation
Expo Components
Redux
Performance
Shipping, Testing

Enroll

16- CS50's Understanding Technology: Harvard

This is CS50's introduction to technology for students who don’t (yet) consider themselves computer persons. Designed for those who work with technology every day but don’t necessarily understand how it all works underneath the hood or how to solve problems when something goes wrong, this course fills in the gaps, empowering you to use and troubleshoot technology more effectively. Through lectures on hardware, the Internet, multimedia, security, programming, and web development, this course equips you for today’s technology and prepares you for tomorrow’s as well.

What you'll learn

internet
multimedia
security
web development
programming

Enroll

17- CS50's Computer Science for Business Professionals: Harvard

This is CS50’s introduction to computer science for business professionals, designed for managers, product managers, founders, and decision-makers more generally. Whereas CS50 itself takes a bottom-up approach, emphasizing mastery of low-level concepts and implementation details thereof, this course takes a top-down approach, emphasizing mastery of high-level concepts and design decisions related thereto.

Through lectures on computational thinking, programming languages, internet technologies, web development, technology stacks, and cloud computing, this course empowers you to make technological decisions even if not a technologist yourself. You’ll emerge from this course with first-hand appreciation of how it all works and all the more confident in the factors that should guide your decision-making.

What you'll learn

computational thinking
programming languages
internet technologies
web development
technology stacks
cloud computing

Enroll

18- CS50's AP® Computer Science Principles: Harvard

This is CS50 AP, Harvard University's introduction to the intellectual enterprises of computer science and the art of programming for students in high school, which satisfies the College Board's new AP CS Principles curriculum framework.

An entry-level course taught by David J. Malan, CS50 AP 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, 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 2015, the on-campus version of CS50 was Harvard's largest course.

Students in high school may receive AP credit for this course provided their school approves the credit and administers the College Board's end-of-year exam. Students who earn a satisfactory score on 9 problem sets (i.e., programming assignments) and a final project are also eligible to receive a verified certificate from HarvardX.

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, 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

Enroll