CSCI 1320 Creating Modern Web Applications Lecture 39: Course Review Project Presentations Monday and Tuesday Capstone Requirement Please send you 1-2 paragraphs describing your project and what you did to twd @ cs.brown.edu and jane_h_martin @ brown.edu 2 CS132 Lecture 34; Testing II 7/27/2016 Final Exam Thursday May 19th at 2pm Macmillan 117 3 CS132 Lecture 34; Testing II 7/27/2016 Lecture 1 What is a web application Basic web application architecture 4 CS132 Lecture 40: Course Review 7/27/2016 Lecture 2: The Browser & HTML What the browser does What is a URL and what are its components What is the HTTP protocol Basic HTML Basic CSS Style versus content The CSS language CSS Selectors CSS Capabilities 5 CS132 Lecture 40: Course Review 7/27/2016 Lecture 3: Accessibility What is internationalization Localization What is a locale How to achieve internationalization Typical disabilities What are assistive technologies and what do they do What is the W3C web accessibility initiative How to test accessibility 6 CS132 Lecture 40: Course Review 7/27/2016 Lecture 5: JavaScript Static versus Dynamic pages JavaScript as a programming language High-level (not the details) 7 CS132 Lecture 40: Course Review 7/27/2016 Lecture 6: Dynamic Web Pages JavaScript manipulating the DOM What this means, why, what it can achieve JQuery selectors (CSS) HTML5 features Multimedia: videos and audio files Animation what it means and how it is achieved Different visualization approaches 8 CS132 Lecture 40: Course Review 7/27/2016 Lecture 8: Requirements & Specs What are requirements Why are these important Approaches to obtaining them What are specifications Stories and scenarios Be specific Non-functional specifications/requirements Development approaches (e.g. agile development) 9 CS132 Lecture 40: Course Review 7/27/2016 Lecture 9: Backbone/Angular What are frameworks and why use them What is Backbone and what is it used for 10 CS132 Lecture 40: Course Review 7/27/2016 Lecture 10: The Web Server What does the server do How can web servers scale Alternative server technologies Node.JS, PHP, Servlets, … 11 CS132 Lecture 40: Course Review 7/27/2016 Lecture 11: App Architectures Server side applications vs client-side applications What are the pros and cons of each What is AJAX and what is it good for What is a RESTful API and what is it good for What are web sockets and what are they good for What are sessions and what are they used for How are sessions managed What are cookies and what are they used for How are cookies associated with web applications 12 CS132 Lecture 40: Course Review 7/27/2016 Lecture 12: Node.JS Node.JS is event-based (reactive) What does this mean How does it handle multiple users Node.JS strengths and weaknesses URL-based dispatch Templating 13 CS132 Lecture 40: Course Review 7/27/2016 Lecture 14: Databases What is a relational database Tables (relations), Fields (columns), Rows (tuples), Indices What is SQL Ability to read a SQL query What is the purpose of a database system 14 CS132 Lecture 40: Course Review 7/27/2016 Lecture 18: Other Server Techs NoSQL Databases Key-value stores Comparison to SQL databases Scalability, Transactions (ACID vs Eventual Consistency) Other Server approaches DIY and Django/Ruby on Rails 15 CS132 Lecture 40: Course Review 7/27/2016 Lecture 19: HCI What is human centric computing & why is it important User Friendly, user-centric What is web site navigation and why is it important Different navigation techniques How to represent web site navigation Methods for navigating a web site 16 CS132 Lecture 40: Course Review 7/27/2016 Lecture 20: HCI II Common Sense Simplicity Consistency Feedback Handling Errors Accommodating all levels of users Making it look good (Aesthetics) 17 CS132 Lecture 40: Course Review 7/27/2016 Lecture 25: Security I Overt potential security problems SQL injection attacks What are they & how to avoid them Cross-site scripting attacks Cross-site request forgery 18 CS132 Lecture 40: Course Review 7/27/2016 Lecture 26: Security II The Buffer Overflow problem People problems Threat models How to log in Never send passwords in the clear Never store passwords in the clear Never store passwords so that they can be compared Don’t send the same password the same way twice 19 CS132 Lecture 40: Course Review 7/27/2016 Lecture 27: Privacy/Testing Privacy What it means, its importance Privacy policies Legal and ethical issues What is testing What is a successful test case Regression testing 20 CS132 Lecture 34; Testing II 7/27/2016 Lecture 31: Testing Testing methods for web applications Usability testing User studies, A/B testing HTML, CSS, Links Back and front end unit testing 21 CS132 Lecture 40: Course Review 7/27/2016 Lecture 34: Testing II Testing web sites Web site testing Compatibility testing Performance testing Load and stress testing Security testing Design for Testing 22 CS132 Lecture 34; Testing II 7/27/2016 Lecture 36: Apple Swift What it is How it differs from a web application Front end only 23 CS132 Lecture 40: Course Review 7/27/2016 Lecture 38: Brown Web Services What is the most important element in a web site? 24 CS132 Lecture 40: Course Review 7/27/2016 Questions 25 CS132 Lecture 34; Testing II 7/27/2016 Next Time Presentation Day 26 CS132 Lecture 36: Apple SWIFT 7/27/2016