CSCI 1320 Creating Modern Web Applications Lecture 39: Course Review

advertisement
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
Download