Web Application Architectures (Coursera)

Web Application Architectures (Coursera)

Learn how to build and deploy modern web application architectures – applications that run over the Internet, in the "cloud," using a browser as the user interface.

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

A newer version of this course is available here:
Web Application Development: Basic Concepts

This course explores the development of web application architectures from an engineering perspective. We will consider the fundamental design patterns and philosophies associated with modern web application architectures, along with their major components. By the end of this course, I expect you to be able to:

  • Design, develop and deploy a modern web application. This course is not about how to build a pretty web page, it's about how to build and deploy the full stack of protocols and technologies associated with a complete web app. That said, it is not possible for you to become an expert in this area in a few weeks. My goal, rather, is to put you on the right path by providing a solid foundation and framework for understanding web applications, allowing you to dig deeper and learn more on your own. The next bullet points describe how we're going to do this.
  • Understand the major architectural components in web apps, and how they fit together. Modern web apps are complex. A typical application has a database along with numerous scripts on one end of the web stack, a web server in the middle that delivers information over the Internet, and a user's browser on the other end of the web stack. Even getting started in trying to understand these components can be overwhelming. Consider just the programming languages involved in a typical web stack: from the database (SQL), to the web server (scripting language), to the browser (JavaScript, HTML, CSS), we're dealing with five different programming languages, not to mention the protocols they're operating over – and you need to know a little about them too! We'll introduce a number of software design patterns throughout the course that are aimed at helping you to manage this complexity.
  • Use Ruby on Rails. We're going to learn about web apps through the Ruby on Rails framework. Rails is a framework for creating web applications that is built on top of the Ruby programming language. I believe this is one of the best frameworks for learning about web applications, and it's also proving highly successful as a platform for commercial offerings. That said, there are many other frameworks available, and the concepts you will learn using Rails are transferable to these other frameworks.
  • Better understand modern software engineering practice. We’ll be using the latest tools and practices in software development, source code control, testing, and application deployment. This will include exposure to agile development practices, the numerous tools that software engineers are expected to know how to use, and the cloud-based resources that are becoming increasingly important in web applications.
Note: This course is currently not available.

Related Courses

VLSI CAD Part II: Layout (Coursera) Coursera
University of Illinois at Urbana-Champaign

VLSI CAD Part II: Layout (Coursera)

A modern VLSI chip is a remarkably complex beast: billions of transistors, millions of logic gates deployed for computation and control, big blocks of memory, embedded blocks of pre-designed functions designed by third parties (called “intellectual property” or IP blocks). How do people manage to design these complicated chips? Answer: a sequence of computer aided design (CAD) tools takes an abstract description of the chip, and refines it step-wise to a final design.

Sep 21st 2026
5-12 Weeks
La recherche documentaire (Coursera) Coursera
École Polytechnique

La recherche documentaire (Coursera)

Ce cours vise principalement à permettre aux étudiants d’identifier les sources pertinentes dans un domaine donné, leur apprendre à construire un état de l’art et à évaluer les sources, en particulier celles en accès libre sur Internet. Il cherche également à optimiser la recherche documentaire en incitant les étudiants à tirer le meilleur parti des outils et requêtes d’interrogation des bases de données. A l'issue de ce cours, ils devront être capables de construire et alimenter une bibliographie ordonnée, ainsi que de citer convenablement leurs sources pour éviter le plagiat.

Sep 28th 2026
3 Weeks
Algorithms, Part I (Coursera) Coursera
Princeton University

Algorithms, Part I (Coursera)

This course covers the essential information that every serious programmer needs to know about algorithms and data structures, with emphasis on applications and scientific performance analysis of Java implementations. Part I covers elementary data structures, sorting, and searching algorithms. Part II focuses on graph- and string-processing algorithms.

Sep 21st 2026
5-12 Weeks
Programación en Python (Coursera) Coursera
Universidad de los Andes

Programación en Python (Coursera)

¡Te damos la bienvenida al curso de Programación en Python de la Universidad de los Andes! El propósito de este curso es ofrecerte un ambiente interactivo para que desarrolles tus habilidades de pensamiento computacional, aprendas a programar en el lenguaje Python y te entrenes en la resolución de problemas utilizando un computador. La estrategia pedagógica empleada es el aprendizaje activo basado en casos.

Sep 28th 2026
4 Weeks
Open Source Programming - Master's (Coursera) Coursera
Illinois Tech

Open Source Programming - Master's (Coursera)

Contemporary open-source programming languages and frameworks are presented in this course. Students will consider design and development topics in system, graphical user interface, network, and web programming. Dynamic scripting languages are covered using object-oriented, concurrent, and functional programming paradigms. Concepts gained throughout the course are reinforced with numerous exercises which will culminate in an open-source programming project.

Sep 28th 2026
5-12 Weeks
Fundamentals of Flux (Coursera) Coursera
Board Infinity

Fundamentals of Flux (Coursera)

Welcome to the "Fundamentals of Flux" course, where you will embark on a journey to become proficient in Flux, a robust architecture for building web applications. Over the course of two comprehensive modules, you will acquire the skills and knowledge necessary to create scalable, maintainable, and efficient web applications using Flux.

Sep 28th 2026
2 Weeks
Programming Mobile Applications for Android Handheld Systems: Part 1 (Coursera) Coursera
University of Maryland, College Park

Programming Mobile Applications for Android Handheld Systems: Part 1 (Coursera)

This course introduces you to the design and implementation of Android applications for mobile devices. You will develop an app from scratch, assuming a basic knowledge of Java, and learn how to set up Android Studio, work with various Activities and create simple user interfaces to make your apps run smoothly.

Sep 28th 2026
5-12 Weeks
¡A Programar! Una introducción a la programación (Coursera) Coursera
University of Edinburgh,Universidad ORT Uruguay

¡A Programar! Una introducción a la programación (Coursera)

¿Alguna vez pensaste en crear tus propios juegos de computadora, pero no tenías idea cómo hacerlo o por dónde comenzar? Este curso te enseñará a programar utilizando Scratch, un lenguaje de programación visual muy fácil de usar, y más importante aún, aprenderás los principios fundamentales de la computación para que comiences a pensar como ingeniero/a de software.

Sep 21st 2026
5-12 Weeks
Code Yourself! An Introduction to Programming (Coursera) Coursera
University of Edinburgh,Universidad ORT Uruguay

Code Yourself! An Introduction to Programming (Coursera)

Have you ever wished you knew how to program, but had no idea where to start from? This course will teach you how to program in Scratch, an easy to use visual programming language. More importantly, it will introduce you to the fundamental principles of computing and it will help you think like a software engineer.

Sep 28th 2026
5-12 Weeks