Course Description
This course is a contemporary exploration of modern web-based
information systems. It will integrate concepts from multiple computer
science topics used in the design, development, and deployment of
web-based applications, services, and knowledge systems. While broad
in scope, it will also cover several key concepts in depth, including:
web networking protocols, web databases and applications, web
services, web search, web-relevant security issues, web
infrastructure, and web-relevant data mining. Students will learn how
to incorporate these concepts into an engineering process that
includes design, analysis, development and testing, using technologies
such as HTTP, XML, JavaScript, AJAX, and others. Students will form
teams to implement assignments on Linux-based Apache web servers using
open-source components. These assignments will culminate in students
implementing their own large-scale Web search engine, roughly
comparable to Google or Bing. At the end of this course, students will
understand the science behind web-based information systems and the
engineering principles for building them. This is a 4-credit course
and satisfies the Software Area Kernel Requirement for MS and
Ph.D. students in CSE.
Fully understanding the Web requires background from many different
aspects of computer science. This course will try to bring together
this disparate material and make you think about how these should work
together to create a usable, efficient, and secure distributed
information system. Most students will probably be familiar with a
portion of the class material, but very few students will have
background in all of the topics covered. (If you're among the lucky
few, you might consider taking something else!)
Objectives
This course is about the design and development of information systems
in wide area networks. Its primary goal is to take a holistic view of
modern web systems and their constituent technologies. By the end of
this course, successful students will be able to:
● Understand how n-tiered architectures can be used to implement
secure, scalable systems
● Design and develop database-driven websites and applications
● Understanding XML as a messaging and data exchange mechanism
● Utilize JavaScript to improve database-driven websites
● Analyze server logs to understand system performance and user behavior
● Understand designs for modern search engines and datacenters
● Understand Web "semantic systems," such as auctions, recommendation
systems, andsearch ranking.
● Understand critical components of the modern Web infrastructure:
DNS, Content Delivery Networks, etc.
Prerequisites
The formal prerequisite for this class is EECS 281 OR (EECS 282 and
EECS 382). In past years EECS 484 was a requirement, but no more.
Less formally, a working knowledge of databases and SQL is
required. If you have not taken EECS 484, you may have to do
additional reading on your own.
There will be a substantial amount of programming in this class, and
programming will not be a major topic of lectures. So you are expected
to have "programming maturity." That is, you are deeply familiar with
at least one programming language that is suitable for software
engineering, such as Java, C, C++, Python, etc. You should be willing
and able to pick up other similar languages. You should be able to
understand and use new APIs by reading manuals and other relevant
documentation. Students who may be unsure about their qualifications
should approach the instructor with any questions.
By the end of class you will have written programs in three different
languages: a Web development language, JavaScript, and Java/C++.
Achieving the course objectives will require a significant amount of
learning outside of class. Lectures will cover key topics and help
integrate concepts, but will not necessarily cover all implementation
details. Discussion sessions will be dedicated to development
techniques, assignment details, and current lecture topics. Although
significant support will be available, student teams will be required
to research various technologies and development techniques to
complete their assignments.
Last Updated: Saturday, 10-May-2014 09:24:16 EDT