COURSE CALENDAR DESCRIPTION
A study of the technical infrastructure that underlies Electronic Commerce on the Internet. The foundational concepts are presented through a series of projects that use an industrial-strength framework on the server side, standard-compliant technologies on the client side, and a variety of messaging protocols on the network side. Best practices, security concerns, and performance issues are emphasized throughout. Two lecture hours per week. Two laboratory hours per week. Prerequisite: General prerequisite; LE/EECS 2030 3.00 or LE/EECS 1030 3.00; LE/EECS 2011 3.00. Course credit exclusions: LE/CSE 4413 3.00, AK/AS/SC/CSE 4413 3.00. (NOTE: The General Prerequisite is a cumulative GPA of 4.50 or better over all major EECS courses. EECS courses with the second digit "5" are not major courses.)
TOPICS AND CONCEPTS
Topics covered may include the following (with examples of technologies in parenthesis):
E-Commerce Concepts, Examples, Distributed Software Engineering
- Architecture and Design Patterns for E-commerce Applications (client-server, multi-tier, MVC)
Dynamic Client Views and Client Technologies (HTML, CSS, JS, Ajax, Angular)
Application Layer and its Patterns (Servlets, JSP, Filters and Listeners, Spring)
Data Layer Design and Technologies (JDBC, JPA, SQL and noSQL)
Software as a Service, Microservices (XML, REST, JAXB )
Deployment Architectures, Cloud
Design for Performance and Scalability
After successful completion of the course, students are expected to be able to:
- Develop an appreciation of the components that make up the web landscape and how these components interact with each other.
- Acquire the skills needed to build a complete web application that incorporates session management, database access, and analytics on the server side, and page formatting and interactivity on the client side.
- Build restful web services that interact with Ajax-powered client apps using a variety of transport protocols for data transfer.
- Become familiar with, and adhere to, best practices and design patterns to ensure code maintainability, interoperability, and scalability, and to minimize exploitable vulnerabilities.
- Learn how to build complex applications collaboratively through building abstractions and APIs, naming conventions, documentation, and organizing.
- Compare and contrast existing frameworks and approaches and develop an insight into the forces that are driving the current web trends.
RESOURCES. Available on Moodle.
ACADEMIC INTEGRITY LINKS
- Senate Policy on Academic Honesty
- Academic Integrity
- Student Rights and Responsibilities
- Religious Observance
- Academic Accommodation for Students with Disabilities