If You have never heard (or heard much) about Algorithms, and You ended up reading this article by chance, stay comfortably here and let the absence of prejudices be exploited optimally! Let's get started!
There are different definitions, and obviously none can make fully justice to the subject ; so let's pick one for this article.
Algorithms is a discipline which studies how to automate tasks which can be automated, by devicing a sequence of instructions which have to be excecuted in order to complete the task. Where the instructions must be absolutely univocous of course!
Equally important, is that this discipline studies also the intrinsic nature of those kinds of problems which can be automated ( by devicing an Algorithm which automates it ), and establishes a core of underlying theory for it, which provides a general understanding of the problem at hand. A solid theoretical basement made of absolute certainties, which in fact are often expressed in the form of theorems.
So Algorithms, even if it involves a lot of creativity, is an excact theoretical science, even if strongly adressed to application to solve real-life problems.
So this discipline, thus not only provides theoretical understanding of certain areas of problems, but it does other 2 things:
1. Using the insight gathered about the nature of the problem, it tries to device optimized procedures to perform a given task. This it also produces optimized "theoretical" tools to do things faster, better, and with less waste of resources. That's why Algorithms constitute also a technology and not only a theoretical subject with lots of applications.
2. It attempts to outline the frontier-line between tasks which can be automated, and tasks which cannot. We can automate the task of summing 2 numbers, we can automate the taskt of sorting a bunch of numbers in ascending order, etc, but we can not automate for example the intuition of how to go about solving a currently unsolved problem, etc. You get the idea... This barrier-line is important because at one end there is a relatively simple, almost -let's say - finite and small world of automatable tasks and underlaying theory, a world of absolute certainties ; while at the other end there is the unknown and uncertain or just too complicated.
This is as important as the difference between scientifically investigable things, and scientifically not investigable things. And there is a strong relation between the two, in fact ideally science is predictive, even if in some fields this is just too utopistic and a compromize is accepted. And prediction in fact the result of a procedure which tries to simulate what will happen, and such a procedure is an Algorithm of course: since predicion is scientific only if it's algorithmic!
There are plenty of academic and more-less informal papers about this topic on the Internet, but usually these comunicate more-less in-depth this or that procedure and the underlaying theory plus a few general approaches to deal with this or that need. But do not comunicate an overall secondary function of Algorithms: their potential social function.
Let's start by reconnecting to the previous part, and state a first fact.
Algorithms deal with a core of absolute certainties, and it derives further certainties too. In fact in Algorithms, sometimes also theorems are used to establish the theoretical grounding from which to start figuring out the wat to automate a task.
So Algorithms provide a true suitcase of absolutely certain grasp-points to accompany a nerd along his - often troubleful and uncertain - life in the society.
That's point one.
Let's go on, and derive other points.
Algorithms as a subject, happens to constitute the "nerd" subject par-excellence: and thus it can an activity, an interest, something, to give a social meaning and social function to the lives of those who are tendentially considered socially disadapted because have often seen themselves considered computer-nerds ( often called also computer-geeks) or videogame-nerds often in a dispraising way.
That's point two.
All this does not make sense? Let's derive another point, and then put them togather and answer the question: why a site dedicated to algorithms and ralated topics?
Algorithms are meant to run on computers in form of a program or some sub-fucntionality of of a polyfunctinal program, so they are something already affine with people who have seen themselves judged negatively because they are videogame nerds of similar stuff and spend hours a day in front of a computer. And Algorithms can bring this end togather with the other typical end discussed below. Many people use a computer for work (e.g. various CAD programs, text-editing programs, etc... ), but are not socially disadapted, and nobody criticizes them for how or how much they use a computer.
But Algorithms are the bridge between the two worlds, since both more-less complex non-gaming programs use various algorithms to perform the tasks they need to, both videogames realy on various algorithms to provide this or that functionality in the game. And that's the strong social function of Algorithms: a bridge between the world of normal, adpted people and the world of nerds. Because maybe people belonging to the two different worlds don't agree too much, but they agree on the usefulness and theoretical depht of Algorithms.
That's point three.
So finally say why this site... why a site dedicated to Algorithms and related topics?
In recent Years, adventure videogames belonging to the MMORPG genre, have enjoyed great success. And many people say that this or that of those games managed to give a meaning to their lives: this because those games have a social function, whether positive or negative.
At this point I'd like to quote an account of this social function:
But of course this social function exists only inasmuch there are public portals which welcome people who like playing those kinds of games. I don't mean that everibody should be friends, or that a specific portal (or let's say Internet-based club) may not be geographically established, but I'm saying only that there has to be some kind of wider-scale support in order to make the aforementioned social function a tangible reality.Playing World of Warcraft has just cleary changed my life in a positive way. I think that things weren't going too well for me in real life, you know I troubled holding a job and making friends, things like that. But You know, I found WoW... or it found me: and we really just head it off. I've been palaying now since release, and I've done some great things: things I'm really proud of. And there's people that really look up to me ; and I feel like - You know - I've made a name for myself. Warcraft saved me: in real life, I was nobody.
( account of: Ben Wooley, World of Warcraft player | source: https://www.youtube.com/watch?v=jOR26Q6FMXE )
This, of course is very much a question of opinion. Certainly they are meant to run on computers in most cases, so this makes it all funnier to many.
But a more universal, certain fact is that Algorithms are cool because they are equally about application to make life better and more interesting, and equally important theoretically. Where the theoretical importance consists in providing a core theoretical basement for a general understanding of a huge set of everyday-life problems and how to solve them:
an understanding which provides a large basement of certainties which eventually make life more comfortable and worth being lived out.
about the author:
Simon Hasur, a really convinced nerd of algorithms who came to this field practically by chance,
and moreover as some kind of "last resort, last attempt".
He has dealed with a variety of algorithms, and hopefully will manage to provide a selection of the the most appealing ones and some of its applications, directly on this site. Possibly sticking to written material since his curriculum is already enough filled with video-audio material.