SWE 432: Web Application Development, Fall 2019

Mondays and Wednesdays, 1:30-2:45pm, Art and Design Building 2003

Grades: Blackboard
Syllabus, Schedule, and Lecture Slides: Website
Resources (Announcements, Assignments, Discussion): Piazza

Instructor: Prof. Thomas LaToza
tlatoza@gmu.edu
Office: 4431 Engineering Building; (703) 993-1677
Office Hours: Anytime electronically, Wed 3:00-4:30, or by appointment

Teaching Assistants
David Gonzalez
dgonza10@gmu.edu
Office: ENGR 4456
Office hours: Wednesday, 4:30 - 5:30

Course Overview

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

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

Required Textbooks: None

Reference resources

Several books available free to you online via Safari Books Online may be helpful as reference material:

  • “HTML & CSS: Design and Build Websites” by Jon Duckett
  • “JavaScript: The Good Parts” by Douglas Rockford
  • “You Don’t know JS: ES6 and Beyond” by Kyle Simpson
  • Javascript with Promises by Daniel Parker

Schedule

Lecture titles link to lecture slides.
1. Course Overview (8/26)
2. JavaScript (8/28)
Additional references: A Re-introduction to JavaScript, Introduction to commonly used ES6 features
3. Organizing Code in Web Apps (9/4)
Additional references: Closures, Classes
4. JavaScript Tools and Testing (9/9)
Additional references: Intro to Node Package Manager (NPM)
5. Asynchronous Programming, Part 1 (9/11)
Additional references: Using Promises, Node.js event loop
6. Asynchronous Programming, Part 2 (9/16)
HWs: HW1 due
7. Backend Web Development (9/18)
Additional references: Intro to Node and Express, Hosting Node apps on Heroku
8. Handling HTTP Requests (9/23)
Additional references: Overview of HTTP, Intro to REST
9. Persistence (9/25)
Additional references: Firebase Get Started, Firebase Structure Data, Firebase Read and Write Data
10. Microservices (9/30)
Additional references: Microservices
11. Security (10/2)
Additional references: Intro to CORS
12. Deployment (10/7)
Additional references: Fundementals of DevOps
13. HTML and CSS (10/9)
Additional references: How CSS works, Selectors
(10/14) – MONDAY CLASSES MEET ON TUESDAY
14. Midterm Exam (10/15)
15. User-Centered Design (10/16)
16. Front end JS (10/21)
17. Interaction Techniques (10/23)
18. Templates and Data-Binding (10/28)
19. Site Design (10/30)
20. Frontend Frameworks (11/4)
21. Visual Design (11/11)
22. React, Part 1 (11/13)
23. Think-aloud Usability Studies (11/16)
24. React, Part 2 (11/18)
25. Information Visualization (11/20)
(11/27) – NO CLASS – THANKSGIVING RECESS
26. Information Visualization Frameworks (11/25)
27. Design Languages (12/2)
28. Review (12/4)
Final Exam: 1:30 - 4:15 on Wed, December 11

Course Policies

Contacting

If you have a general question about an assignment or course content, first check piazza to see if someone has already answered your question. If not, post your question in piazza, where your question may be answered by other students or the course staff. For questions about grades, contact the TA privately on piazza.

Office Hours

Office hours are times that we commit to being in our office, door open, first come, first served. You do not need an appointment, and no appointments are accepted. If you cannot make the scheduled office hours, then we can try to set up an appointment. Please note that I am seldom available after 5:00 pm. We will inform you in class or on the discussion board if we have to miss office hours.

Resources

This course will use Piazza for posting the schedule and all assignments and announcements. Additionally, we will use Piazza for a discussion board. Information for accessing our class will be provided on the first day of class.

Grades will be available through Blackboard.

In Class Activities

Most lectures will feature interactive activities that support the material being presented. You are strongly encouraged to bring your laptop to class so that you can participate.

Quizzes

There will be short pass / fail quizzes in class.

Exams

There will be a midterm exam and a (non-comprehensive) final exam which will be closed-book in-class.

Makeups

Missed quizzes cannot be made up. You can miss up to 3 with no penalty. Out of fairness to other students in the course, no exceptions beyond this. 10% will be deducted for late HW assignments and late HW assignments will only be accepted for 24 hours after the due date. HW assignments submitted more than 24 hours late will receive a zero. If you’re worried about being busy around the time of a HW submission, please plan ahead and get started early.

Grading
HWs: 50%
Quizzes: 10%
Midterm exam: 20%
Final exam: 20%
Honor Code

GMU is an Honor Code university; please see the Office for Academic Integrity for a full description of the code and the honor committee process, and the Computer Science Department’s Honor Code Policies regarding programming assignments. The principle of academic integrity is taken very seriously and violations are treated gravely. What does academic integrity mean in this course? Essentially this: when you are responsible for a task, you will perform that task. When you rely on someone else’s work in an aspect of the performance of that task, you will give full credit in the proper, accepted form. Another aspect of academic integrity is the free play of ideas. Vigorous discussion and debate are encouraged in this course, with the firm expectation that all aspects of the class will be conducted with civility and respect for differing ideas, perspectives, and traditions. When in doubt (of any kind) please ask for guidance and clarification.

Accommodations for Disabilities

If you have a documented learning disability or other condition that may affect academic performance you should: 1) make sure this documentation is on file with the Office for Disability Services to determine the accommodations you need; and 2) talk with me to discuss your accommodation needs.

Privacy

Students must use their MasonLIVE email account to receive important University information, including messages related to this class. See MasonLive for more information.

Other Useful Campus Resources
Writing Center
University Libraries
Counseling and Psychological Services (CAPS)
University Policies
GMU Academic Calendar