EdX

Paradigms of Computer Programming - Abstraction and Concurrency (edX)

Paradigms of Computer Programming - Abstraction and Concurrency (edX)

This course covers data abstraction, state, and deterministic dataflow in a unified framework with practical code exercises.

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

Louv1.2x and its predecessor Louv1.1x together give an introduction to all major programming concepts, techniques, and paradigms in a unified framework. We cover the three main programming paradigms: functional, object-oriented, and declarative dataflow.
The two courses are targeted toward people with a basic knowledge of programming. It will be most useful to beginning programming students, but the unconventional approach should be insightful even to seasoned professionals.
Louv1.1x (Fundamentals) covers functional programming, its techniques and its data structures. You’ll use simple formal semantics for all concepts, and see those concepts illustrated with practical code that runs on the accompanying open-source platform, the Mozart Programming System.
Louv1.2x (Abstraction and Concurrency) covers data abstraction, state, and concurrency. You’ll learn the four ways to do data abstraction and discuss the trade-offs between objects and abstract data types. You’ll be exposed to deterministic dataflow, the most useful paradigm for concurrent programming, and learn how it avoids race conditions.

What you'll learn:

  • How to specify problems, break them down into their basic steps, and design algorithms and abstractions to solve them
  • How to choose the right programming paradigm and write a program in this paradigm to solve a problem
  • How to use formal semantics to reason about program correctness
  • How to write small concurrent programs in the deterministic dataflow paradigm
Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Using Python for Research (edX) EdX
HarvardX,Harvard University

Using Python for Research (edX)

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.

Self Paced
Self-Paced
Computing in Python I: Fundamentals and Procedural Programming (edX) EdX
Georgia Institute of Technology,GTx

Computing in Python I: Fundamentals and Procedural Programming (edX)

Learn the fundamentals of computing in Python, including variables, operators, and writing and debugging your own programs. This course starts from the beginning, covering the basics of how a computer interprets lines of code; how to write programs, evaluate their output, and revise the code itself; how to work with variables and their changing values; and how to use mathematical, boolean, and relational operators.

Self Paced
Self-Paced
Software Construction: Data Abstraction (edX) EdX
The University of British Columbia,UBCx

Software Construction: Data Abstraction (edX)

Learn powerful data abstraction and decomposition techniques to build large, complex programs. The course begins with the topic of data abstraction - from specification to implementation. Particular attention is given to how to write robust tests using JUnit. Then the course expands on these ideas to explore how type hierarchies and polymorphism can be used to decrease redundancy in your code. The course wraps up with a discussion of how to design robust classes.

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
Introduction to Object-Oriented Programming with Java II: Object-Oriented Programming and Algorithms (edX) EdX
Georgia Institute of Technology,GTx

Introduction to Object-Oriented Programming with Java II: Object-Oriented Programming and Algorithms (edX)

Learn the basics of object-oriented programming and algorithms. Students will build on the skills learned from “Introduction to Object-Oriented Programming with Java I: Foundations and Syntax Basics” and learn the basics of writing classes that serve as blueprints of concepts or objects that are represented in a programming problem. Students will leverage the concepts of inheritance, interfaces, and polymorphism to program reusability and flexibility in classes. Finally, students will gain experience walking through and analyzing algorithms that are applied on data (including objects) in many object-oriented programs.

Self Paced
Self-Paced
Introduction to Computer Science and Programming (edX) EdX
Tokyo Institute of Technology,TokyoTechX

Introduction to Computer Science and Programming (edX)

The term “Computation” refers to the action performed by a computer. A computation can be a basic operation and it can also be a sophisticated computer simultation requiring a large amount of data and substantial resources. This course aims at introducing learners with no prior knowledge to basics and key concepts of computer science. By following the lectures and exercises of this course you will have an understanding of algorithms and you will get a real experience of programming using the language Ruby.

Self Paced
Self-Paced
AI Chatbots without Programming (edX) EdX
IBM

AI Chatbots without Programming (edX)

Chatbots are increasingly in demand among global businesses. This course will teach you how to build, analyze, deploy and monetize chatbots - with the help of IBM Watson and the power of AI. Please Note: Learners who successfully complete this IBM course can earn a skill badge — a detailed, verifiable and digital credential that profiles the knowledge and skills you’ve acquired in this course. Enroll to learn more, complete the course and claim your badge!

Self Paced
Self-Paced
Deploying TinyML (edX) EdX
HarvardX,Harvard University

Deploying TinyML (edX)

Learn to program in TensorFlow Lite for microcontrollers so that you can write the code, and deploy your model to your very own tiny microcontroller. Before you know it, you’ll be implementing an entire TinyML application. Have you wanted to build a TinyML device? In Deploying TinyML, you will learn the software, write the code, and deploy the model to your own tiny microcontroller-based device. Before you know it, you’ll be implementing an entire TinyML application.

Self Paced
Self-Paced
Java Programming Fundamentals (edX) EdX
Galileo University,GalileoX

Java Programming Fundamentals (edX)

Your career as a program developer starts here. Gain entry-level programing skills in Java language, and prepare yourself to handle any task that is required in any programming job. Java is one of the most in-demand programming languages today. This course is designed to provide students the basic skills and knowledge on Java.

Self Paced
Self-Paced
Programación para todos (empezando con Python) (edX) EdX
University of Michigan,MichiganX

Programación para todos (empezando con Python) (edX)

Este curso en línea es una introducción "sin prerrequisitos" a la programación en Python. Aprenderás sobre las variables, la ejecución condicional, la ejecución repetida y cómo usamos las funciones. Este curso de Python tiene el objetivo de enseñar a todos lo básico de la programación de computadoras usando Python. Conocerás cómo construir un programa de una serie de instrucciones simples en Python.

Self Paced
Self-Paced