Intro to e-Technology
Fall Semester 2007
Introduction to concepts, theories and techniques of Internet and WWW programming.
Class Meeting Times/Location:
10:40-11:30 on MWF in 356A Fitzpatrick Hall
Instructor:
Greg Madey, gmadey@nd.edu, (574)631-8752, 350 Fitzpatrick Hall
Office Hours:
By appointment (and whenever my office door is open!)
Teaching Assistant:
Matt Van Antwerp, mvanantw at cse.nd.edu, (574)631-7596, 206 Cushing
Required Texts:
1) Programming the World Wide Web by Robert Sebesta, 4nd Edition, 2008, Addison-Wesley
2) Oracle10g Programming by Rajshekhar Sunderraman, 2008, Addison-Wesley

Optional Texts
1) JEE Tutorial, Sun Microsystems, 2007,
http://java.sun.com/javaee/5/docs/tutorial/doc/
2) The Java Tutorial,
http://java.sun.com/docs/books/tutorial
Course Goals:
In this course, students will learn:
How to design and develop Web-based applications, e-Commerce applications, e-Science applications, and web services,
How to design a large system (course project) requiring integration with other student projects,
How to design and develop client side applications using Javascript, CSS, and AJAX,
How to work with XML,
How to program using perl/cgi,
How to program Java/JSP/JEE web-based applications,
How to use PHP,
How to program using Ruby and Rails,
How to access databases using JDBC, DBI, and PHP,
How to install and configure web and application servers,
How to install, configure and use an IDE such ast Eclipse or NetBeans,
How to design and develop web services,
How to write a Java program using either SAX or DOM to parse and insert XML formated data into a relational database.
Prerequisites: A programming course
Representative Topics:
Overview of web client programming: X/HTML, CSS, DHTML, Javascript, AJAX, DOM Scripting, browser rendering, security, validation, usability, accessibility
Perl programming
Apache server administration/development: installation, configuration, tuning/performance, authentication, server side includes, proxy servers, MIME, security, server APIs, modules, writing modules, security
CGI programming primarily using Perl: forms, cgi-lib.pl, CGI.pm, maintaining state, e-mail, search engines, efficiency and optimization, security, alternatives to CGI, PHP, JSP, validation
Database access from Perl, using Perl DBI, database security
Middleware, Java, JEE, JDBC, Servlets, JSP, Java Beans, XML, XSL
E-Science applications: distributed and collaborative engineeering design support, bioinformatics, web-based simulations, engineering and scientific portals, online research support systems, grid services
Other topics: Web Services, SOA, Soap, Semantic Web, RDF, UDDI, WSDL, OWL, Wiki, Blogs, E-Commerce site design, performance and scalability, optimization, multimedia, streaming servers, privacy, ethics, strategy, security, PKI, B2B, B2C, C2C, P2P, .NET, RSS/Atom, student requests, etc.
Computer Usage: Course content will be project driven. Many Perl, CGI, Javascript, Ruby, PHP and Java programs will be assigned. Integrated development tools will be used (e.g., Eclipse, NetBeans. Several large team projects will be assigned.
Case studies: the VectorBase project, the SourceForge research data archive, the WIPER project, the MTC project, and the VORTEX-Winds project.
Grading
Programming assignments 30%
Class participation/presentation(s)/pop quizzes 40%
Exams (2) 10% each
Final project 10%