SWE432: Design and Implementation of Software for the Web

Course Outcomes This course teaches students how to develop high quality software for web applications. The concepts of client-server computing, theories of usable graphical user interfaces, and models for web-based information retrieval and processing are covered. In the past few years, the way software is built has been rapidly changing. As use of the world wide web has shifted from information presentation to information gathering to direct customer sales (e-commerce) to enterprise applications, the amount and complexity of software has steadily been increasing. This course will help students use new models of programming and new technologies to design and develop high quality, usable, web software.
  • 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
Prerequisite MATH125 and CS211
Professor Contact Information Dr. Kinga Dobolyi
Office: Engineering (Rm. 4440)
Email: kdobolyi@gmu.edu
Phone: 703–993–4198
http://www.cs.gmu.edu/~kdobolyi/swe432/
Office Hours: Tuesdays and Thursdays 12:45 — 2:45, or by appointment. Please email the professor at least 48 hours in advance when seeking an appointment.
GTA Contact Information
uprapham@masonlive.gmu.edu
Office: Engineering (Rm. 4456)
Office Hours: Wednesdays 1:30PM— 3:30PM

Textbook
  • Prioritizing Web Usability, Jakob Nielsen and Hoa Loranger, New Riders Press, 2006, ISBN-10: 0-321-35031-6
  • Programming the World Wide Web, Sebesta, Addison-Wesley, 2011, ISBN-10: 0132130815, sixth edition
  • Course Materials All assignments must be submitted (per published deadlines) through students' public webpages. Piazza will be used for discussion boards and announcements this semester — all other materials (slides, etc) will be available only on this course homepage. Grades (except the final course grade) will be posted to Blackboard.
    Email Students must use the GMU email system for all correspondence with professor (using the following email subject format: SWE432 — insert your subject — failure to adhere to this policy will result in returned emails).
    Please note that general project or class questions should NOT be sent to the professor or TAs - in such events, your email will be returned and you will be asked to post your question to the discussion board. In general, the turnaround time for responses to questions will be much quicker on the discussion board.
    Students should also avoid emailing their code to the professor or TAs unless permission has been obtained (under no circumstances should code be posted publicly to the discussion board).
    Grading
    • Homework assignments (35%)
    • Weekly Quizzes (30%): lowest 3 will be dropped, no makeups
    • Class Participation (5%): based on discussion board
    • Final Exam (30%)

    Final course grades are calculated as follows:

    A+ (>= 98.0%) A (>= 92.0%) A– (>= 90.0%)
    B+ (>= 88.0%) B (>= 82.0%) B– (>= 80.0%)
    C+ (>= 78.0%) C (>= 72.0%) C– (>= 70.0%)
    D (>= 60.0%)
    F (< 60.0%)

    Note: per departmental policy, a failing grade on the final exam (<60.0%) will result in a failing grade (F) for the entire course, regardless of performance on other assignments.
    Contesting of grades on any/all submissions must be requested within one week of the item's return. No grade changes will be considered subsequent to that deadline, or after the final exam meeting.
    Class Participation SWE 432 will use the Piazza software for a discussion board. Information for accessing our class will be provided on the first day of class. Participation on the discussion threads will count for 5% of your grade, which you can earn in several ways;

    • Real-life software problems: Start a discussion about a problem with a real-life web application that is related to our class (usability, design, construction, etc.)
    • Start a thread about an error in the book or slides, or about a topic that goes beyond what we discuss in class
    • Post questions to an appropriate thread and they will be answered by your instructor, TA, or classmate (Basic questions are encouraged, but only "interesting" questions will earn credit)
    • Be the first to give a correct answer to a classmate's question
    Homework Assignments Some homework assignments will be written and some will require programming. Most will allow collaboration with one partner. Assignments will be posted on the class website before class and discussed in class. You will submit your solutions by placing them on your websites and submitting the source files through blackboard. You should submit links to executable versions of programs, but may not post source files on your websites. Posting program source on your website will be considered an honor code violation! Be sure that you check the discussion board daily, as refinements and hints for the assignments will be posted there. Homeworks must be submitted before class on the day they are due. Assignments will be checked immediately after the due date.
    Late Submissions All assignments must be submitted by the deadline to be considered for credit.
    Blackboard or other resources being unavailable is not an excuse for turning in a late assignment; in the rare situation that a website is somehow unavailable or giving the student an error, the student MUST email their submission to their GTA before the deadline, otherwise it will be considered late.
    Similarly, having a laptop die or losing source code is not an excuse for turning in a project late — students are responsible for maintaining their own backup copies of code.
    Discussion Board Students are encouraged to use the discussion board, Piazza, to ask and answer questions.

    Students can post questions and code privately, although the instructor reserves the right to make any post public, so that other students can see the responses. Therefore, students may post anonymously, if they choose to do so, although in general this is less preferred as it is often easier to help a student if we know their name.

    Exams Exams are closed book/notes unless specified otherwise by instructor. Appropriate documentation (as determined by instructor) and requisite permissions are required for make-up exam requests. Picture IDs are required to take all exams. Note: A failing grade on the final exam (<60%) will result in a failing grade (F) for the entire course, regardless of performance on other assignments.
    If you know in advance that you are unable to make an exam for a valid and unavoidable reason (such as a scheduled surgery, etc), you must notify the professor at least one week before the scheduled exam date to make arrangements for a make-up, and bring documentation with you when you take the make-up. If you miss an exam due to a university-accepted excused absence (such as an illness or car accident the day and time of the exam), you must notify your professor within 24 hours of your absence to make arrangements for a makeup, and bring approved documentation with you when you take the make-up exam. Failure to follow either of these policies will result in a zero.
    You must take the final exam for the section that you are registered for.
    Honor Code All students are expected to abide by the GMU Honor Code. This policy is rigorously enforced. All class-related assignments are considered individual efforts unless explicitly expressed otherwise (in writing). Review the university honor code and present any questions regarding the policies to instructor.
    Cheating on any assignment will be prosecuted and result in a notification of the Honor Committee as outlined in the GMU Honor Code. Sharing, collaboration, or looking at any code related to programming assignments that is not your own is considered cheating.

    The computer science department has an additional, more restrictive CS Honor Code that you are also subject to. Make sure you read and familiarize yourself with these rules.

    It is your responsibility to lock your computers with a password, to not post your code to websites like Pastebin that are publicly accessible, to guard your USB drives, to not upload your files to someone else's computer, etc. You will be liable for any accidental access you give to your code. Stating that "I don't know how he/she got access to my code" is not an acceptable excuse in an honor code violation.
    Learning Disabilities Students with a learning disability or other condition (documented with GMU Office of Disability Services) that may impact academic performance should speak with professor ASAP to discuss accommodations.

    Tentative Class schedule
    Note: Thank you to Dr. Jeff Offutt for the materials he provided for this course, including, but not limited to, the slides below.

    Week # Date (start of week) Assignments Lecture Topics Readings (to be completed prior to lecture)
    1 8/26 Assignment 1 (due 9/2): Log in to Piazza and set up your webpage Course into slides
    Usability
    Usability failure
    • N-1
    • S-1
    2 9/2
    Assignment 2 (due 9/10): Usability evaluation

    Quiz 1
    Web Users and Usability: Chapter 2
    Web Users and Usability: Chapter 3
    • N-2
    • N-3
    3 9/9 Assignment 3 (due 9/17): Usability evaluation through a task

    Quiz 2
    Usability Problems: Chapter 4
    Search: Chapter 5
    • N-4
    • N-5
    4 9/16 Assignment 4 (due 9/24): Usability evaluation through a task

    Quiz 3
    Website Design: Chapter 6
    Navigation: Web User Interfaces
    Navigation: Error Messages
    • N-6
    5 9/23 Assignment 5 (due 10/1): Readability

    Quiz 4
    Readability and Writing: Chapter 7
    Readability and Writing: Chapter 8
    • N-7
    • N-8
    6 9/30 Quiz 5 Science
    Software Engineering Research: Web applications

    7 10/7 Assignment 6 (due 10/22): Forms and Javascript

    Quiz 6
    Dynamic webpages: Client-side events: CSS and Javascript
    8 10/14
    Monday class meets
    Tuesday at same time
    finish Dynamic webpages: Client-side events: CSS and Javascript
    Web application software model
    • S-9
    9 10/21 Assignment 7 (due 10/29): Forms and PHP

    Quiz 7
    Web application software model: PHP
    Asynchronous Web Software: Ajax
    10 10/28 Assignment 8 (due 11/12): Servlets

    Quiz 8
    Synchronous Web Software: Servlets
    11 11/4 Quiz 9 State Handling on the Web
    Deployment
    12 11/11
    Assignment 9 (due 11/19): JSPs

    Quiz 10
    Java Server Pages
    13 11/18 Assignment 10 (due 11/26): JSPs and sessions

    Quiz 12
    State Handling in Java Server Pages
    Designing Web Applications
    • S-11.6
    14 11/25
    No class Thursday
    Assignment 11 (due 12/3): Persisting data
    formKinga.jsp
    ItemsBean.java
    ItemForm.java
    data.txt

    Database Access
    Security
    15 12/2 XML
    Review for final
    There will be no office hours the week of 12/10 except by appointment
    Final Exam: see the standard time on the George Mason Academic Calendar. The exam will be given in the regular classroom.