The best way to
predict the future
is to invent it.
- Alan Kay
Course Information Schedule Resources My home page

SWE 642: Software Engineering for the World Wide Web
Course Syllabus
Fall 2013

My favorite questions are the ones I don't know the answer to. — 2-September

Professor: Jeff Offutt
Office: 4430 Engineering Building, 993-1654
Email:offutt +=+=+ gmu.edu
URL: http://www.cs.gmu.edu/~offutt/
Twitter:@jeffoffutt
Class Hours: Tuesday 4:30-7:10, Music Theater Building (MTB) 1006
(Formerly the Fine Arts Building)
Prerequisite: SWE 619 and SWE Foundation material or (CS 540 and 571)
Office Hours: Anytime electronically, Wed 2:30-4:00, or by appointment
TA:Nan Li, nli1@gmu.edu
Office Hours: Monday 3:00-5:00, 4456 Engineering Building

TEXT:
Other web software reference books are listed on the resources page.

COURSE OUTCOMES:
After completing the course, students will understand the concepts and have the knowledge to design and construct web applications. Students will be able to engineer high quality building blocks for web applications.

PREREQUISITES:
Advanced knowledge of Java programming and data structures, introductory knowledge of discrete math and HTML, and a general knowledge of software engineering is required. SWE 619 is a required prerequisite and SWE 632 is a good background course. The class will be very practical (how to build things) and require lots of programming.

CONTENT:
Detailed study of the engineering methods and technologies for building highly interactive web sites for web-based applications. Engineering principles for building web sites that exhibit high reliability, usability, security, availability, scalability and maintainability are presented. Methods such as client-server programming, component-based software development, middleware, and reusable components are covered. After the course, students should be prepared to create software for large-scale web sites.

SWE 642 teaches some of the topics related to the exciting software development models that are used to support web applications. We will study the software design and development aspects of web applications, not policy, business, or networking.

The course content will focus on client-side and server-side software design and development. We will learn technologies such as HTML, JavaScripts, the J2EE platform, JDBC, XML, and AJax.

READING:
I expect you to read the relevant material before lecture. The lectures may not cover everything in the readings and will include a lot of material not in the readings.

EXAMS:
There will be a midterm and a final exam, both in class. The final exam will focus on material covered after the midterm. Digital devices will not be needed or allowed during exams. Unless arrangements are worked out in advance, missed exams cannot be made up.

PROGRAMMING ASSIGNMENTS:
Several program assignments will be given. I will post the assignments on the class web site and discuss them in class. Every student will create a class web site, and you will submit your solutions by placing links to the executables on your class web sites and submitting the source files through Piazza. No zip files please! Refinements and hints for the assignments will be posted on Piazza. Assignments due on class day are due before class starts. Assignments will be checked immediately after the due date; if you finish an assignment late, you must inform us by email when it is ready for us to grade it. Changing an assignment after the due date without prior permission will be treated as a late submission. Unless arrangements are worked out in advance, 10% per week will be deducted for late submissions. Per GMU policy, all homeworks and projects must be submitted before the beginning of final exams (December 10).

Programs will be graded on style and formatting as well as correctness.

REQUESTING HELP WITH COMPUTING RESOURCES:
The VSE IT support staff is quite limited in its resources and abilities to help individual students. They need to be alerted when the network or some other computing resource fails, which periodically happens. However, they are not available to help with programming problems or knowledge that is normally taught in class. When problems occur, your first step should be to ask for help from your instructor or the TA. It is required that any email communication with VSE computing staff in regards to this class be copied to the instructor. Any deviation from this may be treated as an honor code violation and result in failure of the current assignment or of the course. You can find more information on the VSE Computing Resources pages.

DISCUSSION BOARD USE:
SWE 642 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 discussions will count for 5% of your grade, which you can earn in several ways.
  1. Post questions in an appropriate "folder" and they will be answered by your instructor, TA, or classmates. (Basic questions are encouraged, but only "interesting" questions will earn credit. Correct answers will also earn credit.)
  2. Real-life web web application problem: Start a discussion about a problem in a real-life web application. Tell us what happened and how it affected users.
  3. Start a discussion about an error in the book or slides, or about a topic that goes beyond what we discuss in class.

HONOR CODE STATEMENT:
As with all GMU courses, SWE 642 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, 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.

IN-CLASS COMPUTERS AND COMMUNICATION:
Phone calls, text messages, instant messages, email, and general web surfing are not allowed during class time. Computers may only be used to follow the material in class. No computing devices are allowed during exams. If you violate this policy, I will turn off your computer, confiscate your device for the remainder of the class, or ask you to leave the room. (If you want to know why, please read this article.)

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

OTHER USEFUL CAMPUS RESOURCES:
Writing Center: A114 Robinson Hall; (703) 993-1200; http://writingcenter.gmu.edu
University Libraries "Ask a Librarian" http://library.gmu.edu/mudge/IM/IMRef.html
Counseling and Psychological Services (CAPS): (703) 993-2380; http://caps.gmu.edu

GRADING POLICIES:
Top