The Ethernet lessons can be found at:
https://en.wikiversity.org/wiki/Topic:Web_Science/Part1:_Foundations_of_the_web/Internet_Architecture/Ethernet
The Internet protocol lessons can be found at:
https://en.wikiversity.org/wiki/Topic:Web_Science/Part1:_Foundations_of_the_web/Internet_Architecture/Internet_Protocol
Since wikiversity in comparison to other MOOC platforms is truely open you might also want to watch some of my introductory videos. They are in particular helpful to show how to make the best use of wikiversity as MOOC platform and how one can really engage into the discussion. You can find the videos at:
https://en.wikiversity.org/wiki/Topic:Web_Science/New_here
but maybe your are already interested in watching some of the content right here right away:
According to my former blog post there are 3 ways for creating a MOOC that is truely OER:
Out of these I would love to discuss what possibilities exist in the context of Wikiversity and how such a MOOC could benefit from the ecosystem of other Wikimedia projects (e.g. books, commons, wikipedia and of course wikiversity itself)
I would also love to create a list of requirements for wikiversity software with functionalities needed (e.g. access to multiple choice results of students) to create an OER MOOC. This list could be present to the wikimedia foundation in order to extend the wikiversity software.
Open Educational Resources (OER) are freely accessible, usually openly licensed documents and media that are useful for teaching, learning, educational, assessment and research purposes. Although some people consider the use of an open format to be an essential characteristic of OER, this is not a universally acknowledged requirement. The development and promotion of open educational resources is often motivated by a desire to curb the commodification of knowledge and provide an alternate or enhanced educational paradigm
I go a little further than the definition and really require an open licence and also open formats of the documents:
Open Educational Resources (OER) are freely accessible,
usuallyopenly licensed documents and media that are useful for teaching, learning, educational, assessment and research purposes.Although some people considerthe use of an open formatto beis an essential characteristic of OER,this is not a universally acknowledged requirement. The development and promotion of open educational resources is often motivated by a desire to curb the commodification of knowledge and provide an alternate or enhanced educational paradigm
Taking this into account I’ll now compare OER platforms which offer services to host a MOOC. The upshot is that I would suggest to host your MOOC either on Khan Academy or on Wikiversity.
Khan Academy is a non-profit educational website created in 2006 by educator Salman Khan, a graduate of MIT and Harvard Business School. The stated mission is to provide “a free world-class education for anyone anywhere”. It is strongly supported by the Bill and Melinda Gates Foundation and won the Google 10 to the 100 award giving them 2 million dollars. Currently the content is translated to various languages including German. You can find more information for instructors on the website at https://www.khanacademy.org/about
Recommendation: Khan Academy is a very good platform to choose once you want to host a massive open online course. The material as free and open. The platform and community is very active and there is a lot of outside support. Exporting data doesn’t seem to work yet but there seems to be the will to be open in the future. Anyway Khan Academy is the only open educational resources platform that offers you a user experience that is closest to the otherwise commercialized MOOC format.
Wikiversity is a Wikimedia Foundation project which supports learning communities, their learning materials, and resulting activities. It differs from more structured projects such as Wikipedia in that it instead offers a series of tutorials, or courses, for the fostering of learning, rather than formal content. Like Wikipedia it is offered in several languages. The English version of wikiversity seems quite active where as the German version is currently being restructured.
Recommendation: Mediawiki software is very flexible and offers a lot of opportunities. The software itself is not best suited for the “commercialized” massive open online course format. The biggest drawback is the missing analytics for instructors to see how the course is proceeding. On the other side if one actively uses wikiversity (which I did on my last course) one gets a lot of personal feedback. Wikiversity has a lot of trust (provided by wikipedia) and users to explore content and attract many new people. Also wikimedia really follows the concept of free content without any limitations. Finally Mediawiki is open source and also extensions can be included into Wikiversity if the community agrees to that.
OER Commons is a freely accessible online library located at www.oercommons.org that provides a web-based infrastructure for teachers and others to search and discover Open Educational Resources (OER) and other freely available instructional materials. OER Commons is a project created by ISKME, an independent non-profit organization based in Half Moon Bay, California, founded by Lisa Petrides in 2002. Launched in 2007, OER Commons aggregates Open Educational Resources, which are teaching and learning materials that are openly licensed for anyone to use and reuse, in order to support a global network for engaging with flexible, adaptable curriculum
Recommendation: OER Commons is a very interesting approach since a lot of content that is needed for an open MOOC can be drawn from OER commons. All of the MOOC content can be integrated into OER commons and from this hub being spread to other instructors again. The platform itself doesn’t seem suitable to host an entire course. I think anybody who does a MOOC should submit his material to OER commons. This works really easily even if the content is just provided as a web link. I did this with my last course which was hosted on wikiversity
The european union created its own mooc platform under www.openuped.eu/.
Recommendation: This platform seems interesting since there is political will behind. Right now it seems to only aggregate MOOCs from various partners so there is no hosting service offered. On the other side you maintain the licence of everything and can probably add an existing MOOC to the index of the platform ==> Nice to have but for now it cannot work as a standalone hosting service. Also it is not clear if you can participate since they work only with selected partners.
Peer to Peer University (P2PU) is a nonprofit online open learning community which allows users to organize and participate in courses and study groups to learn about specific topics. Peer 2 Peer University was started in 2009 with funding from the Hewlett Foundation and the Shuttleworth Foundation. The main learning management system for P2PU courses is called Lernanta (the Esperanto word for “learning”). P2PU also hosts a wiki and an OSQA server for questions and answers.
Recommendation: I like the approach of this learning platform but I have the feeling it is much more targeted towards learning groups from students. It also doesn’t seem to be very mature and it is not quite clear to what place it will develop. Also I could not find data base dumps on the website which decreases my trust into the platform.
I hope I did not oversee any platform. My advice is to go for either Khan Academy or Wikiversity and submit your entire course as well as pieces of the material to OER Commons. In that way I would also suggest to add part of the content of your course to wiki commons if can enhance any given wikipedia article. I think it is probably personal choice whether to go for Khan Academy or for Wikiversity. Personally I would probably go for Wikiversity since I already had good experiences and my trust to this platform with respect to long term sustainability is higher. Also out of the box more languages are supported. In any case: When you want to create a MOOC don’t let yourself be blinded by commercialized platforms and offers just because they look nicer. Education is something that belongs to the citizens!
]]>This means besides this article I will publish three blog articles comparing platforms for each of the 3 different approaches. There is a German list of Learning platforms on Wikipedia as well as the MOOC Template in the English wikipedia from which I extracted the following lists
Not all of the platforms are relevant for a Web Science MOOC but still I extracted some of the most relevant sites and added a fiew others. As for the evaluation methodology we did a little survey and identified some possibilities. Since there are so many hosting services and possibilities we tried to find some dimensions that are important to us in order find which hosting service makes the most sense. We will use the following dimensions for our evaluation:
At least my goal would be to find a service with the following answers to our dimensions:
I am looking forward to your feedback of missing platforms or other dimensions for the evaluation of the learning platforms.
]]>The web has become important to its 2.3 billion users. Yet only a small group of people understand the processes that take place on it and quickly steer its development into new directions.
Web Science is an upcoming academic field. Much information about the web already exists online, but no course that comprises all of it.
The MOOC would be of high value and of relevance for anybody using the web e.g:
The web itself is the best platform to educate people about the web since you can always point directly to the object of study. By creating a MOOC we will be able to aggregate, organize and filter much of the available information.
The MOOC will be a core element for the web science lecture of our web science master program. The goal is that students will work with the material provided by the MOOC and the instructors will replace classical lectures with public Q&A sessions. Additionally the Web Science lecture of 2013/2014 will serve as an internal testing of the MOOC such that the improved MOOC can launch on iversity in 2014.
This MOOC consists of ten lessons divided into three parts.
You will understand the historical development of the web and see how the cold war in combination with advances in technical developments led to the Internet Protocol suite.
On each Layer you will know one protocol and understand how these protocols build an open, inter operable and decentralized system. Furthermore you will learn about the domain name system and find out why the concepts of URI and Hypertext were crucial for the success of the web.
You will learn about the six degrees of seperation and understand concepts like small world networks by studying ‘the other’ Milgram experiment. You will be able to use power law distributions to describe the structure of the web, its content and its users.
You will be introduced to theories from Microsociology and see how applying them to the behavior of people on the web leads to macro structures such as:
Analyzing social network data from the Koblenz Network Collection using Octave you will gain a deeper understanding of social theories and social networks.
Completing this section you will understand the basic architecture of a (web) search engine. You can name the fundamental (non technical) difficulties one has in order to create a good information retrieval system. You will learn about the connection to recommender systems that are (not only!) used by large web shops to increase cross selling.
You will be able to discuss the danger of such algorithms like the relevance paradox and the filter bubble.
You will learn how third parties act as trust providers on the web and how this issue is related to markets with asymmetric information. You will see that trust issues in the online word differ from the offline problems. You will know of ways like cryptography, secure communication and certificates to resolve trust issues and how those techniques can even lead to a new currency.
You will know of e-commerce models like online shopping & auctions as well as online advertising and marketing. You will be able to interpret and apply metrics for web analytics such as
Finally you will understand the important role of institutions like W3C, IETF and ICANN . You will use your understanding of the web architecture to discuss and explain the connections between
So please go to https://moocfellowship.org/submissions/web-science an learn more about the course and vote for it.
]]>The course was designed for 16 highly gifted high school students (11th and 12th grade). The level was supposed to be manageable for a second year undergraduate student. Since our students came from different grades and schools we were forced to sacrifice some course time to teach some basic programming skills. Thus we could not cover all the aspects of Web Science. Instead we focused on three main course objectives:
By the end of the course our students should…
All students were asked to prepare a talk and read the book ”Weaving the Web” by Sir Tim Berners-Lee before the summer school started. Ten of the talks included the technical foundations starting with binary numbers going all the way to the application layer and all the necessary protocols. This included the theoretical study of IP, TCP and HTTP as well as routing algorithms (BGP ) and DNS. To ensure a better understanding the students had to form groups and implement a simple Web Server and a Web Client that were able to process HTTP1.0 GET requests during course time. This was done using the Java Programming Language and the socket classes from the Java API. These topics have been covered in the first week of the course. In the second half we focused on the ethics of the web. After each talk on an ethical topic which was supposed to give an overview for about 20 minutes we entered a 2 hour group discussion. For example for the discussion on net neutrality we knew the following groups of interests from the overview talk: Large internet providers, big web companies, small web companies, politicians, consumers. Students were randomly assigned to one of these groups. Within 10 minutes they had to prepare a list of arguments that would reflect the interests of their particular group as well as arguments they would expect from other groups. While discussing the issue on a round table they had to find a good solution respecting the technical nature of the web and the interests of their group.
Even though the Summer School is very competitive participation is voluntary so there can’t be an exam or something similar in the end. Also all work had to be completed during the 50 hours course time without any home work assignments. We had three evaluation methods to ensure the comprehension of the course content.
1. Hacking Project: As already mentioned students implemented a Web Server and Web Client during the first half of the course. Being in groups of 2 or 3 students and being new to programming we teachers helped students out which gave us a nice feedback whether or not students understood the content.
2. Oral presentation: After the middle of the course students had to prepare and give a presentation to be consumed by an interdisciplinary audience i.e the students from other courses of the summer school, which are all not covering any IT topics. We asked the students to create a theatre role-play of what happens if someone types www.wikipedia.org into a web browser and hits the enter key. All students placed routing tables on the seats for the audience, created TCP / IP packets (filled with candy that represented the time to live) and routed DNS requests as well as HTTP requests together with the TCP handshake around the audience in the class room demonstrating that the basic decentralized web architecture was understood by everyone in the course.
3. Paper Writing: During the last days of the course the students were expected to collectively prepare a 25 pages documentation with scientific standards of what they have learned during the summer school. The process of creating this documentation is not only guided by us teachers but gives also a nice feedback loop to see if the goals of the course have been achieved.
Overall we can say that the concept of the course worked really well. Especially putting such a high focus on the Web Architecture and actually letting students implement protocols helped to gain a deeper understanding.
Find at least 5 mistakes or passages that could be improved. Write down what is wrong or what could be improved. Give a justification for your statements and write down your suggested new version of this very passage.
To get inspired you can find mistakes by looking at the discussion page of the articles or at the version history. You might also be able to look the same article in versions of other languages!
Here are some example types / things that could possibly be improoved:
Further discussion
I am really excited how many students will try to do this exercise and how well it is accapted and what the quality of the answers will be…
I would also love to receive your feedback, thoughts and comments about this kind of exercise! Mabe you have some ideas that could be extended or you asked students to do similar coursework?
You are given a binary search tree and you know the root element has the value 2. Considering that the path to for finding an element in the tree is unique decide which of the following two lists can be an actual traversal part in order to receive the element 363 from the binary search tree? Why so?
You are given an empty binary search tree and two lists of the same elements.
For both lists draw all the trees that are created while inserting one element after the other one.
Compare the trees from part B to the tree you would get if inserting the numbers in the order of 2, 5, 7, 10, 15, 20, 23
To understand the different tree traversals please give the result of the inorder and preorder traversal applied to the trees from part B and C.
We realize that trees can have different topologies as soon as the order of the inserted items changes. Since balanced trees are most desired your task is to count how many permutations of our 7 elements will lead to a balanced binary search tree!
To do so it is sufficient to write down all the permutations that will lead to a balanced binary search tree. But you do not have to do this explicitly. It is also ok to write down all classes and cases of permuations and count them.
Compare the number to all permutations of 7 elements (= 7!) and give the probability to end up with a balanced binary search tree when given a random permutation of 7 different elements.
Your task is to find and prove a formular that states the number of permutations of the natural numbers 1, 2,…, 2^k-1 such that inserting the numbers will create a balanced binary search tree.
Give a closed forumlar for the probability P(k) to end up with a balanced search tree. Give the explicit results for k = 1,…,10
Sorting big files might not be as simple as just implementing an sort algorithm. As soon as the file does not fit in memory any more smarter implementations have to be applied. One way is to sort the file on the hard disk. We remark that not every algorithm is easily adopted for this kind of task. So your task for the exercise is to decide what kind of alogrithms are good to solve the problem and what approach to handle huge files could be taken?
One possible way of implementing this would be to split the file in smaller files which can be sorted in memory and then use a bottom up merge function to merge all those files.
In order to do so you can sort this Snapshot of all wikipedia revisions taken from the German wikipedia 2011. The file is uncompressed 3.1 gigabyte in size and consists of 128 million rows. In particular it already contains a partial order.
Your task is to find the k smallest element from an unsorted list. (thanks to Robert Sedgwick for inspiration!)
Obviously one approach would be to sort all the data and then retrieve the k-th element. The runtime of this approach would be O(n log(n)) though. We want to achieve this in linear runtime which is possible due to the help of the partition function of quicksort.
After calling the partition function the unordered list is split in two sublists with lenght i and n-i. The first list contains the first i elements (not neccessarily sorted). comparing i to k tells you weather to search in the first or second sublist for the element.
import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;
public class mink {
static public int cmpcnt = 0;
public static void main(String[] args) {
testFramework();
}
public static int findMinK(ArrayList
// Implement here
}
public static int findMinK(ArrayList
Collections.sort(array);
return array.get(k);
}
private static void testFramework() {
ArrayList
for (int j=2;j<8;j++){
a.clear();
for (int i=0;i<(int)Math.pow(10, j);i++){
a.add(i);
}
System.out.println("\n\n"+a.size()+" Elements\n\n");
double slow=0;
double fast=0;
for (int i = 0; i < 10; i++) {
cmpcnt = 0;
Collections.shuffle(a);
int k = (int)(Math.random()*(Math.pow(10, j)-1))+1;
System.out.println("test run number: " + i + " find: " + k);
long start = System.currentTimeMillis();
findMinK(a, k, 0, a.size()-1);
long end = System.currentTimeMillis();
long smarttime=(end-start);
fast = fast + smarttime;
System.out.println("SMART ALGO \t --- time in ms: " + smarttime + " comparisons: "
+ cmpcnt);
start = System.currentTimeMillis();
findMinK(a, k);
end = System.currentTimeMillis();
long slowtime = (end-start);
System.out.println("WITH SORTING \t --- time in ms: " + slowtime);
System.out.println("sorting is " +(double)slowtime/(double)smarttime + " times slower");
slow = slow + slowtime;
}
System.out.println("sorting (="+slow+"ms) is " +slow/fast + " times slower than smart algo (="+fast+"ms)");
}
}
}
Quicksort is a probabilistic algorithm and its recursive equation is given by the implicit equation
[latex]T(n) = n + 1/n \sum_{i=1}^n(T(i)+T(n-i))[/latex]
[latex]1/n \sum_{i=1}^n(T(i)+T(n-i)) = 2/n \sum_{i=1}^n(T(i)) = 2/n (T(n) + \sum_{i=1}^{n-1}(T(i)))[/latex]
]]>