Skip to content

Home

Course Description

This course will provide a comprehensive introduction to web app development, covering JavaScript, back end development, front end development, and user interface design.

Welcome Video

General Course Information

Faculty

Teaching Assistant

     

Course Meeting Times


Virtual Course Spaces


A Note to Students during COVID-19

Dear Students,

Welcome to SWE-432 for the Fall 2021 semester! These are undoubtedly uncertain times, and first and foremost I want you to know that, as an instructor, I am here for you. I want you to be successful in this course, and I want to help facilitate that success. If you feel like you are falling behind, are affected by unforeseen circumstances, or simply want to discuss course material and its applications, send me an email! I am available and happy to hear from you.

-Prof. Moran


Course Philosophy

Web applications dominate the modern computing landscape. From finance, to transportation, to entertainment, these applications increasingly dictate how we interact with technology in our daily lives. However, programming for the modern web can seem to be a daunting challenge. Many questions arise such as What framework (from the many) should I use? How do I support desktop and mobile? How do I know if my application is usable? Can my application scale? In this course we aim to equip you with the knowledge required to be successful in modern web development.

As such, this course has three main philosophical objectives:

1) Equip you with the foundational knowledge related to the concepts that drive modern web applications.

  • For this objective, we will examine some of the conceptual underpinnings of modern web development such as principles of asynchronous programming, backend web development, and persistence, HTTP requests, etc.

2) Explore some of the most popular current web programming frameworks/libraries to provide practical experience using tools in use by developers today.

  • For this objective, we will explore the React web programming library in some depth.

3) Provide an understanding of the software engineering tools and practices that are available to achieve "good design" in a variety of settings.

  • For this objective, we will explore topics such as empirical and analytical methods for conducting usability evaluations, as well as different principles for usable interface design that facilitate the development of User Interfaces.

Learning Outcomes

  • Knowledge of quantitative engineering principles for how to build software user interfaces, especially web-based user interfaces, that are usable
  • Understanding the client-server and message-passing computing models in the context of web applications
  • Knowledge for how to build usable, secure and effective web applications
  • Theoretical and practical knowledge about how data are stored and shared in web applications
  • Component software development using specific technologies
  • Understanding that usability is more important than efficiency for almost all modern software projects, and often the primary factor that leads to product success

  1. Backup Instruction (should the class need to pivot to virtual) will be conducted on Zoom Zoom Link (Requires Signing In with GMU Zoom Account) 

  2. Ed Discussions is a new type of software that we will be trialing for this semester. Think of this as a supercharged and easy to use version of Piazza 🙂