Schedule
Week 1
Tuesday 13 January
- Week’s Highlights: Intro to development environment and getting super-simple web-app running
- Intro to Course
- Intro to DB (pdf of slides)
Thursday 15 January
- lab 1: Getting started developing web sites with Python and Flask
- Team worksheet
- introduction to Python and Flask
- git clone https://github.com/zacharski/templateIntro.git
week 02
Tuesday 20 January
- Week’s Highlights: Developing a simple Flask-based website; loading a database and writing simple queries
- hfSQL chapters 1 & 2.
- RAT 1: hfSQL ch1: one 3×5 card of notes
- HOMEWORK due today: Flask project
- read chapter 2
Thursday 22 January
- postgreSQL on cloud9
- worksheet – simple queries on the world.sql database
- interested in web design? check out smashingmagazine.com
week 03
Tuesday 27 January
- Week’s Highlights: HTML forms and writing a data driven Flask app.
- Reminder: Please continue to read the book. (chapter 3 & 12 this week)
- HTML forms (slides)
- code: git clone https://github.com/zacharski/AlienAbductions2.git
Thursday 29 January
- finish alienAbductions – forms work(10 minutes)
- Python and PostgreSQL in 37 slides
- Team Task -adding a database to the alien abduction site.
- HOMEWORK:
- TBD (instructions at that site)
- prepare for second RAT (chapters 2, 3 & 12)
week 04
Tuesday 3 February
- Week’s Highlights: Putting it together – developing a website that uses a database
- RAT 2: chapters 2, 3, & 12: 1 3×5 card of notes (test is picky about syntax)
- HOMEWORK
- demo in class 10 Feb. (bonus for people who demo on or before Friday the 6th)
- https://github.com/zacharski/whereInTheWorld (instructions at that site)
- SUPREME IMPORTANCE
- PostgreSQL working on laptop or c9
- finish alien abduction task
Thursday 5 February
- Alien Abduction Demo Day – at start of class for 15 minutes.
- Alien Abduction DB requirements
- when a user submits an abduction report it gets saved to the database
- the list abductions tab works and shows the list of abductions.
- Lightning Round
- tomatoes.sql
- world3.sql –drop your old world database and install this one
week 05
Tuesday 10 February
- Week’s Highlights: Starting the team project
- sessions and other topics (slides)
- sessions.sql
- git clone https://github.com/zacharski/flaskSession.git
- Deliverables (due 17 Feb for Max XP):
- right now the flaskSessions code works with mySQL you need to change it to work with PostgreSQL.
- implement sessions so when a person is logged in searches are restricted by zip code and username appears in menu bar
- implement logout
- implement handling of dangerous characters so, for ex., when a person types in Peet’s the search succeeds
- implement a new user registration page that stores passwords as hashes. Change all code to use these hashed passwords
Thursday 12 February
- SQL Injection (quick 30 minute intro)
week 06
chapter 6
Tuesday 17 February
- Snow Day
Thursday 19 February
- Week’s Highlights: Starting the project & developing expertise querying one database table.
- RAT 3 – chapters 4-6 – 1 3×5 card
- Introduction to the project
- Partner sign up sheet
- Intro to GIT (Git video)
- Git Cheat Sheets: This one, and another
- Initial Code For Project git clone: https://github.com/zacharski/irc.git
week 07
Tuesday 24 February
- Week’s Highlights: Project Lab Day
- lab day
- sides from today
Thursday 26 February
- Lightning Round
- umw.sql
- world.sql (you probably already have this)
- tomatoes2.sql
week 08
Spring Break
Tuesday 3 March
- Week’s Highlights: Spring Break & coding @ home.
Thursday 5 March
week 09
chapter 9
Tuesday 10 March
- Week’s Highlights: writing a query that accesses multiple tables & demo day.
- RAT 4 (ch 7-9)
Thursday 12 March
- Lightning Round (material up to ch 7)
- umw.sql
- world.sql (you probably already have this)
- tomatoes2.sql
- Sprint 2 requirements
- the chat supports multiple rooms (EXAMPLE CODE: https://bitbucket.org/zacharski/irc.git)
- Users are subscribed to a set of rooms and cannot access rooms that they are not subscribed to.
- When a user searches for something the search takes place only in posts in rooms they are subscribed to
- all tables in 3NF
- Earn more XP by implementing other features that rely on a db. (for ex, a register an account popup)
week 10
chapter 10
Tuesday 17 March
- Week’s Highlights: last week of SQL and finishing the final SQL sprint.
- Sprint 1 Demo
- Database design
Thursday 19 March
- Lightning Round — Joins
- Chinook DB (the new postgresql version – NOTE: This does not create a database)
- Movies (the new postgresql version)
- World (you already have this)
week 11
Tuesday 24 March
- Week’s Highlights: Final SQL demo & start of noSQL.
- intro to noSQL
- RAT 5 (a short 5-7 question RAT covering 9, 10 & 11) two 3x5s of notes.
- Database Design Team Worksheet
Thursday 26 March
- noSQL intro cont’d
- Cassandra Quickstart
- Developer Walkthrough
- Documentation for select statement
- Sample data
COMPLETION OF SQL PORTION OF COURSE
week 12
Tuesday 31 March –
- Sprint 2 demo
- Final exam part 1 posted.
- imdb_small.sql
- Cassandra with Python tutorial
- task: can you get alien abductions working w/ Cassandra?
Thursday 2 April
- Week’s Highlights: Start of noSQL project
- Peer Review
- Discussion of final project (slides)
- Hilarity with Node.js
- Cassandra Cont’d
week 13
Tuesday 7 April
- Week’s Highlights: Learning Map Reduce
- Installing Mongo in Five minutes:
- Intro to MongoDB (pdf of slides)
- Map Reduce Fun
- SQL file containing cities info
- SQL showing the two queries from our example
- Mongo file containing cities info (unzip and use mongorestore)
- map reduce javascript / mongo example
- zipcode mongo json. For example mongoimport -d scratch -c zips < zips.json
- More examples of Map Reduce in Mongo in the Cookbook.
- More Map Reduce Fun & earn XP
Thursday 9 April
- LAB TIME
- How to copy data into and out of Cassandra
- The scoop on Map Reduce
- Cluster Computing and Map Reduce
- Work on Map Reduce, Cassandra’s abduction, or final project.
week 14
Tuesday 14 April
- Final Project Signup
- Redis Intro
- A Mongo/Flask example
- git repository: https://github.com/zacharski/flaskMongoLojong (see readme for tasks)
- Hadoop/noSQL parody video
Thursday 16 April
- Week’s Highlights: Learning about scaling web applications (what happens when your web startup gets popular and one server is too slow)
- Final Project Signup
- Would you rather work on cool stuff or have a secure big-bucks job? Damien Katz: CouchDB and Me
week 15
Tuesday 21 April
- Week’s Highlights: Push to get project done and demoed!
- Intro to CouchMap Reduce Continued
- CouchOne video
- Google Technology Roundtable: Map Reduce
- Thanks
Thursday 23 April
- noSQL demo day. Failure to attend WILL result in a significant deduction of XP.