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 13 th – 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%

1

Example Puzzle

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 