SWE 432: Design and Implementation of Software for the Web  

Fall 2016, Section 001 Syllabus and Schedule

Class Hours: Tuesdays and Thursdays, 10:30-11:45am       L008 Art and Design Building

Grades, Readings available as pdfs: Blackboard

Resources (Announcements, Schedule, Assignments, Discussion):

Piazza - https://piazza.com/gmu/fall2016/swe432001/home


Instructor: Prof. Thomas LaToza



Twitter: @ThomasLaToza

Office: 4431 Engineering Building; (703) 993-1677

Office Hours: Anytime electronically, Wed 3-4:30, or by appointment



Sunitha Thummala


Office: TBD

Office hours: TBD

Chenhao Mu


Office: TBD

Office hours: TBD

Required Textbooks:




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 one of the TAs by email.


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.



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

Learning Outcomes

  1. Knowledge of quantitative engineering principles for how to build software user interfaces, especially web-based user interfaces, that are usable
  2. Understanding the client-server and message-passing computing models in the context of web applications
  3. Knowledge for how to build usable, secure and effective web applications
  4. Theoretical and practical knowledge about how data are stored and shared in web applications
  5. Component software development using specific technologies including PHP, Java servlets, Java Server Pages, Javascript, XML and JDBC
  6. Understanding that usability is more important than efficiency for almost all modern software projects, and often the primary factor that leads to product success


There are no required readings for this course. Each lecture will have suggested readings that contain additional background material.



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. Your participation grade will be based on your participation in in-class activities.


There will be a short closed-book in class quiz every week. Quizzes will not be announced in advance. The lowest three quiz grades will be dropped. The quizzes together will count for 20% of the course grade.


There will be a comprehensive final exam which will be closed-book in-class. There will be no midterm exam.



Missed quizzes cannot be made up. 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.



The homeworks in the course will be in the form of a project. Throughout the term, you will work in a pair to develop a dynamic web app, implementing a front end, back end, and evaluating and improving its usability.


You will be working in two-person pairs on all homework assignments. Beyond your pair, we encourage you to have high-level discussions with other students in the class about the assignments. However, we require that when your pair turns in an assignment, it is only the work of your pair. That is, copying any part of another pair’s assignment is strictly prohibited. You are free to reuse example code found on the Internet (e.g. via StackOverflow) provided that it is attributed. If you are concerned that by reusing and attributing that copied code it may appear that you didn’t complete the assignment yourself, then please raise a discussion with the instructor or TA.


HWs: 40%

Project presentation: 5%

Class participation: 5%

Quizzes: 20%

Final exam: 30%


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 Office for Disability Services (SUB I, Rm. 4205; 993-2474; http://ods.gmu.edu) to determine the accommodations you need; and 2) talk with me to discuss your accommodation needs.



Students must use their MasonLIVE email account to receive important University information, including messages related to this class. See http://masonlive.gmu.edu for more information.


Other Useful Campus Resources:

·                  Writing Center: A114 Robinson Hall; (703) 993-1200; http://writingcenter.gmu.edu

·                  University Libraries: Ask a Librarian

·                  Counseling and Psychological Services (CAPS): (703) 993-2380; http://caps.gmu.edu/

·                  University Policies: The University Catalog, is the central resource for university policies affecting student, faculty, and staff conduct in university academic affairs. Other policies are available at http://universitypolicy.gmu.edu/. All members of the university community are responsible for knowing and following established policies.

·                  GMU Academic Calendar


Tentative Schedule


1. Course Overview (8/30)

HWs: HW0 Out

2. Web Development Tools (9/1)


3. HTML & CSS (9/6)

HWs: HW0 due, HW1 Out

4. ECMAScript6 (9/8)

5. Dynamic Webpages (9/13)

HWs: HW1 due, HW2 Out

6. Organizing Code in Web Apps (9/15)


7. AJAX and WebSockets (9/20)

HWs: HW2 due, HW3 Out

8. Asynchronous Programming (9/22)


9. Templates & Data-binding (9/27)

HWs: HW3 due, HW4 Out


10. MVVM Frameworks (9/29)


11. Information Visualization Frameworks (10/4)

HWs: HW4 due, HW5 Out

12. Frontend Testing & Performance (10/6)



13. Backend Web Development (10/13)

 HWs: HW5 due, HW6 Out


14. Handling HTTP Requests (10/18)


15. Persistence (10/20)

 HWs: HW6 due, HW7 Out

16. Privacy & Security (10/25)

17. Microservices (10/27)

HWs: HW7 due, HW8 Out

18. Deployment (11/1)

19. User-Centered Design (11/3)

HWs: HW8 due, HW9 Out

20. Human Cognition (11/8)

21. Design Thinking & Prototyping (11/10)

HWs: HW9 due, HW10 Out

22. User Studies (11/15)

23. Interaction Techniques (11/17)

HWs: HW10 due, HW11 Out

24. Site Design (11/22)


25. Information Visualization (11/29)

26. Visual Design (12/1)

HWs: HW11 due, HW12 Out

27. Design Languages  (12/6)

28. Review (12/8)

HWs: HW12 due

Final Exam   12/13, 10:30am - 1:15pm