# Web Science/Part1: Foundations of the web/MoocIndex

User:Sebschlicht/moocIndex.js
--MOOC-Index

# lesson|Ethernet

* furtherReading=
* The Webs Awake (An Introduction to the Field of Web Science and the Concept of Web Life by Philip D. Tetlow.
* Foundations and Trends in Web Science, Volume 1 Issue 1 by Tim Berners-Lee, Wendy Hall, James A. Hendler, Kieron O'Hara, Nigel Shadbolt and Daniel J. Weitzner.
* learningGoals=
* understand that ethernet is a nondeterministic protocol
* be able to understand requirements for the link layer in the TCP/IP Protocol suite
* understand the collision detection in ethernet
* understand why randomization is a good idea in nondeterministic protocols
* be able to name a deterministic link layer protocol
* numThreads=1
* numThreadsOpen=0

## unit|Communication over a shared Medium

* TODO=type Medium in lower case
* furtherReading=
* Communication over a shared medium
* binary numeral system
* binary data
* learningGoals=
* understand the basic problems when communicating over a shared medium
* understand the origins of ethernet
* numThreads=2
* numThreadsOpen=2
* video=File:General_Problems_of_Communication_over_a_Shared_Medium.ogv

## unit|Ethernet header

* furtherReading=
* What is Ethernet data frame How does it look like (header, body, checksum)
* what does the ethernet header consist of and why (especially EtherType but also MAC, Preamble) ')
* learningGoals=
* be able to name the ethernet header fields
* be able to explain the reason for the preamble
* numThreads=4
* numThreadsOpen=2
* video=File:How_to_build_an_Ethernet_Frame.webm

## unit|Minimum package length vs maximum cable length

* learningGoals=
* understand that the cable length has an influence to transfer rate
* understand that speed of light is responsible for the connection between cable length and transfer rate
* be able to calculate the maximum cable length for a given transfer rate
* understand that the cable length is part of the Ethernet protocol
* numThreads=7
* numThreadsOpen=3
* video=File:Minimum_Frame_Length_in_Ethernet_explained.webm

## unit|Collision detection

* furtherReading=
* collision detection in ethernet.
* ALOHAnet
* Ethernet standard (<-- needs registration)
* learningGoals=
* Understand that Ethernet is a non deterministic program
* Be able to reconstruct a collision detection / resolve algorithm
* Understand what happens if two computers send data at the same time
* numThreads=9
* numThreadsOpen=2
* video=File:Ethernet_Carrier_sense_multiple_access_with_collision_detection.ogv

## unit|Summary, further reading, homework

* furtherReading=
* Bruce Hartpence video lectures: ethernet part1 and ethernet part2
* Link Layer in Wikipedia
* Link Layer section in Internet Protocol Analysis course
* Communication over a shared medium
* numThreads=1
* numThreadsOpen=1
* video=File:Homework_for_Web_Science_MOOC_Week_1.pdf

# lesson|Internet Protocol
## unit|Motivation for IP

* furtherReading=
* Autonomous system
* Internet
* Robustness principle
* Network Segment
* Computer Network
* Internet Protocol
* learningGoals=
* get introduced to the concept of an IP-network
* understand that networks can be interconnected
* learn about the importance for decentralization as a design principle
* realize that Local area networks can be fragmented via IP networks
* numThreads=6
* numThreadsOpen=6
* video=File:Limits_of_ethernet_and_requirements_to_create_an_internet.webm

## unit|Classful IPv4 networks

* furtherReading=
* w:Subnetwork
* Classful network
* RFC 791 Internet Protocol
* learningGoals=
* understand that an IP network as an overlay network is an abstract thing that is not directly reflecting the hardware settings
* understand the notion of an IPv4 address and its components like network and host part
* understand why MAC addresses do not fulfill the requirements of IP addresses.
* get introduced to the notion of an IP router / gateway
* video=File:Classful-IPv4-networks.webm

## unit|IP forwarding algorithm

* furtherReading=
* IP Forwarding algorithm
* Address resolution protocol
* Routing Table
* Internet Protocol v4
* learningGoals=
* review the definition and concept of an IP network
* understand that IP routing works on the level of IP networks
* understand the concept of subnetting
* review network classes and understand classless inter domain routing.
* numThreads=4
* numThreadsOpen=3
* video=File:Internet_protocol_forwarding_algorithm.webm

## unit|IP header

* furtherReading=
* Internet Protocol v4
* http://tools.ietf.org/html/rfc791
* learningGoals=
* get a feeling for the IP header
* get a better understanding of how the protocol works
* understand which header fields are changed while routing
* numThreads=7
* numThreadsOpen=3
* video=File:Internet-Protocol-Header.webm

## unit|Summary, further reading, homework

* numThreads=1
* numThreadsOpen=1
* video=File:Homework_for_Web_Science_MOOC_Week_1.pdf

# lesson|Transmission Control Protocol
## unit|End to end principle and connection oriented communication

* furtherReading=
* End to end principle
* Connection oriented communication
* learningGoals=
* understand which problems of IP will be solved with the transmition control protocol
* be aware of the limitations of the internet protocol and the internet architecture
* get to know the end to end principle and in which only sender and receiver take care that communication works properly
* video=File:Problems solved by the transport controll protocol.webm

## unit|Three way handshake

* furtherReading=#Connection establishment
* learningGoals=
* understand the concept of a logical connection (virtual communication channel) between two computers on the internet
* understand the importance of acknowledging received messages
* be able to understand the process of establishing a tcp / connection
* numThreads=4
* numThreadsOpen=2
* video=File:Tcp-3way-handshake.webm

## unit|Port numbers

* furtherReading=
* Transmission control protocol
* List of TCP and UDP port numbers
* Port numbers
* Internet Socket
* learningGoals=
* understand the concept of a socket in a TCP/IP package
* understand that ports are part of the TCP header
* be able to explain the difference between solicited and unsolicited TCP/IP traffic
* understand how ports can be used for multiplexing internet connections
* numThreads=2
* numThreadsOpen=0
* video=File:Portnumbers and sockets for IP Addressing.webm

## unit|Sliding window and flow control

* furtherReading=
* Transmission Control Protocol
* Flow control
* Sliding Window Protocol
* Maximum Segment Size
* Congestion Window
* learningGoals=
* understand the concept of windowsize and sliding window
* understand how flow control can prevent TCP connections to overload link layer protocols and slow networks
* numThreads=1
* numThreadsOpen=1
* video=File:TCP sliding window.webm

## unit|Summary, further reading, homework

* furtherReading=
* Transmission Control Protocol
* User Data gram Protocol
* Transport layer lesson in Internet protocol analysis course
* Telnet
* video=

# lesson|Domain Name System
## unit|Tree structure

* furtherReading=
* Domain name system
* Domain Name
* video=File:01_DNS_Tree_Structure.webm

## unit|Terminology

* furtherReading=
* Hostname
* Fully Qualified domain name
* Top level Domain
* Subdomain
* numThreads=3
* numThreadsOpen=3
* video=File:02_DNS_Terminology.webm

## unit|Zones

* furtherReading=
* DNS zone
* DNS root zone
* Zone file especially the official root zone file could be of interest.
* video=File:03_DNS_Zones.webm

## unit|Review some facts about DNS

* furtherReading=
* List of DNS record types
* Canonical name
* video=File:04_DNS,_A_few_points_to_keep_in_mind.webm

## unit|Delegating DNS queries

* furtherReading=
* Record caching
* video=File:05_DNS_Query_Overview.webm

## unit|DNS address resolution

* furtherReading=
* video=File:06_DNS_Resolution,_Step_by_Step.webm

## unit|Summary, further reading, homework

* furtherReading=
* Chapter on DNS in Internet protocol analysis (on wikiversity)
* Domain name regestry
* Domain name registrar
* w:Internet_Assigned_Numbers_Authority
* w:ICANN
exercises
* We have been introduced to various addressing schemes. Give a comparison of DNS with IP and with MAC. What are the advantages and disadvantages of each? What are the technical limitations and possibilities? Create a text or a table in your user namespace.
* Discuss the drawbacks of the domain name system in your user namespace (about 300 words) take a particular focus on the hierarchical approach with respect to technical and social issues.
* Write an essay in your user name space (about 300 words) in which you discuss the 3 most interesting statements or facts in the video interview with Paul Mockapetris.
* Use the below table to link your essays and have a look at the work of others and give feedback to the work of at least three other students.
* numThreads=1
* numThreadsOpen=1
* video=File:Paul Mockapetris interviewed live by Andreu Vea.webm

# lesson|Internet vs World Wide Web

* learningGoals=
* understand that the Internet and the world wide web are not the same
* understand how the world wide web was influenced by the internet
* be able to name the 3 principle building blocks of the world wide web
* understand the notion of an URI

## unit|Summary of the internet architecture

* numThreads=3
* numThreadsOpen=2
* video=File:Web-Architecture-Overview.webm

## unit|Motivation and requirements for the World Wide Web

* video=File:Motivation_for_creating_the_World_Wide_Web.webm

## unit|Design principles of the web

* furtherReading=
* w:World_Wide_Web
* w:ENQUIRE
* URI (referable)
* HTTP (request response protocol)
* HTML (linked documents)
* Unitarian Universalist philosophy of the web
* design principles
* numThreads=5
* numThreadsOpen=3
* video=File:Design-principles_of_the_World_Wide_Web.webm

## unit|Uniform Resource Identifier

* furtherReading=
* w:CURIE
* w:Uniform resource locator
* video=File:Explaining Uniform Resource Locator.webm

## unit|Summary, further reading, homework

* furtherReading=
* http://home.web.cern.ch/about/birth-web
* http://www.w3.org/People/Berners-Lee/FAQ.html
* https://en.wikipedia.org/wiki/Tim_Berners-Lee
* https://en.wikipedia.org/wiki/World_Wide_Web
* https://en.wikipedia.org/wiki/History_of_the_World_Wide_Web
* http://www.w3.org/History/19921103-hypertext/hypertext/WWW/TheProject.html
* numThreads=2
* numThreadsOpen=0
* video=File:Web Science MOOC Exercises Week 3.pdf

# lesson|Hypertext Transfer Protocol
## unit|Making HTTP requests

* furtherReading=
* Stateless Protocol
* Request Response Model in Computing
* Client Server Applications
* https://www.owasp.org/index.php/Test_HTTP_Methods_(OTG-CONFIG-006)
* numThreads=3
* numThreadsOpen=3
* video=File:Making_http_requests_with_telnet_and_observing_with_wireshark.webm

## unit|A simple web client

* furtherReading=
* http://docs.oracle.com/javase/7/docs/api/java/net/Socket.html
* Java Programming on wiki books
** Java Programming Basic IO
** Java Programming Streams
* Learning Java
* numThreads=4
* numThreadsOpen=2
* video=File:Programming_a_simple_http_client.webm

## unit|A simple web server

* furtherReading=
* List of HTTP status codes
* HTTP header
* http://docs.oracle.com/javase/7/docs/api/java/net/Socket.html
* http://docs.oracle.com/javase/7/docs/api/java/net/ServerSocket.html
* http://docs.oracle.com/javase/7/docs/api/java/io/package-summary.html
* numThreads=2
* numThreadsOpen=1
* video=File:A_Simple_HTTP_Server.webm

## unit|HTTP header

* furtherReading=
* HTTP header
* http://www.w3.org/Protocols/HTTP/HTRQ_Headers.html
* video=File:Demonstrations of the HTTP header.webm

## unit|Content negotiation

* furtherReading=
* Content negotiation
* blog article on content negotiation
* video=File:Content_Negotiation_in_HTTP.webm

## unit|Summary, further reading, homework

* furtherReading=
* https
* [Dynamic adaptive streaming over HTTP|http://en.wikipedia.org/wiki/Dynamic_Adaptive_Streaming_over_HTTP]
* Transport layer security
* http0.9
* RFC 1945 defining http1.0
* RFC 2616 defining http1.1
* w:WorldWideWeb
* W:Robert_Cailliau
* w:History_of_the_World_Wide_Web
* w:Microform
* w:Memex
* w:Web_page
* w:ENQUIRE
* w:Hypertext
* w:Douglas_Engelbart
* http://home.web.cern.ch/about/birth-web
* http://www.ibiblio.org/pjones/old.page.html#18 (first web page)
* http://info.cern.ch/Proposal.html
* http://www.w3.org/History/1989/proposal.html
exercise: screencast session playing around with gopher to see some alternatives to the World Wide Web
* video=File:Interview with the developers of Gopher.webm

# lesson|Web content

* numThreads=1
* numThreadsOpen=1

## unit|Problem setting for web content formats

* learningGoals=# In this lesson you will learn some basics on the Question: Why Web Content needs structure and proper markup.
* video=File:Motivating_Mark_Up_for_Web_Content.webm

## unit|Working with XML

* furtherReading=
* https://en.wikipedia.org/wiki/XML
* Further references (not same as further reading!) http://www.w3.org/TR/xml/
* learningGoals=
* Understand the Domain Object Model and the DOM tree
* Understand that HTML is just a special dialect of XML
* Understand the relationship between HTML and XML
* numThreads=3
* numThreadsOpen=3
* video=File:Working-with-XML.webm

## unit|HTML for web document structures

* learningGoals=
* Be able to write simple HTML code having learned a few example elements of HTML (headings, paragraphs, lists, tables, links, anchors, emphasize, input fields; but also few dirty ones like italics, color,...)
* See that HTML really is just another simple mark up and has nothing to do with programming
* Be able to structure web Content using HTML and create pages following a specified structure.
* video=File:Basic_Introduction_to_HTML.webm

## unit|Layout elements in HTML

* learningGoals=
* Know about the style attribute and how to use it within HTML elements
* Know already realize that there are some limits using the style attribute
* be able to create websites that follow a certain style guide
* numThreads=1
* numThreadsOpen=1
* video=File:Layout_HTML_elements_using_inline_style_attributes.webm

## unit|Motivating separation of content and layout

* learningGoals=
* See the problems with inline styles
* Understand that a style sheet gives you freedom
* being able to explain people why they should use style sheets
* video=File:Motivation_for_usings_stylesheets_rather_than_inline_style_attributes.webm

## unit|Cascading Style Sheets

* furtherReading=
CSS Tutorial http://www.w3schools.com/css/default.asp
Also, it is interesting to use -> "Try it yourself" in the above mentioned page.
* learningGoals=
* be able to name at least 2 important point why to use style sheets
* know how the cascading process works
* know the basic syntax of cascading stylesheets
* numThreads=1
* numThreadsOpen=1
* video=File:Introduction_to_Cascading_Style_Sheets.webm

## unit|Media content

* furtherReading=
* SVG chapter in wikibooks
* Web_Design/XML_challenges
* learningGoals=
* know how to include a media file like a graphic to your webpage.
* understand that images like jpg, gif and bitmaps are hard for machines to understand.
* Know how to use a XML based format to create images that are easy to understand for machines and humans an can even make use of stylesheets.
* video=File:Adding_Media_Content_to_a_HTML_file.webm

## unit|Metadata

* learningGoals=
* Understand that metadata is necessary to communicate the semantics of content
* See that using metadata for ranking in search results is a bad idea
* get introduced to modern ways of publishing media data as RDFa
* video=File:Introduction_to_metadata.webm

## unit|Summary, further reading, homework

* learningGoals=
* Understand the separation between content, structure, layout and meta data
* Review HTML, CSS, XML, SVG and RDFa
* Understand what makes a clean HTML markup ("separation of concerns") vs. unclean one ("mixing responsibilities"); and implications (better or worse maintenance, better or worse personalization, better or worse accessibility)
* video=

# lesson|Dynamic Web Content
## unit|Basics of server side web programming

* video=File:Problemsetting for working with Dynamic Web Content and software setup.webm
* furtherReading=
* download libraries:
* wget http://www.java2s.com/Code/JarDownload/servlet/servlet-api.jar.zip
* wget http://repo1.maven.org/maven2/org/eclipse/jetty/aggregate/jetty-all/9.0.4.v20130625/jetty-all-9.0.4.v20130625.jar
* wget http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.27.zip
* Read tutorials:
* http://www.eclipse.org/jetty/documentation/current/advanced-embedding.html
* http://wiki.eclipse.org/Jetty/Tutorial/Embedding_Jetty
* http://www.seas.upenn.edu/~cis330/jetty.html
* http://www.vogella.com/articles/MySQLJava/article.html
* learningGoals=
* become aware of the possibilities to create dynamic content within a webserver
* see that you don't have to implement a webserver to be able to serve dynamic content
* understand some main issues like blocking I/O that one should keep in mind when doing server side programming
* see how the web server is the entry point for web applications
* whitelisting of input vs blacklisting and a method of preventing XSS
* video=File:Problemsetting for working with Dynamic Web Content and software setup.webm

## unit|Forms and HTTP post request

* learningGoals=
* understand the basics of HTTP POST requests
* become aware of security issues while transfering data to a web server
* be able to create a simple web form in HTML
* video=File:Creating a simple Webform and preparing a POST request.webm

## unit|Handling a post request in a Java Servlet

* learningGoals=
* See how a POST request is handled in a Java Servlet
* get to know the Request object
* see how a data base query and more advanced technology can be included to a servlet
* video=File:Handling a Post Request on a Web Server.webm

## unit|Client side JavaScript

* learningGoals=
* understand how javascript was supposed to support people to fill out web forms
* understand the issues and disadvantages that arise with javascript
* numThreads=2
* numThreadsOpen=1
* video=File:Using Client side Java script to support Users filling out a web form.webm

## unit|Ajax and the XMLHttpRequest class

* furtherReading=
* https://en.wikipedia.org/wiki/XMLHttpRequest
* https://en.wikipedia.org/wiki/Cross-origin_resource_sharing
* learningGoals=
* be aware of JavaScript APIs
* know some of the standard JavaScript libraries
* be able to understand the concept of Ajax requests.
* numThreads=1
* numThreadsOpen=1
* video=File:Using server side application logic and client side ajax requests to support Users filling out a web form.webm

## unit|Summary, further reading, homework

* video=File:Web Science MOOC Exercises Week 4.pdf