Web Application Architectures

Go to class
Write Review

Free Online Course: Web Application Architectures provided by Coursera is a comprehensive online course, which lasts for 6-9 hours a week. The course is taught in English and is free of charge. Upon completion of the course, you can receive an e-certificate from Coursera. Web Application Architectures is taught by Greg Heileman.

Overview
  • 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 webapplications that is built on top of the Ruby programming language. I believe this is one of the best frameworksfor learning about web applications, and it's also proving highly successful asa platform for commercial offerings. That said, there are many other frameworks available, and the conceptsyou will learn using Rails are transferable to these other frameworks.
    • Better understand modern software engineeringpractice.  We’ll be using the latest tools and practices insoftware development, source code control, testing, and applicationdeployment. This will include exposureto agile development practices, the numerous tools that software engineers are expected to know how to use, and the cloud-based resources that arebecoming 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

Tags