Help:COAP-3180: Difference between revisions

The educational technology and digital learning wiki
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
Line 31: Line 31:


{{:Help:COAP-3180/week1|COAP 3180 - week 1 - Light-weight databases and web 2.0}}
{{:Help:COAP-3180/week1|COAP 3180 - week 1 - Light-weight databases and web 2.0}}


=== Topics Covered ===
=== Topics Covered ===
Line 65: Line 63:
See [[Help:COAP-3180/hw1|homework 1]]
See [[Help:COAP-3180/hw1|homework 1]]


==Week 2==
=== Topics Covered ===
'''Short overview of databases'''
* What is a Database and how is it used in Internet applications ?
* Relational data base management systems (RDBMS) and ownership of databases
* MySQL (databases, tables and users): First contact with this RDBMS
'''Web applications'''
* Application architectures / frameworks overview (recall of lesson 1)
* WAMP/LAMP software bundles and applications, various options
* Installation of web applications: First contact with that sort of procedure
'''Reading'''
I suggest that you have a look at the following articles. Reading is not mandatory, but may help you understand some concepts and issues.
* [http://en.wikipedia.org/wiki/Web_hosting_service Web Hosting Service] (Wikipedia)
* [http://en.wikipedia.org/wiki/Shared_web_hosting_service Shared web hosting service]
* [http://en.wikipedia.org/wiki/LAMP_%28software_bundle%29 LAMP (software bundle)] (Wikipedia) - [[WAMP]] (this wiki)
* [http://en.wikipedia.org/wiki/Mysql MySQL]
=== Classroom activities and homework ===
* Configuration of a portal in a WAMP system or with an [[web hosting service]]
* We will work with the [[Joomla]] portalware.
* For all practical tips, see the [[Help:COAP-3180/hw2|homework 2]] page
Software:
* [http://www.chsoftware.net/en/useware/wos/wos.htm?action=download WOS portal] (default system used in class, will run on a memory stick). The instructor will provide you with a default mix.
* [http://www.wampserver.com/ Wampserver] (for those who prefer to work on their own portable)
* An Internet hosting service with PHP/MySQL included in their offer (for those who prefer to start building projects on their own domain)
; Homework
See [[Help:COAP-3180/hw2|homework 2]]
==Week 3==
=== Topics Covered ===
'''Portalware configuration''' (continued):
* discussion of homework 2 and further configuration of Joomla (part 2 of homework 2)
'''Relational databases: Introduction to SQL (part 1)''':
* Relational tables (principles)
* Retrieving data
* Definition of SQL tables and use of the phpMySQL tool
* Short Overview of other RDBMS
'''Slides''':
* http://tecfa.unige.ch/guides/te/files/mysql-intro.pdf
'''Reading''':
Pick one of these. Some articles are presented as multiple pages (!)
* [http://www.intermedia.net/support/sql/sqltut.asp Introduction to Structured Query Language: Version 4.11] by James Hoffman.
* [http://www.webdevelopersjournal.com/articles/sql.html Getting Started With SQL] by Ted Brockwood
* [http://sqlcourse.com/intro.html What is SQL?]
* [http://www.databasejournal.com/sqletc/article.php/26861_1428721_1 Introduction to Databases for the Web: Pt. 1] by Selena Sol (most complete article)
=== Classroom activities Monday and homework ===
* Learn how to use MySQL Admin (a web application to administer web databases) to create databases and tables
* Create a simple 1-table MySQL database with a database administration tool and with SQL instructions
* [[Help:COAP-3180/hw3|homework 3]]
=== Classroom activities Wednesday ===
* web hosting
* Databases and database user management with MySQL
* Joomla installation and configuration
==Week 4==
=== Topics Covered ===
'''Relational databases'''
* Introduction to SQL (part 2)
* Modifying data
'''Working with PHP and MySQL'''
* Principles of PHP programming
* Simple PHP/MySQL interaction
* Short overview of other application frameworks (.Net, J2EE)
'''Slides''':
* http://tecfa.unige.ch/guides/te/files/php-mysql.pdf
'''Reading'''
Reading is an option here, since I don't make learning PHP mandatory. Here are a few PHP and PHP/MySQL tutorials that can be found on the net. There exist many others.
* Weiss, Aaron (2000) [http://wdvl.internet.com/Authoring/Languages/PHP/Welcome/  Welcome to PHP], somewhat outdated ...
* [http://www.w3schools.com/php/default.asp PHP Tutorial] (W3C Schools, includes a section about PHP/MySQL).
* Gilfillan, Ian (2002). [http://www.databasejournal.com/features/mysql/article.php/1469211 Using a MySQL database with PHP], ''[http://www.databasejournal.com Database Journal]''. (shorter 3-page tutorial)
* Yank, Kevin (2002) wrote a five part series in the ''[http://www.databasejournal.com Database Journal]'' (Ok, but too much advertisement).
** [http://www.databasejournal.com/features/mysql/article.php/1383591 Build Your Own Database Driven Website Using PHP & MySQL: Pt. 1] (Overview)
** [http://www.databasejournal.com/features/mysql/article.php/1384211 Build Your Own Database Driven Website Using PHP & MySQL: Pt. 2]  (yet another MySQL tutorial) ** [http://www.databasejournal.com/features/mysql/article.php/1402121 Build Your Own Database Driven Website Using PHP & MySQL: Pt. 3] (PHP Introduction)
** [http://www.databasejournal.com/features/mysql/article.php/1402281 Build Your Own Database Driven Website Using PHP & MySQL: Pt. 4]. (Displaying information on a web page)
* [http://blazonry.com/scripting/linksdb/ MySQL PHP Web Database Tutorial] (1999). Simple table, by web.blazonry
* Williams, Hugh, E. (2002). Tips for Building Web Database Applications with PHP and MySQL, onLamp article (O'Reilly Databases). [http://www.onlamp.com/pub/a/onlamp/2002/04/04/webdb.html HTML]
* Sample chapter of [http://www.webdatabasebook.com/ Web Database Applications with PHP and MySQL] website.
'''Software''':
* http://www.webformgenerator.com/ (Webform generator)
* http://www.sqlmaestro.com/products/mysql/phpgenerator/ (SQL Maestro PHP Generator)
=== Classroom activities and homework ===
; Monday
* Generation of a simple web application with a code generator. This homework is a follow-up of homework 3 (part 2), i.e. this time we will see how to create a web interface to your little database.
; Wednesday
* Discussion and presentation of [[Help:COAP-3180/hw1|homework 1]] (final),
* Discussion and presentation of [[Help:COAP-3180/hw2|homework 2]] (Joomla, almost final).
* Discussion of [[Help:COAP-3180/hw3|homework 3]], part I (application you plan to create and the table architecture, next step).
* Some simple PHP programming activities (just FYI).
==Week 5==
=== Topics Covered ===
'''Introduction to XML databases''' (1)
* Retrieving XML nodes with XPath
'''Reading'''
* Ronald Bourret (2005). XML and Databases, http://www.rpbourret.com/xml/XMLAndDatabases.htm
* Darshan Singh, Essential XQuery - The XML Query Language, http://www.yukonxml.com/articles/xquery/
* XQuery http://en.wikipedia.org/wiki/XQuery (Wikipedia)
'''Slides'''
* http://tecfa.unige.ch/guides/te/files/xml-databases.pdf
'''Recall of XML technology'''
* Crash Course introduction to XML and XSLT
* Editing XML files using a schema (DTD and/or XML Schema).
Slides:
* http://tecfa.unige.ch/guides/te/files/xml-intro-edit.pdf
* http://tecfa.unige.ch/guides/te/files/xml-ns.pdf (optional)
* http://tecfa.unige.ch/guides/te/files/xslt-basics.pdf
=== Classroom activities and homework ===
* Create or load a valid XML file (XML editor)
* Retrieve nodes with XPath
* Write an XQuery file to retrieve a fragment.
;Homework
See [[Help:COAP-3180/hw4|homework 4]] (part 1)
==Week 6==
(provisional)
=== Topics Covered ===
'''Introduction to XML databases''' (2)
* Use of XML databases, presentation of the [[eXist XML database]]
* Short recall of networking, web services and database connectivity standards
* The REST API for eXist
'''Reading'''
* [http://www.oreillynet.com/xml/blog/2006/09/i_think_therefore_i_exist.html I Think, Therefore I eXist ...], by by Kurt Cagle (2006), XML.com
* [http://www-128.ibm.com/developerworks/library/x-mxd5/ Managing XML data: eXist -- an open source native XML database] by E.R Harold (2005), IBM developer works.
'''Slides'''
* http://tecfa.unige.ch/guides/te/files/connectivity-web-services.pdf
'''Additional reading''' (optional)
* [http://en.wikibooks.org/wiki/XQuery XQuery Wiki book]
* [http://www.ibm.com/developerworks/xml/library/x-stand1.html A survey of XML standards I]
* [http://www-128.ibm.com/developerworks/xml/library/x-stand2.html A survey of XML standards II]
* [http://www.w3.org/XML/Query/ XQuery W3C Index Page]
* [http://www.w3.org/TR/xquery/ XQuery Spec.] (Jan 2007)
* [http://www.w3.org/TR/xqupdate/ XQuery Update Facility Spec.] (Aug 2007) and [http://www.w3.org/TR/xquery-update-10-use-cases/ 10 use cases]
=== Classroom activities and homework ===
* Play with the eXist database
* Retrieve documents with the REST interface
* Add documents through the Java Admin client
;Homework
See [[Help:COAP-3180/hw4|homework 4]] (part 2)
==Week 7==
(provisional)
=== Topics Covered ===
* XQuery (working with the eXist database - finally)
* Database to XML Sources (short introduction)
* Introduction to [[LDAP]] databases, authentication systems and address books
* Light-weight [[digital identity]]
'''Reading'''
* See Week 6 for XQuery-related materials
* [[LDAP]] (this wiki)
=== Classroom activities and homework ===
* Uploading xq files to eXist
* Integration of an XML data source in a web page.
==Week 8==
=== Topics Covered ===
Exam, see the [[Help:COAP-3180/exam|COAP 3180 exam]] page for details
(there will be no Wednesday lesson)
== Homework and exams overview ==
=== Breakdown ===
(revised version, adapted to small group teaching)
{|border="1" cellspacing="2"
|Homework
|70%
|-
|Final exam
|30%
|}
=== Final Exam ===
* The exams will contain paper-based questions (both technical and conceptual)
* All materials will be allowed.
* See the [[Help:COAP-3180/exam|COAP 3180 exam]] page for details
=== List of homework ===
Typically, a homework will extend over at least two weeks. During the first week you are asked
to produce part 1. You then have to add extra features and/or make revisions. Only the final
version will be evaluated. However, you may get minus points if you don't turn in part 1 versions.
* [[Help:COAP-3180/hw1|homework 1]]
* [[Help:COAP-3180/hw2|homework 2]]
* [[Help:COAP-3180/hw3|homework 3]]
* [[Help:COAP-3180/hw4|homework 4]]
[[category:XML]]
[[Category:Courses and workshops]]
[[Category:Courses and workshops]]

Revision as of 21:30, 10 January 2010

<pageby nominor="false" comments="false"/>

Introduction

Disclaimer: This is a resource page for my Spring 2010 I Web Databases course (COAP 3180) at Webster University, Geneva. This page does neither replace the official syllabus nor the official learning management system (WorldClassroom/Blackboard) cou, but it allows students to navigate more efficiently through the materials

This program is provisional and will be adjusted on a weekly basis. Note: this course was held as an independent study class in 2007 and some contents need to be adjusted to the 2010 course.

Course level outcomes

At the completion of this course students will be able to:

  1. Add a Webpage Database to an HTML page
  2. Manipulate data using SQL operations
  3. Publish both static and dynamic data on the Web
  4. Convert text files to XML databases
  5. Be able to query XML data using XQuery
  6. Be able to work with relational data as XML

These outcomes defined in the syllabus can be translated to more practical outcomes:

  1. Use simple Web 2.0 database services and integrate it into a webpage.
  2. Manipulate data using SQL operations and create simple SQL databases in a DBMS.
  3. Understand the architecture of a simple web application (HTML client / Web server / Script / Database).
  4. Be able use a LAMP/WAMP software bundle and to install and to configure web applications, e.g. a CMS. This can evolve into a term project.
  5. Generate a very simple web application that can connect to a database management system (DBMS) though an ODBC API.
  6. Understand/recall XML basics, like converting text files and database output to XML, editing an XML file using a schema and displaying XML data.
  7. Be able to query and update XML data files and XML Databases using XQuery dand XQuery Update.
  8. Understand the general architecture and purpose of LDAP address and authentication servers and light-weight solutions like OpenID.

Week 1 - COAP 3180

Topics Covered

(1) Introduction

(2) Web 2.0 vs. "traditional Internet"

  • An ever increasing amount of applications are available through the Internet. Many of these applications can be shared, others are by definition "social software" (e.g. wikis, YouTube, flickr, blogs).
  • Reading (for students not familiar with the "web 2.0" concept): O'Reilly Tim (2005), What is Web 2.0, better take the print version.
  • Additional resources for those who want to explore this topic further: This wiki, e.g. start from the rich internet application article.

(3) Simple on-line database services

  • Learn how to create and use simple tabular databases with a web 2.0 service (http://creator.zoho.com)
  • Practical details are explored in class and through homework one.

Classroom activities and homework

Synopsis:

(1) Take an account with Zoho (see also below)

(2) Take an account with Netvibes (see also below)

  • http://netvibes.com
  • Create a new page (tab)
  • Import the result view from Zoho
  • Export this page to the public

(3) Turn in this homework in the WorldClassroom:

  • Provide the NetVibes URL
  • Define the objective of this application in 2-3 sentences (including the target audience)

Homework 1

  1. Think about a little database (i.e. a simple list of items that have features/properties) and that you would like to put on the web. Then make a list of properties that describe such a "item".
    • Examples: A list of CDs, a list things you want to sell, your favorite list of flowers
  2. Implement a Zoho creator database form that allows to describe each item with a few properties (fields). Make sure to select the right data type for a given kind of item.
  3. Add some test data to this database. Revise the database definition if needed.
  4. Enter some more data (at least 5 items)
  5. Make the Zoho "view" that displays the results public (gathered data becomes public on the web). You also can change the way data are displayed.
  6. If you wish, you also can make the data gathering public
  7. Create a public NetVibes page and import your Zoho creator widget (advanced course participants may use another environment that allows insertion of web widgets, talk to the instructor ....)
  8. Add an explanation using some appropriate NetVibes "text" widget, i.e. describe to the reader what your pagecast (in particular the Zoho form) is good for.
  9. In order to achieve better user experience, you also should add some useful extra information/widgets to the Netvibes page (or equivalent), i.e. the page cast should include the Zoho database plus the "what's this" (previous point) plus some useful extra information.
  10. Submit your work as assignment in the Worldclassroom. Important: Urgently consult the librarian if you can't log into this Webster on-line environment. In the submission field:
    • Provide the URL
    • Define the objective of this application in 2-3 sentences (including the target audience)


Remarks:

  • If you prefer to remain anonymous, do not leave Name, Firstname, professional email etc. or anything that can identify you on the public page.
  • Tips that help you getting this homework done are below ...

Submission Dates

  • This homework is due at start of Wednesday week 2 lesson
  • Students must provide the URL (where the instructor can see the widget) in the world classroom
  • Each homework counts 10% in your global evaluation. The four best homeworks will be taken into account.

Evaluation

  • Quality of Zoho database: Items should be described in a useful way with respect to your objectives and the target audience. You should use appropriate data types (but don't make it too big !)
  • Quality of the Netvibes pagecast (is it usable and understandable ?)
  • Worldclassroom upload (short definition of the objectives and correct URL)

Tip:

  • Quality is essentially related to the idea that your applications are useful to a given range of users.
  • Make sure that all required elements are present

Tips for the homework

Below is a rough outline of the procdure you should follow.

(1) Leave all the needed applications open in your browser

Make sure that you are logged to both applications.

  • Netvibes with your login
  • Zoho: Switch to Zoho Creator

Tip: It is best to work with 3 different web browser tabs: One for Netvibes, one for Zoho, and one for this page. If necessary, ask the instructor to explain tabbed browsing...

(2) Read the Help, in particular the Quick Start Guide for Zoho

Important starting points:

  • http://help.creator.zoho.com/ - The most important thing to understand about Creator is that you will have two interfaces: One for defining the database table structure (form authoring) and another for gathering data and looking at the results (the view).
  • http://tour.netvibes.com/overview.php - The most important thing to understand about NetVibes is that you must find a Netvibes widget called HTML/UWA, insert it in a pagecast and then enter the Zoho widget code through the Edit button.

(3) Make a Zoho widget public

To export a widget from Zoho:

  • Click on Edit this application / Share
  • Tick This application is: X public

(4) Exporting Zoho widget code To get the Zoho widget code for embedding in some other place

  • Click on Access this application
  • Select a view from the menu to the left
  • Then use the pull-down menu More Actions->Embed in your Website
  • Copy/Paste the code to another web application. E.g. the HTML Netvibes widget as explained below.

(5) Configuring Netvibes and widget import

Firstly (if this isn't already the case) create a new page in Netvibes

  • Then make this Netvibes page public:
    • Click on the Edit button (in the Tab of the page)
    • Then click on "Share this Tab" / Publish on your page.
    • Make sure to write down the URL (You will have to submit it as homework)

To import a Zoho Creator application (database) into Netvibes:

  • Create a HTML/UWA Widget (you can find it under "HTML" in the list of essential widgets)
  • Edit the widget
    • Copy/Paste the widget code from Zoho

See also the Creating websites with online services article in this wiki. It provides an overview of some easy and free online services.

Links and teaching materials

Online software
http://creator.zoho.com/ (Zoho creator online database)
http://help.creator.zoho.com/ (Help entry point)
http://netvibes.com/ (NetVibes webtop)
http://faq.netvibes.com/ (Help entry point)
Teaching materials
Creating websites with online services
Using web widgets
Slides for the overview talk (PDF)

Topics Covered

(1) Introduction

(2) Web 2.0 vs. "traditional Internet"

  • An ever increasing amount of applications are available through the Internet. Many of these applications can be shared, others are by definition "social software" (e.g. wikis, YouTube, flickr, blogs).
  • Reading: O'Reilly Tim (2005), What is Web 2.0, better take the print version.
  • Additional resources for those who want to explore this topic further: This wiki, e.g. start from the rich internet application article.

(3) Simple on-line database services

  • Learn how to create and use simple tabular databases with a web 2.0 service
  • Practical details are explained in the homework 1 page

Classroom activities and homework

Classroom activity 1: Zoho Creator

Classroom activity 2: Pageflakes

  • Create an account with Pageflakes: :
  • Configure the first page as private page
  • Create a new page, import the Zoho database and make this page public (i.e. a pagecast)
Homework

See homework 1