SWE 432: Design and Implementation of Software for the Web, Section 001, Fall 2016

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

Grades, Readings available as pdfs: Blackboard
Resources (Announcements, Schedule, Assignments, Discussion): Piazza

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

Teaching Assistants
Sunitha Thummala Chenhao Mu
sthumma3@gmu.edu cmu@masonlive.gmu.edu
Office: 4456 Engineering Building Office: 4456 Engineering Building
Office hours: Wednesdays 10:30am - 12:30pm        Office hours: 1 - 3pm Wednesday

Course Overview

This course will provide a comprehensive introduction to web development, covering front end development, back 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 including PHP, Java servlets, Java Server Pages, Javascript, XML and JDBC
  • 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

Schedule

Lecture titles link to lecture slides.
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)
(10/11) - NO CLASS - COLUMBUS DAY
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)
(11/24) – NO CLASS – THANKSGIVING RECESS
25. Information Visualization (11/29)
26. Visual Design (12/1)
HWs: HW11 due
27. Design Languages (12/6)
28. Review (12/8)
Project reflection due
Final Exam 12/13, 10:30am - 1:15pm

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 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.

Readings

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

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

Quizzes

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.

Exams

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

Makeups

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.

HWs

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.

Grading
HWs: 40%
Project reflection: 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 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