CSE40613-01-FA07 / CSE60613-01-FA07
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
0321489691 51b0nOddeNL._AA240_
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%