algorithms and their others

30
Algorithms and their others: algorithmic culture in context Disciplina: Métodos Digitais Docente: Dalton Martins Discentes: Fabrícia Vilarinho e Johnathan Diniz

Upload: laboratorio-de-politicas-publicas-participativas

Post on 22-Jan-2017

304 views

Category:

Presentations & Public Speaking


0 download

TRANSCRIPT

Page 1: Algorithms and their others

Algorithms and their others: algorithmic culture in context

Disciplina: Métodos DigitaisDocente: Dalton Martins

Discentes: Fabrícia Vilarinho e Johnathan Diniz

Page 2: Algorithms and their others

Sobre o autor:Paul Dourish Nascido em Glasgow (Escócia), em 1966. É professor de Informática na Faculdade de Ciências da Informação e

Computação da Universidade da Califórnia em Irvine, com nomeações de cortesia em Ciência da Computação e em Antropologia.

Sua pesquisa está na intersecção da ciência da computação e das ciências sociais, com um interesse particular na computação ubíqua e móvel e nas práticas culturais que cercam novas mídias.

http://www.dourish.com/

Page 3: Algorithms and their others

Estudos preliminares:Niklaus Wirth (1934 -) É Cientista da Computação (aposentado desde 1999);

Projetor de várias linguagens de Programação (entre elas a Pascal, baseada na estruturação de dados);

Escreveu vários artigos no campo de linguagem de programação;

Em 1975 ele escreveu o livro “algoritms + data structures =

programs”, que tiveram todos os exemplos da primeira edição feitos em Pascal.

https://www.inf.ethz.ch/personal/wirth/

Page 4: Algorithms and their others

Introdução Três tópicos principais que o artigo analisa:  Os algoritmos, outrora objetos obscuros da arte técnica (technical art),

têm sido ultimamente objeto de considerável escrutínio popular e acadêmico.

O que significa adotar o algoritmo como um objeto de atenção analítica? O que está em vista e fora de vista, quando nós focamos no algoritmo?

O artigo examina como uma lente algorítmica forma a maneira pela qual podemos investigar a Cultura Digital contemporânea - usando a formulação de 1975 de Niklaus Wirth como ponto de partida: "algoritmos + estruturas de dados = programas"

Page 5: Algorithms and their others

Introdução

Estranho para o autor (Paul Dourish) descobrir que algoritmos agora são objeto de atenção pública, como tópicos em artigos de jornais e conversas em cafeterias; diferente do tempo em que era estudante de graduação em ciências da computação.

Antes, algoritmos eram usados somente na concepção de programas de computador; como formulações abstratas nos manuais; como enigmas matemáticos de testes (exam papers) etc.

Hoje, os processos digitais moldam e organizam nossas vidas, mesmo nas formas cotidianas.

Page 6: Algorithms and their others

Introdução A discussão pública de algoritmo está entrelaçada às discussões de ''Big

Data'': onde as atividades on-line criam fluxos de dados dos quais algoritmos extraem padrões que orientam a ação de instituições, corporações e Estados.

  Desenvolvimentos algorítmicos estão transformando as relações de

trabalho. Ex: Uber e processos automatizados (que exigem alta velocidade): como negociação programada em mercados de ações, realizadas sem intervenção humana (Castells e A Sociedade em Rede)

  Por tudo isso, os algoritmos se tornaram objetos de atenção acadêmica em

estudos sociais e culturais; pesquisadores usam ferramentas da análise cultural para entender a cultura digital contemporânea

  No entanto, a incorporação do tópico Algoritmos nestes estudos levanta

algumas dificuldades. Exige que tenhamos cuidado sobre o que temos em vista quando os algoritmos são o objeto central de análise?

Page 7: Algorithms and their others

PAUSA. O que é um algoritmo? (Definições para leigos: para quem até agora tem uma ideia do que seja, acha que sabe, ou não tem a menor ideia...)

“Um Algoritmo é uma sequência de instruções ordenadas de forma lógica para a resolução de uma determinada tarefa ou problema.”

Um algoritmo é formalmente uma sequência finita de passos que levam a execução de uma tarefa. Podemos pensar em algoritmo como uma receita, uma sequência de instruções que dão cabo de uma meta específica. Estas tarefas não podem ser redundantes nem subjetivas na sua definição, devem ser claras e precisas.

Ex.: manuais de aparelhos eletrônicos que explicam passo-a-passo como, por exemplo, gravar um evento.

Disponível em: http://www.ebah.com.br/content/ABAAABacgAB/linguagem-c-algoritmo

Page 8: Algorithms and their others

Outra definição Um programa de computador é essencialmente um algoritmo que diz ao

computador os passos específicos e em que ordem eles devem ser executados, como por exemplo, os passos a serem tomados para calcular as notas que serão impressas nos boletins dos alunos de uma escola.

Um exemplo de algoritmo implementável é o cálculo da média de um aluno.“Calcular média” • Receba a nota da prova mensal• Receba a nota da prova bimestral• Calcule a média com a fórmula media=(mensal+bimestral)/2• Exiba a média na telaO programa que realiza a tarefa acima poderia ser escrito em uma pseudo linguagem da seguinte forma:Variável mensal=0 Variável bimestral=0 Variável media=0ESCREVA “Digite a nota mensal:” RECEBA mensal ESCREVA “Digite a nota bimestral:” RECEBA bimestral CALCULE media=(mensal+bimestral)/2 ESCREVA “A média do aluno é:” ESCREVA media drSolutions

Page 9: Algorithms and their others

Logo, o algoritmo pode ser considerado uma sequência de operações que podem ser simuladas por uma máquina de Turing completa (filme O jogo da Imitação, 2014).

A maneira mais simples de se pensar um algoritmo é por uma lista de procedimentos bem definida, na qual as instruções são executadas passo a passo a partir do começo da lista, uma ideia que pode ser facilmente visualizada através de um fluxograma.

Page 10: Algorithms and their others

RETOMANDO O ARTIGO... (...) o que temos em vista quando os algoritmos são o objeto

central de análise?

Em 1975, o pioneiro cientista da computação Niklaus Wirth publicou um livro intitulado Algorithms+Data Structures=Programs. Nele, os sistemas de software enfatizavam o stepwise. Tradução: esta abordagem tornou os programas de computador mais fáceis de desenvolver e analisar, tornando-se prática industrial padrão.

  Importante: Em um tempo em que o desenvolvimento e análise de

algoritmos era a prática dominante e a mais prestigiosa área da ciência da computação, Wirth quis enfatizar a concomitante importância da estrutura de dados para quem desenvolve os sistemas de software.

Page 11: Algorithms and their others

Ele destaca algumas preocupações importantes para os envolvidos com algoritmos e cultura digital:

  A primeira: é que os algoritmos e programas são diferentes

conceitualmente e tecnicamente. Programas são mais do que algoritmos (no sentido de que os programas podem incluir material não algorítmico)

A segunda: uma vez que os algoritmos surgem na prática em relação a outros processos computacionais, como as estruturas de dados, eles precisam ser analisados e entendidos dentro destes sistemas de relação que lhes dão significado.

Pergunta: tem como pensar em algoritmo sem pensar em estrutura de dados?

Page 12: Algorithms and their others

O artigo aborda a questão dos algoritmos como objetos que vivem em relações dinâmicas com outros elementos materiais e discursivos de sistemas de software e o cenário que os produzem. Buscando entender qual é a interpretação técnica de algoritmos e que consequências poderá ter para as questões sociais e análise.

Então, dependendo da interpretação técnica (o entendimento que temos) dos algoritmos, as análises das questões sociais sofrerão consequências. Como você pensa o algoritmo?

Page 13: Algorithms and their others

Em termos de ciência da computação, um algoritmo é um resumo, descrição formal de um procedimento computacional. O significado se torna mais claro quando olhamos algoritmos no contexto de seus "outros" - fenômenos relacionados, mas distintos, que enfatizam diferentes aspectos da sociotechnical assembly (reunião sociotécnica...)

Algoritmos e seus outros: 1. Algoritmo e automação 2. Algoritmo e código 3. Algoritmo e arquitetura 4. Algoritmo e materialização

Page 14: Algorithms and their others

Os limites do termo algoritmo são determinados por papeis sociais (social engagements) e não por meio de restrições tecnológicas ou materiais (technological or material constraints).

Assim quando a pessoa diz, '' Eu faço algoritmos '' está fazendo uma declaração diferente da pessoa que diz: "Eu estudo engenharia de software" ou do que diz: "Eu sou um cientista de dados", e a natureza dessas diferenças são importantes para qualquer entendimento do relacionamento entre dados, algoritmos e sociedade.

Page 15: Algorithms and their others

Algoritmo e automação

Aqui, a preocupação não é com algoritmos como tal, mas com um sistema de controle e gerenciamento digital, através da detecção de dados de grande escala. Ex.: vigilância pública digitalmente melhorada; detecção de plágio;

  Casos de monitoramento por computador e controle.

Certamente, questões cruciais do trabalho, política, justiça social, privacidade pessoal, responsabilidade pública, participação democrática etc. Os algoritmos desempenham um papel crítico nestes assuntos.

Page 16: Algorithms and their others

Algoritmo e código

Código é “software-como-texto” (software-as-text), e particularmente na forma de "código-fonte", as expressões legíveis (human-readable) de comportamento de um programa são o foco principal de programadores. Em livros didáticos e trabalhos de pesquisa, algoritimos são muitas vezes expressos no que é informalmente chamado "pseudocódigo".

Page 17: Algorithms and their others

Quatro Distinções Primeiro, enquanto a transformação de um algoritmo em código pode

ser relativamente simples, o processo inverso - para ler o algoritmo fora do código - não é de todo um processo simples. (?)

Muitos casos de erros no domínio da segurança na Internet, tem havido uma série de casos onde código não implementou corretamente o algoritmo que pretendia incorporar, deixando sistemas abertos para ataques e violações de dados; Ex: incidente "Heartbleed" está entre os mais conhecidos (Um programador alemão assumiu que criou o bug HeartBleed por acidente. O funcionário da companhia de softwares T-Systens (uma unidade da Deutsche Telekom) informou no blog da empresa que inseriu o bug no código-fonte aberto OpenSSL quando estava tentando melhorá-lo. O erro acidental resultou no abalo da indústria de segurança e serviços da web nos últimos dias e uma corrida de troca de senhas.

Disponível em: http://www.techtudo.com.br/noticias/noticia/2014/04/heartbleed-programador-assume-erro-e-confessa-que-criou-bug-por-acidente.html)

Page 18: Algorithms and their others

Quatro Distinções

Segundo, algoritmos e código têm diferentes propriedades locais. Mesmo que eles acontecem em sequência quando um programa é executado, eles podem não ocorrer em conjunto ou mesmo nas proximidades dentro do texto de um programa.

Terceiro, os algoritmos são manifestos diferentemente em diferentes plataformas de código. Diferentes arquiteturas de computador, diferentes tecnologias de armazenamento de dados, diferentes arranjos da hierarquia da memória, e outras características de uma plataforma significam que o código de um algoritmo é altamente variável e específico.

Page 19: Algorithms and their others

Quatro Distinções

Quarta distinção: há muito em um programa que não é "o algoritmo" (ou "um algoritmo").

Um algoritmo pode expressar o núcleo do que um programa é destinado a fazer, mas esse núcleo é cercado por uma vasta penumbra de operações auxiliares que também são da responsabilidade do programa e também se manifestam no código do programa.

Em outras palavras: enquanto tudo que um programa faz e que o código exprime é algorítmico no sentido que é especificada antecipadamente pela formalização, não é Algoritmo, no sentido de que ele vai além das coisas que Algoritmos expressam, ou mesmo o que o termo "algoritmo" sinaliza como um termo de prática profissional.

Page 20: Algorithms and their others

Algoritmo e arquitetura

A terceira distinção que é útil para relacionarmos algoritmo e arquitetura.   A maioria dos programas contemporâneos, de qualquer complexidade, é

extremamente grande - muitas vezes centenas de milhares ou milhões de linhas de código - e devem ser organizados de acordo com algumas estruturas para ajudar programadores e equipes a gerenciar sua complexidade e compreender o todo.

A chamada "arquitetura de software" refere-se ao arranjo de unidades, módulos ou elementos de um sistema maior, e os padrões de interação entre essas unidades.

Por exemplo, podemos falar do algoritmo pelo qual a Internet gerencia o fluxo de dados em uma caixa de Control Protocol (TCP). O fluxo de dados deve ser regulado De modo a evitar o congestionamento nas linhas de transmissão, e, de facto, o desenvolvimento de um novo sistema de Algoritmo no final dos anos 80 foi crucial para permitir que a Internet tivesse seu tamanho atual.

Page 21: Algorithms and their others

Algoritmo e materialização A distinção final a explorar aqui é que entre a Algoritmo e sua manifestação não apenas em um pedaço

de código ou mesmo em um sistema de software maior, mas como um sistema em execução, executando em local, num computador específico, ligado a um determinada rede, com uma configuração de hardware específica. Todos estes fatores criam o efeito Algoritmo tem.

Que as configurações materiais limitam a eficácia ou alcance de algoritmos não é nenhuma surpresa; Porém, o inverso também é verdade - a nossa experiência de algoritmos pode mudar à medida que a infraestrutura muda.

Considere um exemplo tirado de simulação de armas nucleares. Devido tratados de proibição de testes nucleares, as potências nucleares não detonaram armas nucleares em várias décadas. Contudo, continuam a desenvolver e introduzir novas armas. Fazê-lo sem nenhum teste seria imprudente e assim, novos projetos são testados, mas apenas através da simulação. Na verdade, podemos argumentar que foi a capacidade de produzir simulações digitais de explosões nucleares críveis que tornaram a limitação do teste possível.

  Neste momento, o desenho de novas ogivas nucleares e armas está tão intrinsecamente ligada à

tecnologia de simulação que se poderíamos considerar a tecnologia da simulação como um dos principais limites para a produção de novas armas.

A simulação - o algoritmo - permanece inalterado. Mas as novas tecnologias deslocam o efeito e impacto de um algoritmo sem alterar o próprio algoritmo; Elas expandem os limites das possibilidades algorítmicas.

Page 22: Algorithms and their others

Inscrutibility / “Inescrutável” Estendendo-se através de todas estas discussões que parecem ancorar a

análise social de algoritmos; Os algoritmos são apresentados como: Velozes, em vez de lento; automatizados, em vez de mão-de-obra;

mecânico, em vez de humano;► Cada uma dessas características apresentam uma série de problemas

quando os algoritmos são direcionados a novos domínios.► Talvez o contraste mais significativo seja, no entanto, os problemas de

inescrutabilidade (impenetrabilidade);► O foco de vários testes tem sido a questão da opacidade dos algoritmos.

Diversas avaliações e resultados tem sido amplamente estudados a respeito;► O funcionamento desses algoritmos são complexos, assim levam aos

pesquisadores a procurar novas formas de processos algoritmos visíveis, encontrando alguma forma para avaliá-los e testá-los.

Page 23: Algorithms and their others

Opacidade algorítmica Dourish cita o trabalho feito por Jenna Burrell (2016), no qual ela

estabelece algumas das bases para a opacidade algorítmica, a fim de solucionar problemas de verificação (auditoria);

Burrell começa a partir dos problemas colocados por algoritmos opacos;

Os algoritmos precisam estar disponíveis para auditoria; Burrell ressalta que existem variadas fontes (diferentes) de opacidade

algorítmica, são elas:1. Segredo comercial que regula muitos algoritmos que estão por trás dos

serviços como Google, Facebook e Twitter e também usados por instituições financeiras e corporações;

2. A capacidade de ler e compreender algoritmos, por se tratar de habilidade altamente especializada;

3. Muitos dos algoritmos possuem significado social e cultural, que moldam o fluxo de informações na mídia social (algoritmos de aprendizado de máquina estatística)

Page 24: Algorithms and their others

Opacidade algorítmica Perguntas sobre o que sabe e o que se pode dizer sobre o funcionamento

do aprendizado da máquina ou de algoritmos no Big Data é uma questão-chave em jogo na análise de algoritmos;

Debate sobre técnicas de aprendizado estatísticos das máquinas, produziram grandes incógnitas. Exemplo: bloqueio do cartão de crédito.

Em relação aos algoritmos vindo a desempenhar um papel nos assuntos sociais:

Qual é a lógica de alguns assuntos serem “trending topics” no Twiter e outros (talvez com uma grande importância) não?

Para entender isso, é preciso ser capaz de caracterizar as dinâmicas específicas da massa, cada vez mais difusa (a maneira de expressar as ideias, dinamicidade de repetição dos assuntos, áreas geográficas de interesse e a quantidade de tweets).

Page 25: Algorithms and their others

Opacidade algorítmica

Embora as formas de análise em que as técnicas de aprendizado estatístico de máquina estão embutidos, são referidos com o termo “Big Data”, existem dois movimentos escalares na atividade:

1. A partir de dados individuais para grandes conjuntos de dados (registro para uma massa acumulada de dados) – Este movimento permite técnicas estatísticas para começar descrever as características das populações;

2. Movimento inverso, partindo dos grandes populações à categorização de grupos específicos (exemplo: mulheres grávidas). Cada categorização é um movimento partindo do maior para o menor, usando pontos de dados para um elemento narrativo ou uma característica definidora, elaborado a partir do domínio que se obtém saber.

Page 26: Algorithms and their others

Opacidade algorítmica Dourish retoma à formulação de Wirth na obra “algoritms + data structures =

programs. Dualidade inerente de algoritmos e dados na produção de sistemas de

execução e os problemas de tentativa de compreender um sem o outro. Wirth fala em estruturas de dados e não somente em dados, pois os algoritmos são projetados em torno de estruturas de dados (forma e regularidades desses dados);

A preocupação de Burrell com a opacidade algorítmica, também direciona a se atentar sobre estruturas e regularidades em conjunto de dados e os mecanismos pelos quais lutam para denominá-los.

A preocupação com a leitura desses algoritmos podem levar a direção contrária, que seria as fontes de aparente legibilidade de dados.

Alguns movimentos legisladores mudaram o termo de “auditoria” para “explicação” (aqui reflete a dualidade entre algoritmo e dados, desempenhando papel na tomada de decisões automatizadas e ao mesmo tempo, conseguir explicar os resultados e como a produção desses dados [algoritmos] podem ser explicado entre si.

Page 27: Algorithms and their others

Directions / “Instruções” “Direções”

Que lições poderíamos tirar desta análise e que direções sugeridas para o futuro trabalho analítico em torno dos algoritmos? O termo algoritmo carrega consigo confusões conceituais e seria o momento de localizá-lo adequadamente dentro de um quadro analítico maior;

O aumento de interesse em técnicas do Big Data, é naturalmente, uma fonte significativa de interesse em algoritmos, em primeiro lugar, mas as representações específicas que organizam os dados (estruturas de dados), tem sido menos proeminente;

As consequências de formas de representação é necessário o duplo processamento algorítmico e estruturas de dados, com base nos estudos de Wirth;

Page 28: Algorithms and their others

Directions / “Instruções” “Direções”

Uma segunda preocupação é a questão da identidade algorítmica: entender como os algoritmos são identificados, como são usados ou idealizados, possuindo a mesma característica em diferentes contextos, circulando como eles fazem entre plataformas, instituições, empresas e aplicações;

A terceira preocupação seria a temporalidade dos algoritmos, levando em consideração principalmente as temporalidades de sua evolução como a sua implantação.

Noção de algoritmo: característica de prática profissional

Page 29: Algorithms and their others

Directions / “Instruções” “Direções” Finalmente, umas das questões mais intrigantes (que talvez

requer maior atenção), é a relação entre algorítmico e não-algorítmico dentro da prática tecnológica;

Os algoritmos são elementos distintos de design e software, são identificáveis e nomeáveis;

Os não-algoritmos são elementos em sistemas de software que são mecânicos e programadas;

É preciso diferenciar o algoritmo do mecânico e do automático (das atividades programadas);

É necessário compreender os limites e especificidades do “algoritmo”, para em seguida, estender a oportunidade de envolvimento mais significativo no diálogo interdisciplinar, abrindo novas áreas para análise em torno dos sistemas algorítmicos.

Page 30: Algorithms and their others

Referência

DOURISH, Paul. Algorithms and their others: algorithmic culture in context. Big Data & Society. [s. l.] ago 2016. p. 1-11. Disponível em: <http://bds.sagepub.com/content/3/2/2053951716665128>. Acesso em: 20 nov. 2016.