review SFU ca by mikesanye


									CMPT 170

 Course Review and Final Exam Preparation

   Brief review of course topics
   Hints for final exam
BASH and Basic Scripting

   BASH
       Basic commands like: cd, ls, less, mkdir, ...
   Python scripting
       Be able to write basic Python scripts/programs
         def main():
             # ...

         if __name__ == '__main__':

   Basic tags; hyperlinking
   Multi-column layouts
   XHTML; validation
   Forms (covered near the end of the course)‫‏‬
       GET forms: use only for retrieving data
       POST forms: use when server/database might be
   Using images
   Basic usability
Django/web Basics

   How browsers and servers interact
   404 and 500 errors
   What web frameworks are, and why they are
   Other popular web languages (e.g. PHP) and
    frameworks (e.g. Ruby on Rails)‫‏‬
   Specific benefits of Django
   The Model-View-Controller (MVC) pattern

   Know the basic Django files, and what they
    typically contain:
Regular Expressions

   Read and write basic regular expressions in
       See notes for kind of regular expressions you
        should be able to read/write
   Use regular expressions to match URLs in
       Know how the ?P<label> notation sends strings to
Django Templates

   What they are and why they are useful
   Views use dictionaries to pass variables and
    values to templates
   Basic notation for {{variables}} and block tags,
      {% ifequal letter_grade 'A+' %}Excellent work!
      {% endifequal%}

   Blocks, base templats, and the extends tag
Python Dictionaries

   Basic syntax for creating using Python
   Both with and without Django
Relational Databases

   What are they? How do they structure data?
    What can they do?
   What are some popular relational
    databases?What relational database did we use
    in this course?
   Recognize basic SQL and get the gist of what it
    is doing
       You will not be asked to write SQL, or be expected
        to have detailed knowledge of it
ACID Properties

   Name and explain the ACID properties
       Atomicity
       Consistency
       Isolation
       Durability
   Why are they important?
Object-oriented Programming
   Understand basic ideas of OOP
   Know the basic terminology
       class, object, constructor, setter, getter, inheritance,
        polymorphism, overriding, ...
   Understand the basic idea of inheritance
   Be able to write a simple class
       Like the Person class in the notes
Object Relational Mapping (ORM)‫‏‬

   What is ORM? What does it do? What's good
    about it?
   How does it work in Django?
       A class that extends models.Model is a data model
       Essentially corresponds to an SQL table
       Model object = one row of data
       Most database queries are done through
        objects/classes --- usually no need for SQL
   Making basic queries via ORM
Cookies, Sessions,
   What are cookies? What are they used for?
    What are their pros and cons?
   What are (Django) sessions? Why are the
    preferred over cookies?
   What kinds of things does (Django's)
    authentication handle?
   What is HTTPS?
Basic Security Issues

   Why is security important? Why is it difficult?
   Don't trust data from the browser
   Know basic attacks and solutions
       Injection attacks: SQL, Email headers
       Cross-site scripting (XSS)‫‏‬
       Cross-site forgery (CSRF)‫‏‬
       Directory traversal
       Exposed error messages
Denial of Service Attacks

   What are they?
   Why are they so difficult to deal with?
   What can be done to deal with them, or plan for

   Performance issues for dynamic websites
   How does caching work in general?
   Memoization (caching at the program level)‫‏‬
   Kinds of server caches: RAM, database, file
   Downstream caches (e.g. Squid)‫‏‬
   Security/privacy issues
Final Exam


To top