Prior to semester start
If you have time during break, and are looking for something fun to do, here are some possibilities:
- install a MySQL and Apache webserver on your laptop using XAMPP
- play around with node.js – a javascript web server – way cool.
- see the resources listed under April 5th – node.js day, below
- start learning PHP
- learn how to use the git versioning system and github.
week 01
Tuesday 15 January
- Intro to Course
- Intro to DB
Thursday 17 January
- lab 1: the XAMPP stack – handout
- preferred alternative install for Linux: https://help.ubuntu.com/community/ApacheMySQLPHP
week 02
Chapters 1 & 2
Tuesday 22 January
- RAT 1: chapter 1: 1 3×5 card of notes
- intro to PHP (pdf of slides)
- alien abduction zip file.
Thursday Oakleys sunglasses Outlet 24 January
- worksheet – simple queries on the world2.sql database
- interested in web design? check out smashingmagazine.com
week 03
Chapter 3
Tuesday 29 January
- Intro to PHP continued
- PHP and MySQL in 15 slides (or so)
- Team Task – finish alien2013
- Partner Task – basic blogging site – CPSC Posts (demo)
Thursday 31 January
- RAT 2: chapters 2 & 3: 1 3×5 card of notes (test is picky about syntax)
week 04
chapter 4
Tuesday 5 February
- Lightning round
- tomatoes.sql & world.sql (note: these sql files only contain the tables – you should first create a database)
Thursday 7 February
- First 45 minutes:
- Introduction to Scrum.
- Discussion of project
- Requirements of First Sprint
- Intro to GIT (Git video)
- Git Cheat Sheets: This one, and another
- GIT assignment –
- Session control and dangerous characters
- Last 30 minutes
- finish blog and demo.
week 05
chapter 5 & start of project
Tuesday 12 February
- GIT assignment demo
- The project
- self-organize into teams (2-4 people per team)
- Project design meeting ~ 20 minutes
- Sprint email due Wednesday 11:59pm
- PHP – Sessions and dangerous characters
- session code at https://github.com/zacharski/sessionDemo.git— do git clone
- pdf of slides
Thursday 14 February
- PHP odds and ends
week 06
chapter 6
Tuesday 19 February
- RAT 3 – chapters 4-6 – 1 3×5 card
Thursday 21 February
- Lightning Round
- umw.sql
- world.sql (you probably already have this)
- tomatoes2.sql
week 07
chapter 7
Tuesday 26 February
- SPRINT 1 DEMO
Thursday 28 February
- cookies – the essentials – what you need to know
- SCRUM design meeting 20 min. Requirements of this sprint:
- All tables in 3NF
- some queries involve multiple tables
week 08
chapter 8
Spring Break
Tuesday 5 March
Thursday 7 March
week 09
chapter 9
Tuesday 12 March
- RAT #4 though ch 8
- Damien Katz video
- Exploits, hacking, and protecting your site.
Thursday 14 March
- Exploits and Hacking continued
week 10
chapter 10
Tuesday 19 March
- SPRINT 2 DEMO
Thursday 21 March
- Lightning Round
- Final Sprint Requirements
- index one other column other than primary and foreign keys (there should be a reason to do so)
- implement one other sql feature (for ex., subqueries)
- for maximum credit make sure:
- all project members make commits and commits should be occurring throughout sprint (commit graph looks like a mesa)
- sql file creates database and user
- app should look clean (no error messages, some polish, something nfl jerseys china you would gladly demo to a potential employer)
week 11
chapter 11
Tuesday 26 March
- Team Task: Database design
- SQL injection
- Version 1 of Final Exam
- imdb_small.sql
Thursday 28 March
- FINAL RAT: RAT #5: chapters 9 – 11; temporary tables p534 #5; indexes p539; unlimited self-produced notes.
COMPLETION OF SQL PORTION OF COURSE
week 12
Tuesday 2 April
- Final SQL Sprint Demo
- Final Exam part 1 posted
- Sprint project peer review
Thursday 4 April
- Hilarity with Node.js
- we will watch the start of a great video on Node.js by Ryan Dahl, the creator of Node.js.
- Ryan Dahl with a 30 min. hands on tutorial on node.js — “Hilarity ensues”
- Great node info at How to Node.
week 13
Tuesday 9 April
- Introduction to noSQL (pdf of slides)
- Intro to MongoDB (pdf of slides)
- short code examples for php and node
- Please listen to the FLOSS Weekly podcast on MongoDB. The talk on MongoDB starts about 12 minutes into the podcast
- Optional Mongo RAT – please submit answers via email to submit.o.bot
- No SQL project requirements
- This assignment is optional. You can earn between 100 and 250XP. For amazing work you can earn 350 or even 500 XP
- I will give a demo of a very simple mongoDB/PHP application in class. Projects of this complexity will earn 100XP (assuming 2 person teams). To earn more XP you can use a new technology, add to the complexity of the site, or both
- I have a personal interest in using mongoDB with node.js (instead of PHP). There are a number of good jordans for cheap mongoDB/node.js tutorials on the web (for ex., Getting Started with MongoDB and Node.js and Blog Rolling with mongoDB, express, and Node.js). A good, basic mongoDB/node.js site would be worth 150XP (again, assuming two person teams). The blog rolling tutorial looks fairly complex and something along those lines would be worth at least 200XP
- You can use a different noSQL server. Using CouchDB will add at least 25XP, and a different noSQL server will add at least 50XP.
- You can combine new technology and add complexity. For example, a complete Lojong Mind Training Site using MongoDB and node.js would be worth at least 250XP.
- Time assumptions. I am assuming that one person can implement the simple site I demoed in an evening’s worth of work. A 3 person team should be able to implement a complete Lojong site in 3 hrs. This is the level of work I am looking for. I assume more output for larger teams
- You will be giving an extended demo of your project 25 April
Thursday 11 April
- Map Reduce
- SQL file containing cities info.
- Mongo file containing cities info. (mongorestore)
- SQL file containing query
- mongo map reduce example
(mongo localhost:27017/geoworld mapReduce.js) - zipcode mongo json For example,
mongoimport –db scratch –collection zips –file zips.json - More examples of jordan retro 11 Map Reduce in Mongo in the Cookbook
- The scoop on Map Reduce
- Cluster Computing and Map Reduce
- Lab time for teams working on noSQL project (persons not working on a noSQL project can leave 1/2 hr early.
week 14
Tuesday 16 April
- Would you rather work on cool stuff or have a secure big-bucks job? Damien Katz: CouchDB and Me
- Intro to Redis
Thursday 18 April
- Final version of the Final Exam
- CouchOne video
- Hadoop/noSQL parody video
- intro to CouchDB and demo
week 15
Tuesday 23 April
- Map Reduce Continued
- Google Technology Roundtable: Map Reduce
- Continuation of 11 April tasks and a few more added (can work with one partner)
- geoWorld: Find the closest cities in each country using mapReduce.js (does not involve writing any code) 20XP
- using the zip database, find closest cities in each state. 50XP
- For each state, the zipcode with the smallest population (but larger than 0). (zip db) 40XP
- For each city the population of that city. (zip cheap jerseys wholesale db) 40XP
- For each state, the city with the smallest population (but larger than 0) (zip db) 20XP
- Thanks
Thursday 25 April
- noSQL demo day. Düzce Failure to attend may result in a deduction of XP.