Web Application Development: Basic Concepts

About this course: This is the first course in a Coursera Specialization track involving Web Application Architectures. This course will give you the basic background, terminology and fundamental concepts that you need to understand in order to build modern full stack web applications. A full stack web developer is familiar with each "layer" of the software technologies involved in a web application, including data modeling and database technologies, the web server environment and middleware components, network protocols, the user interface and basic visual design and user interaction concepts. In this course we will learn by doing. We will start by learning the major components of web application architectures, along with the fundamental design patterns and philosophies that are used to organize them. You will build and continually refine a fully functional full-stack web application as we progress through the modules in this course. Along the way you will be exposed to agile software development practices, numerous tools that software engineers are expected to know how to use, and a modern web application development framework. This course is also available in Spanish.

Created by:  University of New Mexico

  • Greg Heileman
    Taught by:  Greg Heileman, Professor and Associate Provost
    Electrical and Computer Engineering

  • Manel Martínez-Ramón
    Taught by:  Manel Martínez-Ramón, Professor
    Electrical and Computer Engineering
Commitment5 weeks of study, 2-3 hours/week
How To PassPass all graded assignments to complete the course.
User Ratings
Average User Rating 4.6See what learners said
1 video
  1. Video: Welcome
Module #1 - Web Applications in Context
This module sets the context for what we will study in this specialization by first providing a historical perspective on computing and web applications. Next we provide an overview of how the Internet works, and then we discuss how web applications have evolved over the past few decades. After that we’ll discuss some of the elements of modern software practice, including the typical tools that software engineers now use and the agile development practices they follow. The notion of software design patterns will introduced, and the n-tier architecture design pattern, fundamental to modern web application design, is then presented. Will also discuss a few current topics related to web application development. Finally, we will show you how to set up the software development environment you will use throughout the remainder of the courses in this.
22 videos3 readings
  1. Reading: Learning Outcomes
  2. Reading: Lesson #1 - Web Applications: An Overview
  3. Video: Web Applications - An Overview
  4. Video: Video 1: Modern Web Applications
  5. Video: Video 2: Historical Perspectives
  6. Discussion Prompt: Reflection #1
  7. Video: Video 3: Web App Characteristics
  8. Discussion Prompt: Reflection #2
  9. Video: Video 4: Course Overview
  10. Video: Video 5: Interview with Edwin Agbenyega
  11. Reading: How the Internet Works: An Overview
  12. Video: Video 1: Networking Concepts
  13. Video: Video 2: The Internet
  14. Video: Video 3: Internet Hot Topics
  15. Video: Video 4: Interview -Brian Pietrewicz
  16. Video: What is a Web Application? - An Overview
  17. Video: Video 1: Web Apps - A Model
  18. Video: Video 2: Web App Definition
  19. Video: Video 3: Evolution of Web Apps
  20. Video: Video 4: Design Patterns
  21. Video: Video 5: n-Tier Architecture
  22. Video: Setting up your Development Environment - An Overview
  23. Video: Video 1: Setting up your Development Environment
  24. Video: Video 2: Ruby and Rails
  25. Video: Video 3: Editors, GIT, SQLiteBrowser
  26. Video: Video 4: Web Developer Tools
  27. Video: Video 5: Interview - Melanie Moses
Graded: Web Applications in Context
Module #2 - Web Applications Frameworks
In this module you will learn about web application frameworks. We will start by talking about the evolution of software and programming languages, and then talk about software application frameworks. The fundamental trade-off we will consider is programmer productivity versus program efficiency. Next you will learn about web application frameworks, as well as the model-view-controller design pattern that is the backbone for many of these frameworks. We will also consider how these frameworks support the agile programming principles associated with modern software practice. This will include a discussion of distributed version control systems and you will learn how to use the popular Git system. We will also demonstrate how to use Git with a Ruby on Rails application. We will use Git to submit all of the programming applications in this specialization.
20 videos1 reading
  1. Reading: Learning Outcomes
  2. Video: What are Web App Frameworks? - An Overview
  3. Video: Video 1: What is Programming?
  4. Video: Video 2: Application Frameworks
  5. Video: Video 3: Web Application Frameworks
  6. Video: Video 4: The Model-View-Controller Design Pattern
  7. Video: The Ruby on Rails Framework - An Overview
  8. Video: Video 1: Your First Rails Program
  9. Video: Video 2: Scaffolding
  10. Video: Video 3: Ruby Programming I: Objects, Classes and Inheritance
  11. Video: Video 4: Ruby Programming II: Strings, Regular Expressions and Symbols
  12. Video: Video 5: Ruby Programming III: Expressions and Control Structures
  13. Video: Modern Software Practices - An Overview
  14. Video: Video 1 -Software Processes
  15. Video: Video 2 - Agile Development
  16. Video: Video 3 - The Blog App
  17. Video: Version Control - An Overview
  18. Video: Video 1 - Why Version Control
  19. Video: Video 2 - Version Control Basics
  20. Video: Video 3 - Git Introduction
  21. Video: Video 4 - Git in Practice
Graded: Blog App Iteration 1
Module #3 - Managing Data
A successful web application provides information t o users that is (1) useful, and also (2) easy to access and understand. This information is often collected from users, as well as from other information sources, and must be stored in a manner that allows it to be manipulated by the web application. The typical app roach is to store this data in a relational database. In this module you will learn some basic concepts associated with modeling the data in a web application, including h ow to specify the relationships between various data entities. We will also investigate ho w to hook a web application up to a back- end data store, along with good design techniques t hat will make it easier to use the data in your web applications by maintaining consistency th roughout the entire web stack.
20 videos1 reading
  1. Reading: Learning Outcomes
  2. Video: Relational Databases in Web Apps - An Overview
  3. Video: Video #1 - Data Management in Web Apps
  4. Video: Video #2 - Relational Databases: Basic Concepts
  5. Video: Video #3 - Database Schema I
  6. Video: Video #4 - Database Schema II
  7. Video: Database Integration in Web Apps - An Overview
  8. Video: Video #1 - Application Environments
  9. Video: Video #2 - Database Configuration
  10. Video: Video #3 - Database Management
  11. Video: Video #4 - Blog App Databases
  12. Video: Active Record Design Pattern - An Overview
  13. Video: Video #1 - Active Record Design - An Overview
  14. Video: Video #2 - Active Record in Rails
  15. Video: Video #3 - Database Migrations
  16. Video: Video #4 - Blog - Iteration 2
  17. Video: Database Associations and Validations - An Overview
  18. Video: Video #1 - Associations
  19. Video: Video #2 -Blog App - Iteration 3
  20. Video: Video #3 - Validations
  21. Video: Video #4 - Blog App - Iteration 4
Graded: Blog App - Iteration 2, 3, & 4
Module #4 - Middleware
Middleware is an abstraction layer that hides details about hardware devices and other lower-level software services from an application. Middleware services implement common low-level functions, such as communication with the operating system, application servers, database servers, etc., so that application developers do not need to concern themselves with these details, and can instead focus on the application functionality they are trying to provide. In a web application, these services generally make use of the HTTP protocol, and in a web application framework, the MVC design pattern can be thought of as being implemented over the middleware.
14 videos1 reading
  1. Reading: Learning Outcomes
  2. Video: Middleware an Introduction - An Overview
  3. Video: Video 1: What is Middleware?
  4. Video: Video 2: Middleware in Web Apps
  5. Video: Video 3: Middleware Frameworks
  6. Video: The HTTP Protocal - An Overview
  7. Video: Video 1: HTTP Overview
  8. Video: Video 2: HTTP Request
  9. Video: Video 3: HTTP Response
  10. Video: Video 4: HTTP Sessions and Cookies
  11. Video: MVC Over Rails Middleware- An Overview
  12. Video: Video 1: Request Processing
  13. Video: Video 2: RESTful Web Services
  14. Video: Video 3: Response Processing
  15. Video: Video 4: MVC in Rails
Graded: Middleware
Module #5 - The User Interface
In our final module we will discuss the User Interface. We will touch on CSS and JavaScript, and how these are used to add style to layout and design of HTML documents. We will also learn about Ajax and how it improves user requests.  
14 videos1 reading
  1. Reading: Learning Outcomes
  2. Video: Presentation Tier Overview - An Overview
  3. Video: Video 1: The Presentation Tier
  4. Video: Video 2: Layout and Design
  5. Video: Video 3: HTML: History and Philosophy
  6. Video: Video 4: HTML CSS and JavaScript
  7. Video: HTML CSS and JavaScript Overview - An Overview
  8. Video: Video 1: HTML Overivew
  9. Video: Video 2: CSS Overview
  10. Video: Video 3: JavaScript Overview
  11. Video: Dynamic Content and Ajax Overview - An Overview
  12. Video: Video 1: Ajax Background
  13. Video: Video 2: Ajax Cycle
  14. Video: Video 3: Dynamic Content Creation
  15. Video: Video 4: Blog App - Iteration 5
Graded: Blog App - Iteration 5
How It Works
Each course is like an interactive textbook, featuring pre-recorded videos, quizzes and projects.
Help from Your Peers
Help from Your Peers
Connect with thousands of other learners and debate ideas, discuss course material, and get help mastering concepts.
Earn official recognition for your work, and share your success with friends, colleagues, and employers.
University of New Mexico
As New Mexico’s flagship institution, UNM is a place where cutting-edge research and creative endeavors flourish. We empower our students to lead in tackling complex societal challenges, offering an exceptional education inspired by vision, scholarship, and creativity. UNM’s distinctive campus environment blend of culture and cuisine, styles and stories, people, pursuits and panoramas.

No comments:

Post a Comment