Syllabus Schedule Resources My home page
If you can't explain it simply, you don't understand it well enough.
- Albert Einstein
This course is part of the ACS Software Engineering and the
minor in Software Engineering programs.
update: 1-September-2015

Design and Implementation of Software for the Web
SWE 432 Course Syllabus — Fall 2015

Professor:Jeff Offutt
Office:ENGR 4430, 703-993-1654
Email:offutt ++++
Class Hours:Tuesday, Thursday 10:30-11:45, EB 1103
Prerequisite:Math 125 and CS 211
Office Hours:Anytime electronically,Thur 2:30-4:00, or by appointment
TA:Sunitha Thummala,, Office Hours: Mon 1:30-3:30, ENGR 5321


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.

  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

After completing this course, students should understand how to design usable software interfaces and implement them on the web, know how to build software that accepts information from users across the web and returns data to the user, and know how to interact with database engines to store and retrieve information. Specific technologies that are included are PHP, Java applets, Javascripts, Java servlets, and XML. SWE 432 covers the software design, interface design, and development side of web applications. Programming skills are required and students are expected to know HTML and Java or learn on their own. The class will be very practical (how to build things) and require several small programming assignments.

I expect you to read the relevant material before lecture. The schedule for the readings are given on the schedule web page. The lectures may not cover everything in the readings and will often include material not found in the readings.

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 are on the class mailing list, as refinements and hints for the assignments will be sent through email or posted on the discussion boards. Homeworks must be submitted before class on the day they are due. Assignments will be checked immediately after the due date; if you finish an assignment late, you must inform us (professor and TA) by email when it is ready to grade. Changing an assignment after the due date without prior permission will make it a late submission.

We will have weekly quizzes and no midterm exam. Quizzes will be given during the first 15 minutes of class on Tuesdays and no makeup or late quizzes will be given. You are allowed to miss up to three quizzes (the lowest three quiz grades will be dropped). The 10 quizzes with the highest scores will be used to calculate the final grade.

We will often have in-class exercises. They will not be scheduled or announced ahead of time, and most will be graded on a pass/fail basis. Many of them will involve small group work.

Unless arrangements are worked out in advance, missed exams cannot be made up and 10% per week will be deducted for late submissions. If you will be forced to miss class on the day something is due, let me know ahead of time by email or in writing. Per GMU policy, all homeworks and projects must be submitted before the official end of classes (the start of finals).

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.
  1. 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.)
  2. Start a thread about an error in the book or slides, or about a topic that goes beyond what we discuss in class
  3. 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)
  4. Be the first to give a correct answer to a classmate's question

Lectures in this class will be in a computer-free learning zone. Computers, whether in the form of laptops, tablets, or mobile phone/pocket-computers, may not be used while I am lecturing. I have a detailed explanation why, but here is the short summary: Computers interfere with your classmate’s ability to concentrate on the educational material, my concentration, and your learning. Multitasking is a myth promulgated by inefficient people. Taking notes by hand is much more effective than typing notes on a computer. If you have to check your email or text messages, or take a phone call, please sit near the door so you can unobtrusively step out. I will ask you to close your computers, and if that doesn’t work, will ask you to leave the classroom. (Computers may be used during breaks, during examples and discussions, and other times when I stop lecturing for discussion or examples.)

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

I tweet random thoughts irregularly about software engineering @jeffoffutt. I always accept linked in requests from current and former students—we clearly have a professional relationship. I do not initiate facebook requests from students, but usually accept them. After the course is over might be less awkward.

As with all GMU courses, SWE 432 is governed by the GMU Honor Code. In this course, all assignments, exams, and project submissions carry with them an implicit statement that it is the sole work of the author or authors, unless joint work is explicitly authorized. Help may be obtained from the instructor or other students to understand the description of the problem and any technology, but the solution, particularly the design portion, must be the student's own work. If joint work is authorized, all contributing students must be listed on the submission. Any deviation from this is considered an Honor Code violation, and as a minimum, will result in failure of the submission and as a maximum, failure of the class.

If you are a student with a disability and you need academic accommodations, please see me and contact the Disability Resource Center (DRC) at 993-2474. All academic accommodations must be arranged through the DRC.

Writing Center: A114 Robinson Hall; (703) 993-1200;
University Libraries "Ask a Librarian":
Counseling and Psychological Services (CAPS): (703) 993-2380;

I occasionally send important announcements to your Mason email account, so it is imperative that you read it regularly. Email sent to the professor or TA should have a subject that starts with “swe432;” if not, we may not notice it. General class questions should be posted on the discussion board, not sent through email.

The grading formula will be: 5% discussion board participation, 5% in-class exercises, 25% the weekly quizzes, 35% the homework assignments, 30% closed book, in-class, comprehensive final exam, (the lowest three quiz grades will be dropped; allowing for missed classes).