Databases and Web-programming RW 334

Download Report

Transcript Databases and Web-programming RW 334

Databases
&
Webcentric-programming
RW 334
Introduction
Willem Visser
[email protected] or [email protected]
RM A517
Computer Science
Stellenbosch University
Always a New Journey
• Fifth year for this course
• A journey of discovery
– For you and me 
• Two parts with overlap in the middle
– DB for Week 1 through 7
– Webcentric Programming Week 9 through 14
• DBs is kind of stable but the Web changes
everything, including this course!!
I’m note here…
• I’ll be gone the first 4 lectures
– Manaus Brazil
– Microsoft Research Seattle
• Prof Brink vd Merwe will take care of you
• Slides for these 4 lectures are on the web
– Please do attend the lectures
– This is the most complicated part of the whole
course!
• I’ll be back next Friday 13th
– Hmmm, nice day for a test?
Format
• 3 Lectures all in A407 Main Engineering
– Monday: 10am
– Tuesday: 8am
– Friday: 11am
• 1 Tutorial in NARGA B (or @Home)
– Wednesday: 2pm – 4pm
– Starting 5 Feb
Continuous Evaluation
•
•
•
•
(Random) Class Tests
Tutorial exercises
Project
Participation/Puzzles
40%
30%
25%
5%
Example Puzzle
1
2
3
One box contains a CAR and one box contains a KEY for it (not the same box).
You cannot see in the boxes!
Two players must decide on a strategy to maximize their chances to win the CAR
You win when both players pick two boxes and when opened up
PLAYER 1 finds the CAR in one of her boxes
PLAYER 2 finds the KEY in one of her boxes
Question is what is your strategy for picking
and
what is the chance for winning
Course Outcome
Databases
• Design a Relational Database
– Efficiently and Correctly
– Entity-Relation Modeling
•
•
•
•
Know the basics of SQL
Practical Experience using MySQL
Know how to access MySQL from Java code
Get to know modern database structures and usages
– Distributed Databases, Map-Reduce, etc.
– NoSQL
Course Outcome
Web-Programming
• Learn the fundamentals of the Web
– IP, HTTP, HTML, XML, etc.
• How to build a website with
– Google Web Toolkit (GWT)
– Google App Engine
• Cloud and Mobile Computing
• How to scale a website
• How to test a website
Entrepreneurship
• Worked very well in the past
• Last week of the course
• Might get a guest lecturer in this time as well
iMenu
Build your version of the perfect restaurant app with required
back-end functionality. Here is what I would build.
When you walk into the restaurant your app knows your location and signals
the owner of your presence.
After being seated you tap a NFC tag on the table which then tells the waiters
where your precise seat is. The app now has the menu and wine list ready
for you and you can select what you would like to drink. This is signaled to
the staff that then brings it over. Same process for the meal, however if you have a
special request you can press a "call" button that will alert the staff.
While you eat you can take a picture of the food, rate it and write a review;
pictures/rating/comments can be uploaded to form an on-the-fly review.
Finally a bill is made out dependent on how and if you want to split the costs.
You will be required to write an Android app for the client, a back-end system
to record and coordinate the client and restaurant views and lastly a website for
the reviews. The restaurant view can either an app or a webpage.
You are free to decide on your own requirements for the system.
• NO restrictions on the technology!!!
• Teams!
We will not use a handbook
However some of the early material will
be from this book…
Database Systems
Design, Implementation & Management
International Edition
Rob, Coronel and Crockett
Database Course Outline
20 Lectures
• Database History and Relational Databases (2)
• Database Modeling (3)
– E/R Modeling, Normalization
•
•
•
•
•
•
•
•
•
Relational Algebra (1)
SQL (2)
Triggers/Constraints (1)
Stored Procedures/Java interfacing (1)
Modern DBs (2)
Consensus Algorithms (1)
Data Warehousing (1)
Tests (3)
Discussions/Guest Lectures (3)
Database Course Outline
6-ish Tutorials
• Introduction
– Java data-analysis
• Database Design
– E/R modeling
– Relational Tables
• MySQL
– Usage and SQL Queries
– Complex SQL
• NoSQL
– MongoDB
Web Programming Course Outline
16 Lectures
•
•
•
•
•
•
•
•
•
•
Web fundamentals
Server Side Architectures and Hosting
HTML and Server side basics
Security
Javascript and AJAX
Caching
Map Reduce
Testing
Entrepreneurship (2)
Tests (2)
Web Programming Course Outline
3-ish Tutorials
• Google App Engine
• AJAX
• Web testing
Course Notes
• All slides will be available from the course
webpage http://www.cs.sun.ac.za/rw334/
– Printed versions can be requested
• Notes will be provided, where required
• Always check the webpage for additional info
What I want…
• To think and enjoy
• For you to remember at least 5 things from
this course
– That you can actually use in your careers
• Participate!
– It will be a rough ride, but you will learn
something
• Teach me 