Web Science/Part1: Foundations of the web/MoocIndex
--MOOC-Index
lesson|Ethernet
edit- 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=2
- numThreadsOpen=1
unit|Communication over a shared Medium
edit- 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=6
- numThreadsOpen=6
- video=File:General_Problems_of_Communication_over_a_Shared_Medium.ogv
unit|Ethernet header
edit- 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=11
- numThreadsOpen=9
- video=File:How_to_build_an_Ethernet_Frame.webm
unit|Minimum package length vs maximum cable length
edit- 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=11
- numThreadsOpen=7
- video=File:Minimum_Frame_Length_in_Ethernet_explained.webm
unit|Collision detection
edit- 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
edit- 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
edit- learningGoals=# To understand Ethernet, TCP/IP and HTTP protocols and be able to apply it to design of API
unit|Motivation for IP
edit- furtherReading=
- 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=7
- numThreadsOpen=7
- video=File:Limits_of_ethernet_and_requirements_to_create_an_internet.webm
unit|Classful IPv4 networks
edit- furtherReading=
- 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
- numThreads=2
- numThreadsOpen=1
- video=File:Classful-IPv4-networks.webm
unit|IP forwarding algorithm
edit- furtherReading=
- 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=7
- numThreadsOpen=6
- video=File:Internet_protocol_forwarding_algorithm.webm
unit|IP header
edit- furtherReading=
- 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=8
- numThreadsOpen=4
- video=File:Internet-Protocol-Header.webm
unit|Summary, further reading, homework
edit- numThreads=1
- numThreadsOpen=1
- video=File:Homework_for_Web_Science_MOOC_Week_1.pdf
lesson|Transmission Control Protocol
edit- numThreads=1
- numThreadsOpen=1
unit|End to end principle and connection oriented communication
edit- furtherReading=
- 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
edit- 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
edit- furtherReading=
- 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
edit- 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=6
- numThreadsOpen=6
- video=File:TCP sliding window.webm
unit|Summary, further reading, homework
edit- furtherReading=
- Transmission Control Protocol
- User Data gram Protocol
- Transport layer lesson in Internet protocol analysis course
- Telnet
- video=
lesson|Domain Name System
editunit|Tree structure
edit- furtherReading=
- learningGoals=test the mooc system
- video=File:01_DNS_Tree_Structure.webm
unit|Terminology
edit- furtherReading=
- numThreads=3
- numThreadsOpen=3
- video=File:02_DNS_Terminology.webm
unit|Zones
edit- furtherReading=
- DNS zone
- DNS root zone
- 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
edit- furtherReading=
- video=File:04_DNS,_A_few_points_to_keep_in_mind.webm
unit|Delegating DNS queries
edit- furtherReading=
- video=File:05_DNS_Query_Overview.webm
unit|DNS address resolution
edit- furtherReading=
- video=File:06_DNS_Resolution,_Step_by_Step.webm
unit|Summary, further reading, homework
edit- 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
edit- 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
edit- numThreads=5
- numThreadsOpen=4
- video=File:Web-Architecture-Overview.webm
unit|Motivation and requirements for the World Wide Web
edit- video=File:Motivation_for_creating_the_World_Wide_Web.webm
unit|Design principles of the web
edit- 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
edit- furtherReading=
- video=File:Explaining Uniform Resource Locator.webm
unit|Summary, further reading, homework
edit- 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=
lesson|Hypertext Transfer Protocol
editunit|Making HTTP requests
edit- 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
edit- furtherReading=
- http://docs.oracle.com/javase/7/docs/api/java/net/Socket.html
- Java Programming on wiki books
- Learning Java
- numThreads=4
- numThreadsOpen=2
- video=File:Programming_a_simple_http_client.webm
unit|A simple web server
edit- 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
edit- furtherReading=
- numThreads=1
- numThreadsOpen=0
- video=File:Demonstrations of the HTTP header.webm
unit|Content negotiation
edit- furtherReading=
- video=File:Content_Negotiation_in_HTTP.webm
unit|Summary, further reading, homework
edit- 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
edit- numThreads=1
- numThreadsOpen=1
unit|Problem setting for web content formats
edit- 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
edit- 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
edit- 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
edit- 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
edit- 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
edit- 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
edit- furtherReading=
- 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
edit- 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
- numThreads=1
- numThreadsOpen=1
- video=File:Introduction_to_metadata.webm
unit|Summary, further reading, homework
edit- 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)
- numThreads=2
- numThreadsOpen=2
- video=
lesson|Dynamic Web Content
editunit|Basics of server side web programming
edit- 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
edit- 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
edit- 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
edit- 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
edit- 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.
- 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
edit- numThreads=1
- numThreadsOpen=1
- video=
File:Web Science MOOC Exercises Week 4.pdf