Web Application Architectures

University of New Mexico

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.

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.      

Syllabus

 Week One – Module 1: Introduction and Background 
  Lecture 1: Historical Perspective
  Lecture 2: What is a Web Application?
  Lecture 3: Web 1.0, 2.0, 3.0 Application Architectures
  Lecture 4: Design Patterns
  Lecture 5: Setting up Your Development Environment
Week Two – Module 2: Ruby on Rails
  Lecture 1: Rails Overview
  Lecture 2: Your First Rails App
  Lecture 3: The Blog App – Iteration 1
  Lecture 4: Rails Philosophy
  Lecture 5: Version Control
  Lecture 6: Git and Rails
Week Three – Module 3: Database Interactions
  Lecture 1: Relational Databases
  Lecture 2: Databases in Rails
  Lecture 3: The Active Record Design Pattern
  Lecture 4: The Blog App – Iteration 2 (Associations)
  Lecture 5: The Blog App – Iteration 3 (Validations)
Week Four – Module 4: The Ruby Programming Language
  Lecture 1: Ruby Background
  Lecture 2: Classes and Inheritance
  Lecture 3: Objects and Variables
  Lecture 4: Strings, Regular Expressions and Symbols
  Lecture 5: Expressions and Control Structures
  Lecture 6: Collections, Blocks and Iterators
Week Five – Module 5: Middleware
  Lecture 1: What is Middleware?
  Lecture 2: The Hypertext Transfer Protocol (HTTP) – Introduction  Lecture 3: HTTP – Request  Lecture 4: HTTP – Response
  Lecture 5: The Model-View-Controller (MVC) Design Pattern
  Lecture 6: Rails Controllers – Request Handling
  Lecture 7: Rails Controllers – Response
  Lecture 8: MVC Implementation in Rails
  Lecture 9: The Blog App – Iteration 4
Week Six – Module 6: Presentation/User Interface
  Lecture 1: Introduction and Background
  Lecture 2: HTML – Basic Syntax  Lecture 3: HTML – Document Structure  Lecture 4: HTML – Forms  Lecture 5: Dynamic Content  Lecture 6: Cascading Style Sheets (CSS)  Lecture 7: JavaScript and jQuery  Lecture 8: Ajax  Lecture 9: The Blog App – Iteration 5

Recommended Background

This is a rigorous course that will involve a significant amount of programming and additional reading on your own in order to get the most out of the class.  I expect you to be proficient in some object-oriented programming language, e.g. C++, C#, Python, Java, or Ruby.   Don’t worry if you don’t know Ruby or Ruby on Rails at the moment, we’ll teach it to you as a part of the course.

Course Format

The class is broken up into six modules.  Each consists of a set of lecture videos, which are between 6 and 12 minutes in length.  Each module contains quiz questions and homework assignments that are not part of video lectures.

FAQ

  • Will I get a Statement of Accomplishment after completing this class?

    Yes. Students who successfully complete the class will receive a Statement of Accomplishment signed by the instructor.

  • What resources will I need for this class?

    For this course, all you need is an Internet connection, a computer onto which you can load the Ruby on Rails development environment (we'll tell you how), and the time to watch the videos and develop/debug/test web app code.

  • What is the coolest thing I'll learn if I take this class?

    How to build and deploy a modern web application that supports a great idea you have, or a business opportunity you've dreamed up.

Dates:
  • 16 March 2015, 6 weeks
  • 11 August 2014, 6 weeks
  • 24 March 2014, 6 weeks
Course properties:
  • Free:
  • Paid:
  • Certificate:
  • MOOC:
  • Video:
  • Audio:
  • Email-course:
  • Language: English Gb

Reviews

No reviews yet. Want to be the first?

Register to leave a review

Included in selections:
Cs169.1x_262x136_verified Rails and Web development
Ruby on Rails for web development
6-171f03 Internet Applications and Multimedia Technologies
4 курс МИЭМ ВШЭ, 6 кредитов.
More on this topic:
106178_9e45_3 Become a Heroku Rails Ninja: Expert Level Deployment Tools
Deploy your Ruby on Rails Apps to Heroku like an Expert. Save time and efforts...
Rails-primer Understanding Rails (alpha)
Build web apps using Ruby on Rails. This is an extremely limited alpha version...
131948_fab0_13 Java EE Tutorial - Learn Java EE Online - Udemy
A practical course for creating Java EE applications using Eclipse.
177244_41a7_4 Online Courses - Anytime, Anywhere
Learn JavaScript (ECMAScript) programming beginning with the basic concepts
Cs-169.1x_262x136 CS-169.1x: Software as a Service
CS169.1x teaches the fundamentals for engineering long-lived software using...
More from 'Computer Science':
Regular_c63f14e6-77fc-4711-a3cb-559021adefdc Understanding the GDPR
Get to grips with the General Data Protection Regulation and take the first...
Regular_968073c1-6804-4d8e-a857-a19f0e54d8d9 Digital Skills: Mobile
Learn about mobile design, development and creating mobile experiences, as well...
4c70ad9b-9602-49af-bf00-83fa4bf47708-c5edba3c3294.small Machine Learning with Python: from Linear Models to Deep Learning
An in-depth introduction to the field of machine learning, from linear models...
95bf9ab8-159d-4930-9a4e-a452c1660664-4ef8a2453e0e.small Portfolio Management, Governance, & the PMO
Learn how a Project Management Office (PMO) works, discover techniques to monitor...
542d8850-77cd-4675-961a-b2673dbfc895-ec4582dc2b65.small Principles of Synthetic Biology
Learn how to engineer biological systems and program organisms to perform novel...
More from 'Coursera':
Success-from-the-start-2 First Year Teaching (Secondary Grades) - Success from the Start
Success with your students starts on Day 1. Learn from NTC's 25 years developing...
New-york-city-78181 Understanding 9/11: Why Did al Qai’da Attack America?
This course will explore the forces that led to the 9/11 attacks and the policies...
Small-icon.hover Aboriginal Worldviews and Education
This course will explore indigenous ways of knowing and how this knowledge can...
Ac-logo Analytic Combinatorics
Analytic Combinatorics teaches a calculus that enables precise quantitative...
Talk_bubble_fin2 Accountable Talk®: Conversation that Works
Designed for teachers and learners in every setting - in school and out, in...

© 2013-2019