• Disclaimer: MoocLab is community-supported. If you buy through our links, we may earn money from affiliate partners.


Founder at MoocLab
Staff member
Group Manager
Many of the schools offering online courses on Coursera are among the world's best universities for computer science, including six of US News and World Report's top 10 graduate computer science schools.

Course topics range from introductory web development to advanced algorithms, so there's something for learners of every level.

According to the Bureau of Labor Statistics job opportunities in software development are projected to grow by more than 20 percent between 2012 and 2022. Given that fact, it's no surprise that computer science is also one of the most popular topics on Coursera.

Discover the top Specializations in Computer Science currently offered on Coursera below:
Discover how to write elegant code that works the first time it is run.
This Specialization provides a hands-on introduction to functional programming using the widespread programming language, Scala. It begins from the basic building blocks of the functional paradigm, first showing how to use these blocks to solve small problems, before building up to combining these concepts to architect larger functional programs. You'll see how the functional paradigm facilitates parallel and distributed programming, and through a series of hands on examples and programming assignments, you'll learn how to analyze data sets small to large; from parallel programming on multicore architectures, to distributed programming on a cluster using Apache Spark. A final capstone project will allow you to apply the skills you learned by building a large data-intensive application using real-world data.

Java Programming: Solving Problems with Software
Building upon Duke’s “Programming and the Web for Beginners” course, you will grow in your ability to be a problem-solver and programmer by writing Java programs. We are excited that you've chosen to learn Java with us! You will soon be able to solve problems that you find interesting and useful by practicing a design process you will learn in this course.

Java concepts presented in this course include basic control flow; object-oriented concepts including classes and methods; custom, open-source classes; and a design-implement-debug process that you can continue to leverage as you build your experience and knowledge of programming principles.

The custom, open-source classes will provide a consistent application programming interface (API) so that you can write programs that access and transform images, websites, comma separated value (CSV) files and other data files using simple and accessible coding idioms built on the Java Iterable interface. You will learn to design, test, and debug programs and to find and read Java documentation that can serve as the basis for continued study of Java and programming.

After completing this course you will be able to:
1. Edit, compile, and run a Java program;
2. Use conditionals and for loops appropriately in a Java program;
3. Use Java API documentation in writing programs.
4. Debug a Java program using the scientific method;
5. Develop a Java method to solve a specific problem;
6. Develop a set of test cases as part of developing a program;
7. Create a class with multiple methods that work together to solve a problem; and
8. Use divide-and-conquer design techniques for a program that uses more than one method.

Learn algorithms through programming and advance your software engineering or data science career
The Specialization covers algorithmic techniques for solving problems arising in computer science applications. It is a mix of theory and practice: you will not only design algorithms and estimate their complexity, but you will get a deeper understanding of algorithms by implementing them in the programming language of your choice (C, C++, C#, Haskell, Java, JavaScript, Python2, Python3, Ruby, and Scala).

This Specialization is unique, because you will have a choice between two Capstone Projects, developed in partnership with industry leaders. In the Shortest Paths Capstone, you'll deal with road network analysis and social network analysis. You'll learn how to compute the fastest route between New York and Mountain View thousands of times faster than classic algorithms and close to those used in Google Maps. In the Bioinformatics Capstone, you'll learn how to assemble genomes from millions of short pieces and how algorithms fuel recent developments in personalized medicine.

Learn how to program and think like a Computer Scientist
This Specialization covers much of the material that first-year Computer Science students take at Rice University. Students learn sophisticated programming skills in Python from the ground up and apply these skills in building more than 20 fun projects. The Specialization concludes with a Capstone exam that allows the students to demonstrate the range of knowledge that they have acquired in the Specialization.

Learn how to apply concepts from interaction design and human computer interaction in order to design and build an interactive, professional looking website.
In this course you will learn how to apply concepts from interaction design and human computer interaction in order to design and build an interactive, professional looking website. You will learn how to make your web page designs adapt to different screen sizes using responsive grid layouts. You will learn how to add navigation and other design elements, and you will learn how to separate data and display using JavaScript objects and templates.

At the end of the course, you will be able to:
1. Explain why users need to know where they are, where they can go and what is on a web page
2. Create wireframe mockups of web pages
3. Identify the key functional elements of web pages
4. Use Bootstrap components to realise page designs
5. Use JavaScript data structures such as arrays and objects to define the data used in a web page
6. Use the Handlebars template library to convert data to HTML
7. Add interactivity to templates using JavaScript event listeners

In this course, you will complete:
1 website design assignment taking ~1 hour to complete
1 programming assignment taking ~1 hour to complete
4 quizzes, each taking ~20 minutes to complete
multiple practice quizzes, each taking ~5 minutes to complete

Participation in or completion of this online course will not confer academic credit for University of London programmes

iOS App Development Basics, the second course in the iOS App Development with Swift specialization, expands your programming skills and applies them to authentic app development projects. The topics covered in this course include Xcode basics, Core iOS and Cocoa Touch frameworks, simple user interface creation, MVC Architecture and much more. With a focus on using Apple’s components to access sensors like camera, microphone and GPS, by the end of this course you will be able to create a basic App according to specified parameters and guidelines.
Master client- and server-side web development in five comprehensive courses.
The first two courses in this Specialization include an orientation to client-side development, covering HTML/CSS, JavaScript/JQuery, and frameworks such as AngularJS and Bootstrap. On the server side, you’ll learn to implement NoSQL databases using MongoDB, work within a Node.js environment, and communicate to the client side through a RESTful API. You’ll also learn to create hybrid mobile applications, using the Ionic framework and Cordova. In the final Capstone Project, you’ll apply your skills to build a fully functional web and hybrid mobile application with back-end support.

Master the knowledge and skills necessary to develop maintainable mobile computing apps
This Specialization enables learners to successfully apply core Java programming languages features & software patterns needed to develop maintainable mobile apps comprised of core Android components, as well as fundamental Java I/O & persistence mechanisms. Learners who successfully complete this Specialization will be well-prepared to master the more advanced material in the subsequent "Mobile Cloud Computing with Android" Specialization.

The Capstone project will integrate the material from throughout the Specialization to exercise and assess the ability of learners to create an interesting Android app by applying knowledge and skills learned in previous MOOCs, including Java programming features, Android Studio tools, Android Activity components, Material Design, file I/O and data persistence, unit testing, and software patterns. The project itself will be similar in design goals to previous assignments, however it will provide less of the skeleton code than earlier MOOCs provide to enable more creativity to learners and greater opportunity for learners to customize the app.

Build a responsive and accessible web portfolio using HTML5, CSS3, and JavaScript
This Specialization covers how to write syntactically correct HTML5 and CSS3, and how to create interactive web experiences with JavaScript. Mastering this range of technologies will allow you to develop high quality web sites that, work seamlessly on mobile, tablet, and large screen browsers accessible. During the capstone you will develop a professional-quality web portfolio demonstrating your growth as a web developer and your knowledge of accessible web design. This will include your ability to design and implement a responsive site that utilizes tools to create a site that is accessible to a wide audience, including those with visual, audial, physical, and cognitive impairments.

Design that delights users
You will learn how to design technologies that bring people joy, rather than frustration. You'll learn how to generate design ideas, techniques for quickly prototyping them, and how to use prototypes to get feedback from other stakeholders like your teammates, clients, and users. You'll also learn principles of visual design, perception, and cognition that inform effective interaction design.

Design and create your own game, and bring it to market, in four hands-on courses.
This Specialization covers the theoretical and practical foundations of video game production using the Unity 3D game engine. The Specialization is taught by faculty at Michigan State University with over fifty years of combined experience building games and teaching game production. Michigan State University is one of the top-rated game design and development programs in North America. You’ll learn to develop a game concept; prototype, test, and iterate on your ideas; and navigate licensing, marketing, and other business considerations. The specialization builds a solid foundation for industry roles as a gameplay designer, level designer, technical designer, technical artist, programmer, or producer. In the final Capstone Project, you’ll build an original market-ready game while interacting with a supportive community of designers and developers. The capstone partner for the specialization is the online game portal Kongregate, which provides an avenue for distribution of the capstone project, as well as a pathway for monetization for aspiring game developers.

Master an adaptive approach to product development
In this Specialization, you'll gain an understanding and appreciation of the principles and practice of agile management. You'll learn to coordinate all aspects of the agile development process, including running design sprints, managing teams, and fostering a culture of experimentation. In the final Capstone Project, you'll apply what you've learned to guide a real-world software development project to successful completion.

Develop programs to gather, clean, analyze, and visualize data.
This Specialization builds on the success of the Python for Everybody course and will introduce fundamental programming concepts including data structures, networked application program interfaces, and databases, using the Python programming language. In the Capstone Project, you’ll use the technologies learned throughout the Specialization to design and create your own applications for data retrieval, processing, and visualization.