“Web Application Development”

Fall 2018: Mondays & Wednesdays, 1:30-2:45pm, Exploratory L003

Website (syllabus, assignments, etc): https://www.jonbell.net/swe-432-fall-2018-web-programming/

Contacting: Please post on Piazza for course-related inquiries.

Instructor: Prof. Jonathan Bell
Email: [email protected]
Twitter: @_jon_bell_
Office: 4422 Engineering Building; (703) 993-6089
Office Hours: Anytime electronically, Mondays 10am-11am, Wednesdays 9:30am-10:30am, or by appointment

 

TA: Mrudla Ichanahalli Anantharamaiah (Mia)
Website
Office Hours: Tuesdays 10:00am – 12:00pm, ENGR 4456

 

 

Overview

This course will provide a comprehensive introduction to web development, covering front end development, back end development, and user interface design. This course is somewhat unique, and hence, there is unfortunately no single (or even small set) of textbooks to use for it. Where appropriate, we will provide additional references (e.g. via Safari Books Online) to book chapters that can be relevant for further reading. We will also maintain a repository of code examples on GitHub.

Over the term, you will learn how to use both client facing and backend technologies to make a web app. During the term, you will work on two projects: one focusing on programming, and one focusing on interaction 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 Javascript, NodeJS, JSON, React and Firebase
  • Understanding that usability is more important than efficiency for almost all modern software projects, and often the primary factor that leads to product success

Grading:

50% Programming Assignments
10% Quizes and in-class activities
20% Midterm Exam
20% Final Exam (NOT cumulative)

Homework policy

Students must work individually on all homework assignments. We encourage you to have high-level discussions with other students in the class about the assignments, however, we require that when you turn in an assignment, it is only your work. That is, copying any part of another student’s assignment is strictly prohibited. You are free to reuse small snippets of 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.

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. Homework that does not compile or run will receive at most 50% credit.

For fairness to all, there are no exceptions to the above rules.

In Class Activities:

Most lectures will feature interactive activities and/or quizzes that support the material being presented. These quizzes and activities are meant primarily to help me understand how well you (and the class as a whole) are understanding the material that day. These quizzes will be graded on a “did it” or “didn’t” basis: you either take the quiz, and you get the marks, or you did not take the quiz, and do not get the marks (that is, as long as you answer the questions, you get full credit, regardless of what the answers are). You must be present in class to take the quiz (participating in an online quiz remotely will be considered an honor code violation). You can miss up to three quizzes with no penalty.

You are strongly encouraged to bring your laptop or phone to class so that you can participate in the activities.

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 (subject to change):

 

# Date Topic Notes Slides
1 8/27/18 Course Overview PDF | Keynote
2 8/29/18 JavaScript
HW 1 Out
PDF | Keynote
3 9/5/18 JavaScript Tools and Testing (Video only – NO CLASS MEETING)
Prof Bell at ASE presenting research on Code Coverage and Live Debugging
YouTube Lecture PDF | Keynote
9/9/18 Last day to drop classes with no penalty
4 9/10/18 Organizing Code in Web Apps PDF | Keynote
5 9/12/18 Asynchronous Programming PDF | Keynote
6 9/17/18 More Asynchronous Programming
HW1 Due
PDF | Keynote
7 9/19/18 Backend Web Development PDF | Keynote
8 9/24/18 Handling HTTP Requests
HW2 Out
PDF | Keynote
9 9/26/18 NoSQL; Firebase PDF | Keynote
10 10/1/18 Templates and Data-Binding; Intro to React React Hello Work Project PDF | Keynote
11 10/3/18 React React Todo: Empty project, Completed, Video PDF | Keynote
12 10/9/18 React Editable React Todo: Starter project, Completed Project, Video PDF | Keynote
13 10/10/18 CSS, Frontend JS
HW2 Due
HW3 Out
PDF | Keynote
14 10/15/18 Security PDF | Keynote
15 10/17/18 Deployment Youtube Lecture PDF | Keynote
16 10/22/18 Midterm Exam
17 10/24/18 Information Visualization Frameworks PDF | Keynote
18 10/29/18 Midterm Review & Human Cognition
HW3 Due
PDF | Keynote
19 10/31/18 Human Cognition (continued from previous)
HW4 Out
PDF | Keynote
20 11/5/18 Usability & User-Centered Design PDF | Keynote
21 11/7/18 Design Thinking & Conceptual Design (Video lecture) Youtube Lecture PDF | Keynote
22 11/12/18 Prototypes PDF | Keynote
23 11/14/18 Visual Design
HW4 Due
HW5 Out
PDF | Keynote
24 11/19/18 More Visual Design; Site Design PDF | Keynote
25 11/26/18 Think-aloud Usability Studies PDF | Keynote
26 11/28/18 Interaction Techniques PDF | Keynote
27 12/3/18 Design Languages and Course Evaluation PDF | Keynote
28 12/5/18 Review
HW5 Due
PDF | Keynote
12/12/18 Final exam, 1:30pm-4:15pm

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.

Privacy:

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.

Notice of Mandatory Reporting of Sexual Assault, Interpersonal Violence, and Stalking

As a faculty member, I am designated as a “Responsible Employee,” and must report all disclosures of sexual assault, interpersonal violence, and stalking to Mason’s Title IX Coordinator per University Policy 1412. If you wish to speak with someone confidentially, please contact one of Mason’s confidential resources, such as Student Support and Advocacy Center (SSAC) at 703-380-1434 or Counseling and Psychological Services (CAPS) at 703-993-2380. You may also seek assistance from Mason’s Title IX Coordinator by calling 703-993-8730, or emailing [email protected].

Contact