Web Science/Part1: Foundations of the web/MoocIndex

User:Sebschlicht/moocIndex.js

--MOOC-Index =lesson|Ethernet=
 * furtherReading=
 * 1) The Webs Awake (An Introduction to the Field of Web Science and the Concept of Web Life by Philip D. Tetlow.
 * 2) 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=
 * 1) understand that ethernet is a nondeterministic protocol
 * 2) be able to understand requirements for the link layer in the TCP/IP Protocol suite
 * 3) understand the collision detection in ethernet
 * 4) understand why randomization is a good idea in nondeterministic protocols
 * 5) be able to name a deterministic link layer protocol
 * numThreads=2
 * numThreadsOpen=1

unit|Communication over a shared Medium

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

unit|Ethernet header

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

unit|Minimum package length vs maximum cable length

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

unit|Collision detection

 * furtherReading=
 * 1) collision detection in ethernet.
 * 2) ALOHAnet
 * 3) Ethernet standard (<-- needs registration)
 * learningGoals=
 * 1) Understand that Ethernet is a non deterministic program
 * 2) Be able to reconstruct a collision detection / resolve algorithm
 * 3) 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
ethernet part1 and ethernet part2
 * furtherReading=
 * 1) Bruce Hartpence video lectures:
 * 1) Link Layer in Wikipedia
 * 2)  Link Layer section in Internet Protocol Analysis course
 * 3) Communication over a shared medium
 * numThreads=1
 * numThreadsOpen=1
 * video=File:Homework_for_Web_Science_MOOC_Week_1.pdf

=lesson|Internet Protocol=
 * learningGoals=# To understand Ethernet, TCP/IP and HTTP protocols and be able to apply it to design of API

unit|Motivation for IP

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

unit|Classful IPv4 networks

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

unit|IP forwarding algorithm

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

unit|IP header

 * furtherReading=
 * 1) Internet Protocol v4
 * 2) http://tools.ietf.org/html/rfc791
 * learningGoals=
 * 1) get a feeling for the IP header
 * 2) get a better understanding of how the protocol works
 * 3) understand which header fields are changed while routing
 * numThreads=8
 * numThreadsOpen=4
 * 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=
 * numThreads=1
 * numThreadsOpen=1

unit|End to end principle and connection oriented communication

 * furtherReading=
 * End to end principle
 * Connection oriented communication
 * learningGoals=
 * 1) understand which problems of IP will be solved with the transmition control protocol
 * 2) be aware of the limitations of the internet protocol and the internet architecture
 * 3) 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=
 * 1) understand the concept of a logical connection (virtual communication channel) between two computers on the internet
 * 2) understand the importance of acknowledging received messages
 * 3) 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=
 * 1) understand the concept of a socket in a TCP/IP package
 * 2) understand that ports are part of the TCP header
 * 3) be able to explain the difference between solicited and unsolicited TCP/IP traffic
 * 4) 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=
 * 1) understand the concept of windowsize and sliding window
 * 2) understand how flow control can prevent TCP connections to overload link layer protocols and slow networks
 * numThreads=6
 * numThreadsOpen=6
 * video=File:TCP sliding window.webm

unit|Summary, further reading, homework

 * furtherReading=
 * 1) Transmission Control Protocol
 * 2) User Data gram Protocol
 * 3) Transport layer lesson in Internet protocol analysis course
 * 4) Telnet
 * video=

=lesson|Domain Name System=

unit|Tree structure

 * furtherReading=
 * 1) Domain name system
 * 2) Domain Name
 * learningGoals=test the mooc system
 * video=File:01_DNS_Tree_Structure.webm

unit|Terminology

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

unit|Zones

 * furtherReading=
 * 1) DNS zone
 * 2) DNS root zone
 * 3) Zone file especially the official root zone file could be of interest.
 * numThreads=1
 * numThreadsOpen=1
 * video=File:03_DNS_Zones.webm

unit|Review some facts about DNS

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

unit|Delegating DNS queries

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

unit|DNS address resolution

 * furtherReading=
 * 1) Example of an iterative DNS resolver.svg
 * video=File:06_DNS_Resolution,_Step_by_Step.webm

unit|Summary, further reading, homework
exercises
 * furtherReading=
 * 1) Chapter on DNS in Internet protocol analysis (on wikiversity)
 * 2) Domain name regestry
 * 3) Domain name registrar
 * 4) Internet_Assigned_Numbers_Authority
 * 5) ICANN
 * 1) 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.
 * 2) 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.
 * 3) 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.
 * 4) 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=
 * 1) understand that the Internet and the world wide web are not the same
 * 2) understand how the world wide web was influenced by the internet
 * 3) be able to name the 3 principle building blocks of the world wide web
 * 4) understand the notion of an URI

unit|Summary of the internet architecture

 * numThreads=5
 * numThreadsOpen=4
 * 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=
 * 1) World_Wide_Web
 * 2) ENQUIRE
 * 3) URI (referable)
 * 4) HTTP (request response protocol)
 * 5) HTML (linked documents)
 * 6) Unitarian Universalist philosophy of the web
 * 7) design principles
 * numThreads=5
 * numThreadsOpen=3
 * video=File:Design-principles_of_the_World_Wide_Web.webm

unit|Uniform Resource Identifier

 * furtherReading=
 * 1) CURIE
 * 2) Uniform resource locator
 * video=File:Explaining Uniform Resource Locator.webm

unit|Summary, further reading, homework

 * furtherReading=
 * 1) http://home.web.cern.ch/about/birth-web
 * 2) http://www.w3.org/People/Berners-Lee/FAQ.html
 * 3) https://en.wikipedia.org/wiki/Tim_Berners-Lee
 * 4) https://en.wikipedia.org/wiki/World_Wide_Web
 * 5) https://en.wikipedia.org/wiki/History_of_the_World_Wide_Web
 * 6) http://www.w3.org/History/19921103-hypertext/hypertext/WWW/TheProject.html
 * numThreads=2
 * numThreadsOpen=0
 * video=

=lesson|Hypertext Transfer Protocol=

unit|Making HTTP requests

 * furtherReading=
 * 1) Stateless Protocol
 * 2) Request Response Model in Computing
 * 3) Client Server Applications
 * 4) 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=
 * 1) http://docs.oracle.com/javase/7/docs/api/java/net/Socket.html
 * 2) Java Programming on wiki books
 * 3) Java Programming Basic IO
 * 4) Java Programming Streams
 * 5) Learning Java
 * numThreads=4
 * numThreadsOpen=2
 * video=File:Programming_a_simple_http_client.webm

unit|A simple web server

 * furtherReading=
 * 1) List of HTTP status codes
 * 2) HTTP header
 * 3) http://docs.oracle.com/javase/7/docs/api/java/net/Socket.html
 * 4) http://docs.oracle.com/javase/7/docs/api/java/net/ServerSocket.html
 * 5) 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=
 * 1) HTTP header
 * 2) http://www.w3.org/Protocols/HTTP/HTRQ_Headers.html
 * numThreads=1
 * numThreadsOpen=0
 * video=File:Demonstrations of the HTTP header.webm

unit|Content negotiation

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

unit|Summary, further reading, homework
exercise: screencast session playing around with gopher to see some alternatives to the World Wide Web
 * furtherReading=
 * 1) https
 * 2) [Dynamic adaptive streaming over HTTP|http://en.wikipedia.org/wiki/Dynamic_Adaptive_Streaming_over_HTTP]
 * 3) Transport layer security
 * 4) http0.9
 * 5) RFC 1945 defining http1.0
 * 6) RFC 2616 defining http1.1
 * 7) WorldWideWeb
 * 8) Robert_Cailliau
 * 9) History_of_the_World_Wide_Web
 * 10) Microform
 * 11) Memex
 * 12) Web_page
 * 13) ENQUIRE
 * 14) Hypertext
 * 15) Douglas_Engelbart
 * 16) http://home.web.cern.ch/about/birth-web
 * 17) http://www.ibiblio.org/pjones/old.page.html#18 (first web page)
 * 18) http://info.cern.ch/Proposal.html
 * 19) http://www.w3.org/History/1989/proposal.html
 * 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=
 * 1) https://en.wikipedia.org/wiki/XML
 * 2) Further references (not same as further reading!) http://www.w3.org/TR/xml/


 * learningGoals=
 * 1) Understand the Domain Object Model and the DOM tree
 * 2) Understand that HTML is just a special dialect of XML
 * 3) Understand the relationship between HTML and XML
 * numThreads=3
 * numThreadsOpen=3
 * video=File:Working-with-XML.webm

unit|HTML for web document structures

 * learningGoals=
 * 1) 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,...)
 * 2) See that HTML really is just another simple mark up and has nothing to do with programming
 * 3) 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=
 * 1) Know about the style attribute and how to use it within HTML elements
 * 2) Know already realize that there are some limits using the style attribute
 * 3) 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=
 * 1) See the problems with inline styles
 * 2) Understand that a style sheet gives you freedom
 * 3) 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
CSS Tutorial http://www.w3schools.com/css/default.asp
 * furtherReading=

Also, it is interesting to use -> "Try it yourself" in the above mentioned page.
 * learningGoals=
 * 1) be able to name at least 2 important point why to use style sheets
 * 2) know how the cascading process works
 * 3) know the basic syntax of cascading stylesheets
 * numThreads=1
 * numThreadsOpen=1
 * video=File:Introduction_to_Cascading_Style_Sheets.webm

unit|Media content

 * furtherReading=
 * 1) SVG chapter in wikibooks
 * 2) Web_Design/XML_challenges
 * learningGoals=
 * 1) know how to include a media file like a graphic to your webpage.
 * 2) understand that images like jpg, gif and bitmaps are hard for machines to understand.
 * 3) 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=
 * 1) Understand that metadata is necessary to communicate the semantics of content
 * 2) See that using metadata for ranking in search results is a bad idea
 * 3) get introduced to modern ways of publishing media data as RDFa
 * numThreads=1
 * numThreadsOpen=1
 * video=File:Introduction_to_metadata.webm

unit|Summary, further reading, homework

 * learningGoals=
 * 1) Understand the separation between content, structure, layout and meta data
 * 2) Review HTML, CSS, XML, SVG and RDFa
 * 3) 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)
 * numThreads=2
 * numThreadsOpen=2
 * 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=
 * 1) download libraries:
 * 2) wget http://www.java2s.com/Code/JarDownload/servlet/servlet-api.jar.zip
 * 3) wget http://repo1.maven.org/maven2/org/eclipse/jetty/aggregate/jetty-all/9.0.4.v20130625/jetty-all-9.0.4.v20130625.jar
 * 4) wget http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.27.zip
 * 5) Read tutorials:
 * 6) http://www.eclipse.org/jetty/documentation/current/advanced-embedding.html
 * 7) http://wiki.eclipse.org/Jetty/Tutorial/Embedding_Jetty
 * 8) http://www.seas.upenn.edu/~cis330/jetty.html
 * 9) http://www.vogella.com/articles/MySQLJava/article.html
 * learningGoals=
 * 1) become aware of the possibilities to create dynamic content within a webserver
 * 2) see that you don't have to implement a webserver to be able to serve dynamic content
 * 3) understand some main issues like blocking I/O that one should keep in mind when doing server side programming
 * 4) see how the web server is the entry point for web applications
 * 5) 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=
 * 1) understand the basics of HTTP POST requests
 * 2) become aware of security issues while transfering data to a web server
 * 3) 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=
 * 1) See how a POST request is handled in a Java Servlet
 * 2) get to know the Request object
 * 3) 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=
 * 1) understand how javascript was supposed to support people to fill out web forms
 * 2) 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=
 * 1) https://en.wikipedia.org/wiki/XMLHttpRequest
 * 2) https://en.wikipedia.org/wiki/Cross-origin_resource_sharing
 * learningGoals=
 * 1) be aware of JavaScript APIs
 * 2) know some of the standard JavaScript libraries
 * 3) be able to understand the concept of Ajax requests.
 * 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
File:Web Science MOOC Exercises Week 4.pdf
 * numThreads=1
 * numThreadsOpen=1
 * video=

=lesson|=