review SFU ca by mikesanye

VIEWS: 1 PAGES: 18

									CMPT 170




 Course Review and Final Exam Preparation
Introduction

   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__':
              main()‫‏‬
HTML/CSS

   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
        updated/modified
   Using images
   Basic usability
Django/web Basics

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

   Know the basic Django files, and what they
    typically contain:
       manage.py
       settings.py
       urls.py
       models.py
       views.py
       __init__.py
Regular Expressions

   Read and write basic regular expressions in
    Python
       See notes for kind of regular expressions you
        should be able to read/write
   Use regular expressions to match URLs in
    Django
       Know how the ?P<label> notation sends strings to
        views
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,
    e.g.
      {% ifequal letter_grade 'A+' %}Excellent work!
      {% endifequal%}

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

   Basic syntax for creating using Python
    dictionaries
   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
(OOP)‫‏‬
   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,
Authentication
   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
    them?
Caching

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

See
 http://cs-tjd-web2.cs.surrey.sfu.ca/cmpt170spring09/wiki/FinalExam/

								
To top