Web Science/Part1: Foundations of the web/MoocIndex

Da Wikiversità, l'apprendimento libero.
Vai alla navigazione Vai alla ricerca



  • 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=1
  • numThreadsOpen=0

unit|Communication over a shared Medium[modifica]

  • 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=2
  • numThreadsOpen=2
  • video=File:General_Problems_of_Communication_over_a_Shared_Medium.ogv

unit|Ethernet header[modifica]

  • 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=4
  • numThreadsOpen=2
  • video=File:How_to_build_an_Ethernet_Frame.webm

unit|Minimum package length vs maximum cable length[modifica]

  • 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=7
  • numThreadsOpen=3
  • video=File:Minimum_Frame_Length_in_Ethernet_explained.webm

unit|Collision detection[modifica]

  • 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[modifica]

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

lesson|Internet Protocol[modifica]

unit|Motivation for IP[modifica]

  • 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=6
  • numThreadsOpen=6
  • video=File:Limits_of_ethernet_and_requirements_to_create_an_internet.webm

unit|Classful IPv4 networks[modifica]

  • furtherReading=
  1. w: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
  • video=File:Classful-IPv4-networks.webm

unit|IP forwarding algorithm[modifica]

  • 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=4
  • numThreadsOpen=3
  • video=File:Internet_protocol_forwarding_algorithm.webm

unit|IP header[modifica]

  • 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=7
  • numThreadsOpen=3
  • video=File:Internet-Protocol-Header.webm

unit|Summary, further reading, homework[modifica]

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

lesson|Transmission Control Protocol[modifica]

unit|End to end principle and connection oriented communication[modifica]

  • furtherReading=
  1. End to end principle
  2. 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[modifica]

  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[modifica]

  • furtherReading=
  1. Transmission control protocol
  2. List of TCP and UDP port numbers
  3. Port numbers
  4. 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[modifica]

  • furtherReading=
  1. Transmission Control Protocol
  2. Flow control
  3. Sliding Window Protocol
  4. Maximum Segment Size
  5. 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=1
  • numThreadsOpen=1
  • video=File:TCP sliding window.webm

unit|Summary, further reading, homework[modifica]

  • 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[modifica]

unit|Tree structure[modifica]

  • furtherReading=
  1. Domain name system
  2. Domain Name
  • video=File:01_DNS_Tree_Structure.webm


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


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

unit|Review some facts about DNS[modifica]

  • 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[modifica]

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

unit|DNS address resolution[modifica]

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

unit|Summary, further reading, homework[modifica]

  • furtherReading=
  1. Chapter on DNS in Internet protocol analysis (on wikiversity)
  2. Domain name regestry
  3. Domain name registrar
  4. w:Internet_Assigned_Numbers_Authority
  5. w: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[modifica]

  • 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[modifica]

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

unit|Motivation and requirements for the World Wide Web[modifica]

  • video=File:Motivation_for_creating_the_World_Wide_Web.webm

unit|Design principles of the web[modifica]

  • furtherReading=
  1. w:World_Wide_Web
  2. w: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[modifica]

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

unit|Summary, further reading, homework[modifica]

  • 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=File:Web Science MOOC Exercises Week 3.pdf

lesson|Hypertext Transfer Protocol[modifica]

unit|Making HTTP requests[modifica]

  • 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[modifica]

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

unit|A simple web server[modifica]

  • 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[modifica]

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

unit|Content negotiation[modifica]

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

unit|Summary, further reading, homework[modifica]

  • 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. w:WorldWideWeb
  8. W:Robert_Cailliau
  9. w:History_of_the_World_Wide_Web
  10. w:Microform
  11. w:Memex
  12. w:Web_page
  13. w:ENQUIRE
  14. w:Hypertext
  15. w: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

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[modifica]

  • numThreads=1
  • numThreadsOpen=1

unit|Problem setting for web content formats[modifica]

  • 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[modifica]

  • 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[modifica]

  • 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[modifica]

  • 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[modifica]

  • 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[modifica]

  • 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=
  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[modifica]

  • 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


  • 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
  • video=File:Introduction_to_metadata.webm

unit|Summary, further reading, homework[modifica]

  • 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)
  • video=

lesson|Dynamic Web Content[modifica]

unit|Basics of server side web programming[modifica]

  • 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[modifica]

  • 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[modifica]

  • 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[modifica]

  • 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[modifica]

  • 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.
  • 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[modifica]

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