Design and Implementation of Software for the Web
SWE 432 Resources
Fall 2010

Professor: Jaya Srinivasan
Class Hours: Tuesday 7:20- 10:00, Art and Design Building Room 2026
Prerequisite: Math 125 and CS 211
Office Hours: anytime electronically
Class Website: SWE432
TA: Bhargava Bulusu
Office Hours: TBD


This course teaches students how to develop 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) and to business-to-business e-commerce (b2b), the amount and complexity of software has steadily been increasing. At the same time, new models of programming and new technology for designing and developing the software has made this complex software easier to build. As a result, there are many opportunities for personnel that have a light background in Computer Science theory, but a solid level of knowledge of software and web-based technology. Thus, the topic of this course is of interest to and accessible to students in a wide variety of specializations.

SWE 432 covers some of the topics related to the exciting new programming models that are used to support web and e-commerce applications. We will be studying the software design, interface design, and development side of web applications. Programming skills are required and students are expected to learn HTML on their own. The class will be very practical (how to build things) and require extensive small programming assignments.

Goals are to understand how to design usable software interfaces and implement them on the web, learn how to build software that accepts information from users across the web and returns data to the user, and understand how to interact with database engines to store and retrieve information. Topics included are web site usability, client side programming, server side programming, and web site management. Programming approaches include Java applets, CSS, PHP, Javascripts, Java servlets, JSP, XML, and JDBC.

We will read from the texts, various sources on the web, and transparencies that will be made available on the web site.

Weekly, relatively simple, homework assignments will be given. I will discuss each in class and make the assignment available on the class web site. You will submit your solutions by placing them on your web sites. Please also bring a paper copy of your homework to class. This will serve as a "token" for recording and subsequently verifying scores. Homeworks must be submitted before class on the day it is due. Late submissions are not accepted. (See the "Homework/Quiz Drop Policy" below).

Each class (except the first one) will begin with a short quiz. There are no makeup quizzes. (See the "Homework/Quiz Drop Policy" below).

The lowest three (3) homework scores and quiz scores are dropped. I anticipate 13 homeworks and 13 quizzes. The top 10 of each count towards the final grade.

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, 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. See the GMU Honor code for procedures in the case of a suspected violation.

  • Homework (total 30%).
  • Quiz (total 30%).
  • Closed book, in-class, comprehensive final exam (40%).

The GTA for this class is Bhargava Bulusu, who may be contacted at TA has office hours in ENGR 4456. The GTA room may be subject to change; I suggest checking prior meeting.

1. Understand how to design usable software interfaces and implement them on the web 2. Understand how to build software that accepts information from users across the web and returns data to the user 3. Understand how to interact with database engines to store and retrieve information 4. Understand and acquire basic skills in utilzing the following technologies for designing and implementing web software: HTML, CGI programming, Java, Java applets, Javascripts, and Java servlets 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