SWE 432: Design and Implementation of Software for the Web

Professor: Jeff Offutt, http://www.cs.gmu.edu/~offutt/

OBJECTIVE:
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) 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.

LEARNING OUTCOMES:
  1. Knowledge of quantitative engineering principles for how to build software interfaces, including web-based, 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

CONTENT & STUDENT RESPONSIBILITIES:
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 topics that are included are HTML, CGI programming, Java, Java applets, Javascripts, and Java servlets. SWE 432 covers 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 several small programming assignments.

Prerequisite: Math 125 and CS 211

The detailed course syllabus is on the instructor's website: http://www.cs.gmu.edu/~offutt/classes/432/