CS645 Advanced Web Application Development Spring 2015 Credits: 3 units Instructor: Alan Riggins Office: GMCS 534 Office Hours: 10:00-11:30 Monday, 9:00-11:30 Wednesday, Friday. Course Materials Sams Teach Yourself Ajax, JavaScript, and PHP All in One, Phil Ballard; Michael Moncur ISBN: 978-0-672-32965-4, Sams, Required. Core Servlets and JavaServer Pages Volume I, Hall, Brown. ISBN: 978-0130092298. Required Course Information Prerequisites: Computer Science 310 or equivalent. CS545 strongly recommended. Description from the Official Course Catalog Continue to advance your skills with the Advanced Web Application Development course. On the client side, you will learn advanced XHTML, CSS, Javascript, and AJAX. Server side topics include developing applications using Java Web Services (servlets and JSP), integration with SQL database systems, and common frameworks for rapid development and deployment. A major emphasis is on highperformance platforms, and application architectures suitable for large, complex projects. Course Type: Upper division elective course, part of the Advanced Web and Mobile Applications Certificate program, a graduate level program offered through the College of Extended Studies. Specific Goals for CS645 Course-Level Student Learning Outcomes 1. Students should gain a thorough understanding of basic architecture of the Internet and the World Wide Web. 2. Students should gain a thorough understanding of server side architecture, and the issues for large, complex systems. 3. Students should become proficient with advanced CSS layout and properties. 4. Students will become proficient with Javascript and jQuery for client side behavior. 5. Students will learn the standard CGI protocols, and develop extensive server side scripting in PHP and Perl. 6. Students will learn a system suitable for large scale applications, such as Java Web Services with servlets and JSP. 7. Student will learn standard SQL database design and language, and will incorporate relational database systems into web projects. 8. Ability to build sophisticated, well designed dynamic web based systems from the ground up. 9. Ability to analyze a variety of software problems and provide appropriate solutions (what to use when) including written reports with analysis of implementation options and recommendations for an optimal solution, which includes a rigorous complexity analysis. Relationship to CS Program Course Outcomes CS645 addresses the following outcomes: 1. An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution. 2. An ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs. 3. Recognition of the need for and an ability to engage in continuing professional development 4. An ability to use current techniques, skills, and tools necessary for computing practice 5. An ability to apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices. 6. An ability to apply design and development principles in the construction of software systems of varying complexity. Topics Covered 1. 2. 3. 4. 5. 6. 7. HTML, XHTML, HTML 5. CSS (cascading style sheets). Javascript and industry standard Javascript libraries. AJAX Scripting in Perl Server side development using Java Database systems Schedule and Grading Policies Week Topic Projects/Activities 1 Course introduction, the Internet and WWW 2 Advanced Perl, regular expressions 3 Advanced database systems for web use 4-5 Introduction to Java Web Services 6-9 Architecture for large, complex systems. 10-11 The Google Web Toolkit Project #2 12-14 AJAX Midterm #2 14-15 Assorted topics Project #3 Midterm #1, Project #1 Projects/Assignments There are three to four web based projects: A Perl CGI application. Two Java Web Services based applications A project using a framework such as Google Web Toolkit Students will write all code for these assignments rather than using development software such as Dreamweaver or similar code generation tools. Grading Policy Grading is based on exams (60%), programming assignments (40%). There are four programming assignments, and two midterm exams. The final, capstone project is in lieu of a final exam. Grades are not curved, but based on percentages: 93% and above A 90%-92% A87%-89% B+ 83%-86% B 80%-82% B- 77%-79% 73%-76% 70%-72% 67%-69% 63%-66% 60%-62% below 60% C+ C CD+ D DF Students with Disabilities If you are a student with a disability and believe you will need accommodations for this class, it is your responsibility to contact Student Disability Services at 619 594-6473. To avoid any delay in the receipt of your accommodations, you should contact Student Disability Services as soon as possible. Please note that accommodations are not retroactive, and that accommodations based upon disability cannot be provided until you have presented your instructor with an accommodation letter from Student Disability Services. Your cooperation is appreciated.