Help:COAP-3180: Difference between revisions

The educational technology and digital learning wiki
Jump to navigation Jump to search
m (hw2)
mNo edit summary
 
(75 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Incomplete}}
{{Incomplete}}
<pageby nominor="false" comments="false"/>


== Introduction ==
== Introduction ==


This is are resource page for my Fall II 2007 Web Databases course (COAP 3180) at Webster University, Geneva. This page does not replace the official syllabus file, but it allows students to navigate more efficiently through the materials
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 information in the official learning management system (WorldClassroom/Blackboard). It allows students to navigate more efficiently through the materials in this wiki.


This program is provisional and will be adjusted on a weekly basis.
The program and materials are provisional and will be adjusted on a weekly basis.


==Course level outcomes==
==Course level outcomes==


At the completion of this course students will be able to:
At the completion of this course students will be able to:
 
# Add a Webpage Database to an HTML page
# Use simple Web 2.0 database services
# Manipulate data using SQL operations
# Manipulate data using SQL operations and create simple SQL databases in a DBMS.
# Publish both static and dynamic data on the Web
# Understand the architecture of a simple web application (HTML client / Web server / Script / Database). Be able use a LAMP/WAMP software bundle and install a web application.
# Convert text files to XML databases
# Generate a very simple web application that can connect to a database management system (DBMS) through an ODBC API.
# Be able to query XML data using XQuery
# Understand/recall XML basics, like converting text files to XML, editing an XML file using a schema and displaying XML data.
# Be able to work with relational data as XML
# Be able to query and update XML data files and XML Databases using XQuery and XQuery Update.
# Understand the purpose of address and authentication servers and be able to use LDAP-based address books in an e-mail client.


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


* Create simple database applications:
# Use simple Web 2.0 database services and integrate it into a webpage.
** create typed tables with web 2.0 services, enter data and connect these with your own web pages
# Manipulate data using SQL operations and create simple SQL databases in a DBMS.
** generate very simple PHP/MySQL applications with generator software
# Understand the architecture of a simple web application (HTML client / Web server / Script / Database).  
** define simple tables with a web-based database administration software
# 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.
* Install and/or use XAMP (Apache/MySQL/PhP) systems:
# Generate a very simple web application that can connect to a database management system (DBMS) though an ODBC API.
** get some insights on simple(!) web server configuration;
# Understand/recall XML basics, like converting text files and database output to XML, editing an XML file using a schema and displaying XML data.
** understand how database systems like MySQL work;
# Be able to query and update XML data files and XML Databases using XQuery dand XQuery Update.
** understand what the PHP scripting engine can do (and its dangers).
# Understand the general architecture and purpose of LDAP address and authentication servers and light-weight solutions like OpenID.
* Configure LAMP/WAMP-based applications (various kinds of portals):
** Create databases and/or learn how to connect to a database with a user name and a password
** Give the right answers to installation scripts
** Configure the applications (modules, skins, users, etc.)
* Repair data of web applications:
** e.g. remove SPAM with SQL queries.
* Extend applications with modules (know how to submit SQL code to a DB management tool)
* Understand various roles of XML in modern architectures, e.g.:
** transform database output from XML to HTML;
** learn XQuery/XQuery update basics.
* Understand the role of LDAP and similar authentication/address book applications
... At the end of the course you should have acquired the necessary foundations to do this.
 
 
==Week 1==
 
Light-weight databases and web 2.0
 
=== Topics Covered ===
 
(1) Introduction
* Internet, the WWW and web databases
* Slides: http://tecfa.unige.ch/guides/te/files/webdatabases-intro.pdf (PDF, copies of the slides distributed in class)
 
(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), [http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-20.html What is Web 2.0], better take the [http://www.oreillynet.com/lpt/a/6228 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 [[Help:COAP-3180/hw1|homework 1 page]]
 
=== Classroom activities and homework ===
Classroom activity 1: Zoho Creator
* Take an account with Zoho:
** http://www.zoho.com/
* Create a database with '''Zoho Creator'''
 
Classroom activity 2: Pageflakes
* Create an account with Pageflakes: :
** http://student.pageflakes.com/ (variant for students)
** http://www.pageflakes.com (variant for all other, the only difference is the initial choice of widgets, pick either one ....)
* 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 [[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 ?
* Types of Databases and database Models (short overview)
* Relational data base management systems (RDBMS) and ownership of databases
 
'''Web applications'''
* Application architectures / frameworks overview
* WAMP/LAMP software bundles and applications
* Installation of web applications
 
'''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 strongly suggest to work with [[Joomla]]. If you think that you need another application, please discuss it with the instructor.
* For all practical tips, see the See [[Help:COAP-3180/hw1|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/hw1|homework 2]]
 
==Week 3==
(provisional)
 
=== Topics Covered ===
 
'''Relational databases'''
 
* Introduction to SQL:
* Retrieving and modifying Data
* Creation of SQL tables with MySQL
* Relational tables
* Overview of other RDBMS
 
'''Reading'''
 
=== Classroom activities and homework ===
 
Create a simple 1-table MySQL database with a database administration tool.
 
==Week 4==
(provisional)
 
=== Topics Covered ===
 
'''Working with the LAMP bundle'''
 
* Principles of PHP programming
* Simple PHP/MySQL interaction
Other application frameworks (.Net, J2EE)
 
'''Reading'''
 
To be announced
 
'''Tests'''
 
Mid Term Exam
 
=== Classroom activities and homework ===
 
Generation of a simple web application with a code generator. This homework is a follow-up of homework 3.
 
==Week 5==
(provisional)
=== Topics Covered ===
 
'''Introduction to XML'''
 
* Crash Course introduction to XML and XSLT
* Editing XML files using a schema (DTD and/or XML Schema).
* Querying XML Documents using XPath and simple XSLT templates
'''Reading'''
 
To be announced
 
=== Classroom activities and homework ===
 
Create a valid XML file with an XML editor and modify an XSLT template to retrieve a fragment.
 
==Week 6==
(provisional)
 
=== Topics Covered ===
 
Introduction to XQuery and XQuery Update
 
XML databases
 
'''Reading'''
 
To be announced
 
=== Classroom activities and homework ===
 
XML database query exercise. This homework is a follow-up of homework 5.
 
==Week 7==
(provisional)
=== Topics Covered ===


Database to XML Sources
== Current weekly program ==
<!--
{{:Help:COAP-3180/week1|COAP 3180 - week 1 - Light-weight databases and web 2.0}}


Working with Relational Data as XML
{{:Help:COAP-3180/week2|COAP 3180 - week 2 - Web server architecture and content management systems}}


'''Reading'''
{{:Help:COAP-3180/week3|COAP 3180 - week 3 - Introduction to SQL and MySQL }}


To be announced
{{:Help:COAP-3180/week4|COAP 3180 - week 4 - Working with the LAMP bundle PhP/MySQL - mid term}}


=== Classroom activities and homework ===
{{:Help:COAP-3180/week5|COAP 3180 - week 5 - XML fundamentals, DTD/XSD, XSLT, XPath}}


Integration of an XML data source in a web page. This homework is a follow-up of homework 3.
{{:Help:COAP-3180/week6|COAP 3180 - week 6 - XSLT, XPath, XQuery}}


==Week 8==
{{:Help:COAP-3180/week7|COAP 3180 - week 7 - XQuery, Term Project, Digital identities}}
(provisional)


=== Topics Covered ===
-->


Authentication systems and address books
{{:Help:COAP-3180/week8|COAP 3180 - week 8 - Term project presentation, Final exam, ...}}


Review of web application architectures
== List of all Coap 3180 pages ==


'''Reading'''
=== Weekly programs ===


None
* [[Help:COAP-3180/week1]]
* [[Help:COAP-3180/week2]]
* [[Help:COAP-3180/week3]]
* [[Help:COAP-3180/week4]]
* [[Help:COAP-3180/week5]]
* [[Help:COAP-3180/week6]]
* [[Help:COAP-3180/week7]]
* [[Help:COAP-3180/week8]]
* [[Help:COAP-3180/term project]]


'''Tests'''
* [[Help:COAP-3180/template]] (instructor only)


Final Exam
=== Most important wiki pages ===


== Homework and exams overview ==
The [[User:Daniel K. Schneider/Books/COAP 3180|COAP 3180 lecture notes]] page allows you to get the whole lot of wiki pages in a single PDF. Of course, some contents will not be tested in exams. In particular, there will be no PHP and no XML DTD/Schema questions. Mid-term will focus on SQL. The final exam will add XML, XSLT and Xquery plus some minor topics.


=== Breakdown ===
The following list may not be complete. Also, some subject require extra reading (see the weekly programs).
{|border="1" cellspacing="2"
* [[Creating websites with online services]]
|Homework (six best)  
* [[Using web widgets]]
|60%
* [[web application]]
|-
* [[Portalware]]
|Midterm and Final exams
* [[content management system]]
|40%
* [[Web application framework]]
|}
* [[web hosting service]]
* [[Wordpress installation and configuration]]
* [[SQL and MySQL tutorial]]
* [[XML]]
* [[DTD tutorial]] (understand how to use/read a DTD only)
* [[XSLT Tutorial - Basics]]
* [[XPath tutorial - basics]] (parts only)
* [[PHP tutorial - basics]] (not exam subject)
* [[PHP-MySQL tutorial -basics]] (not an exam subject)
* [[PHP - MySQL - XML tutorial - basics]] (must be able to use this)
* [[XQuery tutorial - basics]]
* [[digital identity]]
* [[OpenID]]
* [[i-name]]


=== Exams ===
=== Other teaching resources ===


There will be two exams counting each for 20%:
* [[User:Daniel K. Schneider/Books/COAP 3180|PDF "book" of all major wiki pages above]]
* Midterm and final
* [http://tecfa.unige.ch/guides/te/files/webdatabases-intro.pdf webdatabases-intro.pdf] (revised version, Monday week 8)
* Exams will be paper-based questions.
* [http://tecfa.unige.ch/guides/te/files/mysql-intro.pdf mysql-intro.pdf] but [[SQL and MySQL tutorial]] is better reading.
* All materials will be allowed.
* [http://tecfa.unige.ch/guides/te/files/php-mysql.pdf php-mysql.pdf] but [[PHP tutorial - basics]] and [[PHP-MySQL tutorial -basics]] is better reading (quality for both slides and wiki articles is not great, consider reading one of the tutorials suggested on the week 4 page)
* [http://tecfa.unige.ch/guides/te/files/xslt-basics.pdf xslt-basics.pdf]. [[XSLT Tutorial - Basics]] is better reading.


=== List of homework ===
=== Most important software ===


I will hand out one homework/week and we will start working on it in class.
* Some online services like Zoho and Netvibes.
* [[Modular Webserver System]]
* A [[text editor]], e.g. Notetab light
* [http://www.sqlmaestro.com/products/mysql/phpgenerator/ PHP Generator for MySQL] (Maestro)


* [[Help:COAP-3180/hw1|homework 1]]
* [[Help:COAP-3180/hw2|homework 2]]


[[category:XML]]
[[Category:Courses and workshops]]

Latest revision as of 14:50, 14 November 2016

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 information in the official learning management system (WorldClassroom/Blackboard). It allows students to navigate more efficiently through the materials in this wiki.

The program and materials are provisional and will be adjusted on a weekly basis.

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.

Current weekly program

Week 8 - COAP 3180

Term project presentation

(Monday)

Summary

(Monday)

  • Final lecture, reminder of the most important subjects addressed etc.

Final exam

  • The exam will be a paper exam with MCQ's, open questions, code repair and completion, etc.
  • Open book (any resource you like including the Internet)

Main subjects:

(1) High level web application principles

  • Simple web application architectures (tiers)
  • Kinds of databases

(2) Practical know how

  • Using web services to create "mini-databases"
  • Using widgets
  • Creating simple HTML Web Forms
  • Using a WAMP server (Mowes)
  • CMS/CMF installation and configuration
  • Database administration with PHPMyAdmin
  • Simple reuse of PHP code, i.e. you may be asked to change "parameters"

(3) SQL:

  • SELECT
    • SELECT ... WHERE, INSERT ... ORDER
    • Joins (select from two tables)
  • CREATE
    • Data types: Integer, Float, VarChar, text
    • DEFAULT, NOT NULL, Auto increment
    • Keys
    • Primary keys
    • Foreign keys
  • INSERT (both forms)
  • UPDATE / DELETE
  • DROP

(4) Relational database design:

  • Simple 2-3 table architectures
  • 1 to N and N to N relations between tables
  • Be able to read a diagram that summarizes table fields and shows relations (as in the Wordpress installation and configuration example).

(5) XML

  • Be able to edit/fix well-formed XML files
  • XSLT: Simple use of templates (definition and applying), html page generation
  • Simple use of XPath expressions (finding nodes and attributes, extracting text, identifying a position). XPath is used both by XSLT and XQuery.
  • XQuery: Simple FLOWR expressions, html page generation

(6) Identity and authentication (high-level principles)

Not included:

  • PHP programming, e.g. writing for loops and other algorithms
  • XSLT and XQuery functions and other more advanced programming constructs

List of all Coap 3180 pages

Weekly programs

Most important wiki pages

The COAP 3180 lecture notes page allows you to get the whole lot of wiki pages in a single PDF. Of course, some contents will not be tested in exams. In particular, there will be no PHP and no XML DTD/Schema questions. Mid-term will focus on SQL. The final exam will add XML, XSLT and Xquery plus some minor topics.

The following list may not be complete. Also, some subject require extra reading (see the weekly programs).

Other teaching resources

Most important software