Teaching Staff
Instructor
Phillip J. Windley, Ph.D.
phil@windley.org
AIM: PJWindley
1114 TMCB
801.422.6465
Office Hours: 3:30-4:00pm, MW on a 90% availability basis
Feel free to contact me on AIM at anytime. If I can't talk for some reason, I'll let you know.
Teaching Assistants
Devlin Daley
1126 TMCB
AIM: oldshoes11
Office Hours:
- Monday 9-11am
- Thursday 9-11am
- Friday 3-5pm
Prerequisites
- HTML and web basics
- Operating systems (CS345), programming languages (CS330)
Objective
Give students the basic knowledge required to architect and build large-scale Internet applications. Students will learn what requirements are placed on an large-scale Internet application, how they are structured, what components come into play, and implement, as a class project, an large-scale Internet application. Implementing an large-scale Internet application is an exercise much larger than programming and skills other than programming come into play. This course will emphasize the exposition and development of those skills.
Extended Course Description
The World Wide Web (WWW) has exploded in recent years and consequently so has the need for computer scientists who understand how to design and build large web-based applications. Thus, this class will emphasize web-based systems and the functionality usually associated with a web-based system, although the techniques are more general that simply building large web applications.
This course emphasizes two things above all else:
- Distributed computation as a method for achieving system requirements
- Large-scale computing
These points differentiate this class from a course in concurrent or parallel programming where the emphasis is on the how processes communicate and coordinate their efforts to arrive at some solution to a problem, usually in less time than an single sequential process could. This course is not about programming per se, but rather about architecting systems. The goal of distributing the computation is not just better performance (although that is always at the heart of any problem) but to build systems that are highly
- Flexible,
- Reliable,
- Scalable,
- Secure, and
- Available
By their very nature, designing and building large-scale Internet applications requires skills and knowledge not generally associated with smaller scale or non-distributed applications. These include knowledge of how networks operate, how computer systems work and are structured, security, how database can be exploited effectively, etc.
