1
Introdução ao Estudo do Direito
UP
20
Introdução ao Estudo do Direito
UP
3
Introdução ao Estudo do Direito
FANEESP
418
Introdução ao Estudo do Direito
UEPG
18
Introdução ao Estudo do Direito
UNIPAR
4
Introdução ao Estudo do Direito
USJT
2
Introdução ao Estudo do Direito
PUC
230
Introdução ao Estudo do Direito
UNB
1
Introdução ao Estudo do Direito
UNISUL
2
Introdução ao Estudo do Direito
FACAPE
Texto de pré-visualização
CAPÍTULO 2 ALGORITMOS 21 INTRODUÇÃO Um algoritmo é uma redação que deve descrever de forma lógica e sem ambigüidades os passos ações a serem seguidos para se resolver um problema especifico que tenha um comportamento padrão em sua solução Note que o objetivo de um algoritmo é o de ensinar a resolver problemas e o nosso objetivo é o de construir algoritmos ou seja nós construiremos textos que ensinem a resolver problemas mas não estaremos preocupados com o resultado da solução do problema desde que o nosso algoritmo esteja correto Em suma diremos como se resolve o problema mas não daremos a solução Um dos exemplos clássicos deste fato são as receitas de bolos formas de algoritmos mais conhecidas Quando você adquire um livro de receitas de bolos em seu interior são descritos os passos a serem seguidos e ingredientes a serem usados por você para que seja possível obter o resultado final o bolo Nenhum livro de receitas traz o bolo pronto O aspecto lógico de um algoritmo se resume na organização seqüencial das ações pertinentes à solução de um problema específico ou seja só levaremos o bolo ao forno quando a massa do mesmo estiver pronta e não antes Mas a grande exigência da lógica se encontra nas tomadas de decisões e nos processos de repetição O aspecto ambigüidade está estreitamente ligado com a sintaxe e a semântica das linguagens naturais português inglês A ambigüidade ocorre quando existe mais de uma interpretação para o mesmo fato Veja como exemplo a seguinte frase O artista produz formas perfeitas Neste caso o artista produz fórmas ou fôrmas perfeitas Certa vez um amigo contou um caso interessante sobre ambigüidade A ambigüidade é um resultado da riqueza de construções das linguagens naturais Existem muitas formas de se expressar sobre um mesmo tema que às vezes sem querer acabamos escolhendo uma forma que nos leva à dupla interpretação CAPÍTULO 2 ALGORITMOS 31 Para evitar ambigüidades em nossos algoritmos reduziremos drasticamente as formas de construções de textos onde cada construção executará uma ação específica e somente ela Estas construções serão inseridas no decorrer deste trabalho Um algoritmo possui dois aspectos os quais precisamos distinguir com clareza o aspecto estático e o aspecto dinâmico O aspecto estático não depende do tempo mas sim do espaço físico por exemplo folha de papel e onde está sendo desenvolvido o algoritmo O aspecto dinâmico seria as ações que um algoritmo provoca nos projetos nele relacionados com o passar do tempo Ou seja como se comporta a execução de cada ação de um algoritmo com o passar do tempo Note que no aspecto estático estamos preocupados em descrever um algoritmo e no dinâmico já estamos com o algoritmo pronto só que em fase de execução das ações nele descritas Para um algoritmo ser correto todas as possíveis execuções do mesmo devem produzir resultados corretos além do que ele deve ser finito no seu aspecto estático e no seu aspecto dinâmico A finitude estática se deve ao fato do grau de detalhamento de um algoritmo associado ao bom uso de suas estruturas de controle Ou seja poderíamos nos delongar o quanto quiséssemos no detalhamento de um dado evento mas o ideal seria analisar até onde é necessário detalhar o evento Por exemplo suponha que seu carro esteja falhando você o leva no mecânico e simplesmente diz O meu carro está falhando conserteo O mecânico tomará as providências necessárias para consertar o seu carro Agora vamos supor que você leve o seu carro para um aprendiz de mecânico de automóvel você terá que supervisionar o trabalho do pupilo informandoo das ações que ele deverá executar 1 verificar velas e distribuidor 2 limpar carburador e giclês 3 verificar platinado 4 verificar partes elétricas relacionadas com o motor 5 verificar se o combustível não foi adulterado Estamos supondo que o aprendiz sabe como executar essas tarefas ele só não sabe diagnosticar o defeito Agora imagine se tivéssemos que ensinar um leigo que nem sequer viu um motor de carro e não tem habilidade com ferramentas para consertar o carro O nosso grau de detalhamento teria que ser tão grande que correríamos o risco de nos perder em nossos próprios detalhes E onde deveríamos parar o detalhamento Note que se o nosso detalhamento for minucioso poderíamos cair num processo infinito tentando explicar os detalhes do detalhe CAPÍTULO 2 ALGORITMOS 32 A finitude dinâmica é mais fácil de entender Execute o algoritmo a seguir escolha um número inteiro entre 1 e 9 enquanto o número que você escolheu for ímpar faça cante daqui eu não saio daqui ninguém me tira Note que se o número que você escolheu for par você não cantará nenhuma vez o refrão Agora se o número for ímpar você nunca mais irá parar de cantálo pois a instrução diz enquanto o número for ímpar cante e após a escolha do número não existe mais possibilidade de alterálo logo estaríamos com um algoritmo estaticamente finito mas dinamicamente infinito em uma de suas possibilidades Já no exemplo a seguir mesmo que sua primeira escolha seja um número ímpar ainda existe a possibilidade de você sair da execução da estrutura enquanto pois para cada vez que você cantar o refrão é aberta a possibilidade de escolha de um novo número o qual poderá ser ímpar você continuará contando ou par o que provocará o abandono da estrutura enquanto escolha um numero inteiro entre 1 e 9 enquanto o número que você escolheu for ímpar faça cante daqui eu não saio daqui ninguém me tira escolha um outro número inteiro entre 1 e 9 22 SINTAXE X SEMÂNTICA As linguagens possuem como único objetivo prover uma forma de comunicação No caso das linguagens naturais inglês português esse objetivo é a comunicação homem homem No caso das linguagens computacionais Pascal Fortran C o objetivo é a comunicação homemcomputador Independente da natureza da linguagem elas devem possuir dois atributos a sintaxe e a semântica A sintaxe dita as regras de como as frases e cada um dos seus termos devem ser construídas corretamente verbo objeto sujeito predicado artigo Já a semântica se preocupa com o significado da frase construída Podemos construir frases sintaticamente corretas mas sem uma semântica definida e da mesma forma podemos construir frases sintaticamente incorretas mas com uma semântica definida Exemplos Frase com sintaxe correta Descoloridas idéias verdes sonham furiosamente Chomsky Frase com semântica definida Nóis foi mas já vortemo CAPÍTULO 2 ALGORITMOS 33 A sintaxe de uma linguagem não permite uma definição completada mesma Ela permite somente escrever frases corretas nesta linguagem Por exemplo O gato come o rato O rato come o gato São frases sintaticamente corretas na nossa linguagem Mas essas frases têm sentido Isto não pode ser definido pela sintaxe mas sim pela semântica da linguagem A semântica de uma linguagem pode ser definida como sendo um conjunto de regras que permite dizer se uma frase sintaticamente correta tem ou não sentido Não é possível descrever a semântica de uma linguagem de forma tão simples como a sintaxe Na frase O rato come o gato a definição do aspecto semântico é complicado onde podemos assumir que esta frase não tem validade semântica devido ao fato de que a mesma tem um sentido pouco convencional em relação ao comportamento observado entre os gatos e os ratos No decorrer do desenvolvimento do nosso tempo formalizaremos uma linguagem com uma definição sintática que deverá ser respeitada e aceita como um padrão Os constructos desta linguagem terão uma única semântica para evitar textos ambíguos A sintaxe e a semântica de cada constructo serão apresentadas na medida em que formos evoluindo em nosso aprendizado 23 OBJETOS DE UM ALGORITMO Um algoritmo para fins computacionais é a descrição de ações que manipulam objetos previamente definidos em função do tempo Esses objetos descrevem em qualquer instante o estado computacional ditado pelo algoritmo ou seja todas as ações de um algoritmo devem ser direcionadas á objetos específicos os quais também deverão ser definidos como parte integrante do algoritmo Cada objeto deverá ter uma função específica dentro do mesmo algoritmo Assim sendo para representar estados diferentes deveremos utilizar objetos diferentes Vejamos um exemplo a b Solução 1 Podemos simplesmente escolher um objeto chamado área que representará o resultado da área da figura dessa forma poderíamos ter a seguinte descrição Dada a figura ao lado faça um algoritmo que calcule o valor área da mesma sabendo que os valores dos lados a e b valem respectivamente 3 e 5 CAPÍTULO 2 ALGORITMOS 34 objetos área início das ações calcule 3 X 5 e armazene o resultado no objeto área informe o valor armazenado no objeto área fim das ações Solução 2 Uma solução um pouco mais sofisticada seria utilizando todos os objetos fornecidos pelo próprio problema objetos a b área início das ações atribua o valor 3 ao objeto a atribua o valor 5 ao objeto b calcule o produto ab e armazene o resultado no objeto área informe o valor armazenado no objeto área fim das ações Solução 3 Os algoritmos descritos acima funcionam bem desde que sempre o utilizemos para calcular a área de um retângulo com valores de altura e base iguais a 3 e 5 respectivamente Assim sendo poderíamos pensar em descrever um algoritmo que funcione de uma forma mais genérica isto é podemos criar um algoritmo que não seja dependente dos valores iniciais de a e b objetos a b área início das ações conheça o valor da altura do retângulo e atribuao ao objeto a conheça o valor da base do retângulo e atribuao ao objeto b calcule o produto ab e armazene o resultado no objeto área informe o valor armazenado no objeto área fim das ações Na última solução apresentada utilizamos um valor hipotético para os objetos a e b Os valores reais destes objetos serão conhecidos somente em tempo de execução os quais deverão ser fornecidos pela pessoa que estiver executando o algoritmo Dessa forma não estamos preocupados com o valor do resultado que o algoritmo produzirá a nossa única preocupação será com a produção de resultados corretos pelo algoritmo Também não será preocupação nossa se a pessoa seguiu ou não corretamente as ações descritas no algoritmo desde que tenhamos utilizado uma sintaxe previamente padronizada para a nossa linguagem algorítmica CAPÍTULO 2 ALGORITMOS 35 24 ARGUMENTOS DE ENTRADA E DE SAÍDA Todos os valores de objetos que são conhecidos em tempo de execução do algoritmo são chamados de argumentos de entrada Os argumentos de entrada permitem que o algoritmo tenha um caráter mais genérico dentro do caráter específico do seu comportamento padrão Em outras palavras poderíamos dar o seguinte exemplo fazer um algoritmo que some dois números específicos como por exemplo 5 e 4 tem o mesmo comportamento padrão que o de somar 3 e 8 só que os resultados produzidos em cada um serão distintos 9 e 11 respectivamente e serão os únicos sempre que executarmos esses algoritmos Agora se fizermos um algoritmo que calcule a soma de dois números hipotéticos por exemplo x e y o algoritmo descreverá o mesmo comportamento padrão dos anteriores só que o resultado não será mais específico pois depende dos valores que serão atribuídos a x e a y Assim será possível executarmos este algoritmo várias vezes e produzir a cada vez um resultado diferente dos obtidos em execuções anteriores Nestes termos os valores de x e y são chamados de argumentos de entrada de um algoritmo que soma dois números hipotéticos Os objetos que armazenam a solução objetiva de um problema são chamados de argumentos de saída do algoritmo Por uma questão de comodidade representaremos o termo argumento de entrada por ae e o termo argumento de saída por as Vamos ver um outro exemplo utilizando as novas definições Faça um algoritmo que calcule a área de um triângulo retângulo sabendo que os valores de sua base e altura serão conhecidos oportunamente Solução Note que para resolver este problema não são dados os valores que necessitamos para efetuar tal cálculo logo devemos tratar os valores da base e da altura do triângulo retângulo como valores hipotéticos ou seja eles serão argumentos de entrada do nosso algoritmo O objetivo desse algoritmo é o de calcular a área de um triângulo retângulo Logo escolhemos o objeto área para ser o argumento de saída do nosso algoritmo ae base altura as área objetos base altura área início das ações Conheça o valor da altura do triângulo e o atribua ao objeto altura Conheça o valor da base do triângulo e o atribua ao objeto base Calcule a expressão alturabase2 e armazene o resultado no objeto área Informe o valor armazenado no objeto área CAPÍTULO 2 ALGORITMOS 36 fim das ações Para executar este algoritmo basta relacionar todos os objetos que ele utiliza executar as ações descritas uma a uma e na ordem cronológica em que elas foram descritas método do teste de mesa Exemplo Vamos supor que tenhamos um triângulo retângulo cuja altura e base valem 5 e 8 respectivamente 1º Passo criar os objetos necessários ao algoritmo base altura área 2 Passo executar a lª instrução do algoritmo base altura área 3 Passo executar a 2ª instrução do algoritmo base altura área 4 Passo executar a 3ª instrução do algoritmo base altura área 5 Passo executar a 4ª Instrução do algoritmo Resultado final 20 25 EXERCÍCIOS PROPOSTOS 1 Dada uma equação do 2º grau na forma ax2 bx c 0 responda as seguintes questões a Quais são os argumentos de entrada para se calcular as raízes reais dessa equação objetos base altura área Conheça o valor da altura do triângulo e o atribua ao objeto altura 5 Conheça o valor da base do triângulo e o atribua ao objeto base 5 8 Calcule a expressão alturabase2 e armazene o resultado no objeto área 5 8 20 Informe o valor armazenado no objeto área CAPÍTULO 2 ALGORITMOS 37 b Quais são os argumentos de saída sabendo que o objetivo é calcular as raízes reais da equação c Faça um algoritmo que calcule as raízes reais da equação dada Utilize objetos auxiliares caso julgue necessário mas não esqueça de discriminar todos os objetos que serão utilizados em seu algoritmo utilize o padrão do nosso último exemplo resolvido d Execute o algoritmo que você fez para resolver a equação 2x2 3x 2 0 2 Faça um algoritmo que calcule o diâmetro a área e a circunferência de um sabendo que o único dado disponível é o seu raio Diâmetro 2Raio Área PIRaio2 Circunferência 2PIRaio ALGORITMOS DISCRIMINAÇÃO E O PAPEL DO DIREITO Nome dos alunos Curso semestre turno Nome da universidade No documentário Coded Bias de Shalini Kantayya uma cientista negra se questiona o porquê do algoritmo de determinado computador não conseguir fazer o seu reconhecimento facial Quando ela passa a utilizar uma máscara branca o sistema é ativado Em evento recente a prefeitura de Belo Horizonte comprou um sistema de segurança com um algoritmo que utiliza diversos dados para identificar criminosos por meio das câmeras da cidade A prefeitura de Vitória fez um movimento similar e esses não são casos isolados entre as capitais do país Segundo Mendes e Mattiuzzo 20191 um algoritmo é comumente descrito como um conjunto de instruções organizadas de forma sequencial que determina como algo deve ser feito Alimentados por dados os algoritmos passam a ajudar no trabalho de tomada de decisões Os algoritmos são alimentados pelos dados que a sociedade produz E a sociedade brasileira por exemplo é marcadamente racista Portanto os dados que alimentam esse sistema podem orientar o algoritmo a inclinações erradas Ou seja a suposta neutralidade de um sistema informático é posta em xeque Pensando numa aplicação prática uma pessoa negra ao cruzar uma rua monitorada pode ser erroneamente confundida com um criminoso Até provar sua inocência terá sofrido mais uma violência racial e um enorme constrangimento Outra hipótese é a da vigilância constante isto é que o Estado sempre saiba onde estamos com quem estamos e o que estamos fazendo 1 MENDES Laura Schertel MATTIUZZO Marcela Discriminação algorítmica conceito fundamento legal e tipologia Direito Público v 16 n 90 2019 Perguntase por que os algoritmos são racistas A hipótese pode estar em quem os constrói homens brancos héteros e de classes sociais média ou alta são a maioria de funcionários deste setor segundo levantamento do coletivo Pretalab com a consultoria ThoughtWorks2 segundo reportagem da Uol Sendo assim algoritmos são moldados conforme a visão de mundo dessas pessoas Essa é uma razão possível para pessoas negras terem sido categorizadas como gorilas pelo Google algoritmo de análise de reincidência prejudica réus negros e até mesmo carros autônomos tem mais chance de atropelar pessoas negras de acordo levantamento feito por Tarcízio Silva3 Questionase como pode o direito coibir práticas tão discriminatórias e que violam direitos e garantias fundamentais o que pode ser feito por meio da governança algorítmica qualquer debate sobre discriminação algorítmica deve se centrar na seguinte ideia de que os valores que orientam a sociedade e o direito não podem ser deixados de lado quando falamos em automação e inteligência artificial afirmam Mendes e Mattiuzzo 2019 Dados abertos e conhecimento público sobre como funcionam esses sistemas são formas do direito e da sociedade civil avaliarem continuamente os algoritmos para tornálos o mais seguro possível Nesse sentido a transparência entre empresaEstado é fundamental 3 SILVA Tarcízio Linha do Tempo do Racismo Algorítmico Blog do Tarcízio Silva 2019 Disponível em httpstarciziosilvacombrblogpostsracismoalgoritmicolinhadotempo 2 CRUZ Bruna Souza Racismo Calculado Tilt Uol Disponível em httpswwwuolcombrtiltreportagensespeciaiscomoosalgoritmosespalhamracismo Publicado em 26 de janeiro de 2021 ALGORITMOS DISCRIMINAÇÃO E O PAPEL DO DIREITO Nome dos alunos Curso semestre turno Nome da universidade No documentário Coded Bias de Shalini Kantayya uma cientista negra se questiona o porquê do algoritmo de determinado computador não conseguir fazer o seu reconhecimento facial Quando ela passa a utilizar uma máscara branca o sistema é ativado Em evento recente a prefeitura de Belo Horizonte comprou um sistema de segurança com um algoritmo que utiliza diversos dados para identificar criminosos por meio das câmeras da cidade A prefeitura de Vitória fez um movimento similar e esses não são casos isolados entre as capitais do país Segundo Mendes e Mattiuzzo 20191 um algoritmo é comumente descrito como um conjunto de instruções organizadas de forma sequencial que determina como algo deve ser feito Alimentados por dados os algoritmos passam a ajudar no trabalho de tomada de decisões Os algoritmos são alimentados pelos dados que a sociedade produz E a sociedade brasileira por exemplo é marcadamente racista Portanto os dados que alimentam esse sistema podem orientar o algoritmo a inclinações erradas Ou seja a suposta neutralidade de um sistema informático é posta em xeque Pensando numa aplicação prática uma pessoa negra ao cruzar uma rua monitorada pode ser erroneamente confundida com um criminoso Até provar sua inocência terá sofrido mais uma violência racial e um enorme constrangimento Outra hipótese é a da vigilância constante isto é que o Estado sempre saiba onde estamos com quem estamos e o que estamos fazendo 1 MENDES Laura Schertel MATTIUZZO Marcela Discriminação algorítmica conceito fundamento legal e tipologia Direito Público v 16 n 90 2019 Perguntase por que os algoritmos são racistas A hipótese pode estar em quem os constrói homens brancos héteros e de classes sociais média ou alta são a maioria de funcionários deste setor segundo levantamento do coletivo Pretalab com a consultoria ThoughtWorks2 segundo reportagem da Uol Sendo assim algoritmos são moldados conforme a visão de mundo dessas pessoas Essa é uma razão possível para pessoas negras terem sido categorizadas como gorilas pelo Google algoritmo de análise de reincidência prejudica réus negros e até mesmo carros autônomos tem mais chance de atropelar pessoas negras de acordo levantamento feito por Tarcízio Silva3 Questionase como pode o direito coibir práticas tão discriminatórias e que violam direitos e garantias fundamentais o que pode ser feito por meio da governança algorítmica qualquer debate sobre discriminação algorítmica deve se centrar na seguinte ideia de que os valores que orientam a sociedade e o direito não podem ser deixados de lado quando falamos em automação e inteligência artificial afirmam Mendes e Mattiuzzo 2019 Dados abertos e conhecimento público sobre como funcionam esses sistemas são formas do direito e da sociedade civil avaliarem continuamente os algoritmos para tornálos o mais seguro possível Nesse sentido a transparência entre empresa Estado é fundamental 2 CRUZ Bruna Souza Racismo Calculado Tilt Uol Disponível em httpswwwuolcombrtiltreportagensespeciaiscomoosalgoritmosespalhamracismo Publicado em 26 de janeiro de 2021 3 SILVA Tarcízio Linha do Tempo do Racismo Algorítmico Blog do Tarcízio Silva 2019 Disponível em httpstarciziosilvacombrblogpostsracismoalgoritmicolinhadotempo
1
Introdução ao Estudo do Direito
UP
20
Introdução ao Estudo do Direito
UP
3
Introdução ao Estudo do Direito
FANEESP
418
Introdução ao Estudo do Direito
UEPG
18
Introdução ao Estudo do Direito
UNIPAR
4
Introdução ao Estudo do Direito
USJT
2
Introdução ao Estudo do Direito
PUC
230
Introdução ao Estudo do Direito
UNB
1
Introdução ao Estudo do Direito
UNISUL
2
Introdução ao Estudo do Direito
FACAPE
Texto de pré-visualização
CAPÍTULO 2 ALGORITMOS 21 INTRODUÇÃO Um algoritmo é uma redação que deve descrever de forma lógica e sem ambigüidades os passos ações a serem seguidos para se resolver um problema especifico que tenha um comportamento padrão em sua solução Note que o objetivo de um algoritmo é o de ensinar a resolver problemas e o nosso objetivo é o de construir algoritmos ou seja nós construiremos textos que ensinem a resolver problemas mas não estaremos preocupados com o resultado da solução do problema desde que o nosso algoritmo esteja correto Em suma diremos como se resolve o problema mas não daremos a solução Um dos exemplos clássicos deste fato são as receitas de bolos formas de algoritmos mais conhecidas Quando você adquire um livro de receitas de bolos em seu interior são descritos os passos a serem seguidos e ingredientes a serem usados por você para que seja possível obter o resultado final o bolo Nenhum livro de receitas traz o bolo pronto O aspecto lógico de um algoritmo se resume na organização seqüencial das ações pertinentes à solução de um problema específico ou seja só levaremos o bolo ao forno quando a massa do mesmo estiver pronta e não antes Mas a grande exigência da lógica se encontra nas tomadas de decisões e nos processos de repetição O aspecto ambigüidade está estreitamente ligado com a sintaxe e a semântica das linguagens naturais português inglês A ambigüidade ocorre quando existe mais de uma interpretação para o mesmo fato Veja como exemplo a seguinte frase O artista produz formas perfeitas Neste caso o artista produz fórmas ou fôrmas perfeitas Certa vez um amigo contou um caso interessante sobre ambigüidade A ambigüidade é um resultado da riqueza de construções das linguagens naturais Existem muitas formas de se expressar sobre um mesmo tema que às vezes sem querer acabamos escolhendo uma forma que nos leva à dupla interpretação CAPÍTULO 2 ALGORITMOS 31 Para evitar ambigüidades em nossos algoritmos reduziremos drasticamente as formas de construções de textos onde cada construção executará uma ação específica e somente ela Estas construções serão inseridas no decorrer deste trabalho Um algoritmo possui dois aspectos os quais precisamos distinguir com clareza o aspecto estático e o aspecto dinâmico O aspecto estático não depende do tempo mas sim do espaço físico por exemplo folha de papel e onde está sendo desenvolvido o algoritmo O aspecto dinâmico seria as ações que um algoritmo provoca nos projetos nele relacionados com o passar do tempo Ou seja como se comporta a execução de cada ação de um algoritmo com o passar do tempo Note que no aspecto estático estamos preocupados em descrever um algoritmo e no dinâmico já estamos com o algoritmo pronto só que em fase de execução das ações nele descritas Para um algoritmo ser correto todas as possíveis execuções do mesmo devem produzir resultados corretos além do que ele deve ser finito no seu aspecto estático e no seu aspecto dinâmico A finitude estática se deve ao fato do grau de detalhamento de um algoritmo associado ao bom uso de suas estruturas de controle Ou seja poderíamos nos delongar o quanto quiséssemos no detalhamento de um dado evento mas o ideal seria analisar até onde é necessário detalhar o evento Por exemplo suponha que seu carro esteja falhando você o leva no mecânico e simplesmente diz O meu carro está falhando conserteo O mecânico tomará as providências necessárias para consertar o seu carro Agora vamos supor que você leve o seu carro para um aprendiz de mecânico de automóvel você terá que supervisionar o trabalho do pupilo informandoo das ações que ele deverá executar 1 verificar velas e distribuidor 2 limpar carburador e giclês 3 verificar platinado 4 verificar partes elétricas relacionadas com o motor 5 verificar se o combustível não foi adulterado Estamos supondo que o aprendiz sabe como executar essas tarefas ele só não sabe diagnosticar o defeito Agora imagine se tivéssemos que ensinar um leigo que nem sequer viu um motor de carro e não tem habilidade com ferramentas para consertar o carro O nosso grau de detalhamento teria que ser tão grande que correríamos o risco de nos perder em nossos próprios detalhes E onde deveríamos parar o detalhamento Note que se o nosso detalhamento for minucioso poderíamos cair num processo infinito tentando explicar os detalhes do detalhe CAPÍTULO 2 ALGORITMOS 32 A finitude dinâmica é mais fácil de entender Execute o algoritmo a seguir escolha um número inteiro entre 1 e 9 enquanto o número que você escolheu for ímpar faça cante daqui eu não saio daqui ninguém me tira Note que se o número que você escolheu for par você não cantará nenhuma vez o refrão Agora se o número for ímpar você nunca mais irá parar de cantálo pois a instrução diz enquanto o número for ímpar cante e após a escolha do número não existe mais possibilidade de alterálo logo estaríamos com um algoritmo estaticamente finito mas dinamicamente infinito em uma de suas possibilidades Já no exemplo a seguir mesmo que sua primeira escolha seja um número ímpar ainda existe a possibilidade de você sair da execução da estrutura enquanto pois para cada vez que você cantar o refrão é aberta a possibilidade de escolha de um novo número o qual poderá ser ímpar você continuará contando ou par o que provocará o abandono da estrutura enquanto escolha um numero inteiro entre 1 e 9 enquanto o número que você escolheu for ímpar faça cante daqui eu não saio daqui ninguém me tira escolha um outro número inteiro entre 1 e 9 22 SINTAXE X SEMÂNTICA As linguagens possuem como único objetivo prover uma forma de comunicação No caso das linguagens naturais inglês português esse objetivo é a comunicação homem homem No caso das linguagens computacionais Pascal Fortran C o objetivo é a comunicação homemcomputador Independente da natureza da linguagem elas devem possuir dois atributos a sintaxe e a semântica A sintaxe dita as regras de como as frases e cada um dos seus termos devem ser construídas corretamente verbo objeto sujeito predicado artigo Já a semântica se preocupa com o significado da frase construída Podemos construir frases sintaticamente corretas mas sem uma semântica definida e da mesma forma podemos construir frases sintaticamente incorretas mas com uma semântica definida Exemplos Frase com sintaxe correta Descoloridas idéias verdes sonham furiosamente Chomsky Frase com semântica definida Nóis foi mas já vortemo CAPÍTULO 2 ALGORITMOS 33 A sintaxe de uma linguagem não permite uma definição completada mesma Ela permite somente escrever frases corretas nesta linguagem Por exemplo O gato come o rato O rato come o gato São frases sintaticamente corretas na nossa linguagem Mas essas frases têm sentido Isto não pode ser definido pela sintaxe mas sim pela semântica da linguagem A semântica de uma linguagem pode ser definida como sendo um conjunto de regras que permite dizer se uma frase sintaticamente correta tem ou não sentido Não é possível descrever a semântica de uma linguagem de forma tão simples como a sintaxe Na frase O rato come o gato a definição do aspecto semântico é complicado onde podemos assumir que esta frase não tem validade semântica devido ao fato de que a mesma tem um sentido pouco convencional em relação ao comportamento observado entre os gatos e os ratos No decorrer do desenvolvimento do nosso tempo formalizaremos uma linguagem com uma definição sintática que deverá ser respeitada e aceita como um padrão Os constructos desta linguagem terão uma única semântica para evitar textos ambíguos A sintaxe e a semântica de cada constructo serão apresentadas na medida em que formos evoluindo em nosso aprendizado 23 OBJETOS DE UM ALGORITMO Um algoritmo para fins computacionais é a descrição de ações que manipulam objetos previamente definidos em função do tempo Esses objetos descrevem em qualquer instante o estado computacional ditado pelo algoritmo ou seja todas as ações de um algoritmo devem ser direcionadas á objetos específicos os quais também deverão ser definidos como parte integrante do algoritmo Cada objeto deverá ter uma função específica dentro do mesmo algoritmo Assim sendo para representar estados diferentes deveremos utilizar objetos diferentes Vejamos um exemplo a b Solução 1 Podemos simplesmente escolher um objeto chamado área que representará o resultado da área da figura dessa forma poderíamos ter a seguinte descrição Dada a figura ao lado faça um algoritmo que calcule o valor área da mesma sabendo que os valores dos lados a e b valem respectivamente 3 e 5 CAPÍTULO 2 ALGORITMOS 34 objetos área início das ações calcule 3 X 5 e armazene o resultado no objeto área informe o valor armazenado no objeto área fim das ações Solução 2 Uma solução um pouco mais sofisticada seria utilizando todos os objetos fornecidos pelo próprio problema objetos a b área início das ações atribua o valor 3 ao objeto a atribua o valor 5 ao objeto b calcule o produto ab e armazene o resultado no objeto área informe o valor armazenado no objeto área fim das ações Solução 3 Os algoritmos descritos acima funcionam bem desde que sempre o utilizemos para calcular a área de um retângulo com valores de altura e base iguais a 3 e 5 respectivamente Assim sendo poderíamos pensar em descrever um algoritmo que funcione de uma forma mais genérica isto é podemos criar um algoritmo que não seja dependente dos valores iniciais de a e b objetos a b área início das ações conheça o valor da altura do retângulo e atribuao ao objeto a conheça o valor da base do retângulo e atribuao ao objeto b calcule o produto ab e armazene o resultado no objeto área informe o valor armazenado no objeto área fim das ações Na última solução apresentada utilizamos um valor hipotético para os objetos a e b Os valores reais destes objetos serão conhecidos somente em tempo de execução os quais deverão ser fornecidos pela pessoa que estiver executando o algoritmo Dessa forma não estamos preocupados com o valor do resultado que o algoritmo produzirá a nossa única preocupação será com a produção de resultados corretos pelo algoritmo Também não será preocupação nossa se a pessoa seguiu ou não corretamente as ações descritas no algoritmo desde que tenhamos utilizado uma sintaxe previamente padronizada para a nossa linguagem algorítmica CAPÍTULO 2 ALGORITMOS 35 24 ARGUMENTOS DE ENTRADA E DE SAÍDA Todos os valores de objetos que são conhecidos em tempo de execução do algoritmo são chamados de argumentos de entrada Os argumentos de entrada permitem que o algoritmo tenha um caráter mais genérico dentro do caráter específico do seu comportamento padrão Em outras palavras poderíamos dar o seguinte exemplo fazer um algoritmo que some dois números específicos como por exemplo 5 e 4 tem o mesmo comportamento padrão que o de somar 3 e 8 só que os resultados produzidos em cada um serão distintos 9 e 11 respectivamente e serão os únicos sempre que executarmos esses algoritmos Agora se fizermos um algoritmo que calcule a soma de dois números hipotéticos por exemplo x e y o algoritmo descreverá o mesmo comportamento padrão dos anteriores só que o resultado não será mais específico pois depende dos valores que serão atribuídos a x e a y Assim será possível executarmos este algoritmo várias vezes e produzir a cada vez um resultado diferente dos obtidos em execuções anteriores Nestes termos os valores de x e y são chamados de argumentos de entrada de um algoritmo que soma dois números hipotéticos Os objetos que armazenam a solução objetiva de um problema são chamados de argumentos de saída do algoritmo Por uma questão de comodidade representaremos o termo argumento de entrada por ae e o termo argumento de saída por as Vamos ver um outro exemplo utilizando as novas definições Faça um algoritmo que calcule a área de um triângulo retângulo sabendo que os valores de sua base e altura serão conhecidos oportunamente Solução Note que para resolver este problema não são dados os valores que necessitamos para efetuar tal cálculo logo devemos tratar os valores da base e da altura do triângulo retângulo como valores hipotéticos ou seja eles serão argumentos de entrada do nosso algoritmo O objetivo desse algoritmo é o de calcular a área de um triângulo retângulo Logo escolhemos o objeto área para ser o argumento de saída do nosso algoritmo ae base altura as área objetos base altura área início das ações Conheça o valor da altura do triângulo e o atribua ao objeto altura Conheça o valor da base do triângulo e o atribua ao objeto base Calcule a expressão alturabase2 e armazene o resultado no objeto área Informe o valor armazenado no objeto área CAPÍTULO 2 ALGORITMOS 36 fim das ações Para executar este algoritmo basta relacionar todos os objetos que ele utiliza executar as ações descritas uma a uma e na ordem cronológica em que elas foram descritas método do teste de mesa Exemplo Vamos supor que tenhamos um triângulo retângulo cuja altura e base valem 5 e 8 respectivamente 1º Passo criar os objetos necessários ao algoritmo base altura área 2 Passo executar a lª instrução do algoritmo base altura área 3 Passo executar a 2ª instrução do algoritmo base altura área 4 Passo executar a 3ª instrução do algoritmo base altura área 5 Passo executar a 4ª Instrução do algoritmo Resultado final 20 25 EXERCÍCIOS PROPOSTOS 1 Dada uma equação do 2º grau na forma ax2 bx c 0 responda as seguintes questões a Quais são os argumentos de entrada para se calcular as raízes reais dessa equação objetos base altura área Conheça o valor da altura do triângulo e o atribua ao objeto altura 5 Conheça o valor da base do triângulo e o atribua ao objeto base 5 8 Calcule a expressão alturabase2 e armazene o resultado no objeto área 5 8 20 Informe o valor armazenado no objeto área CAPÍTULO 2 ALGORITMOS 37 b Quais são os argumentos de saída sabendo que o objetivo é calcular as raízes reais da equação c Faça um algoritmo que calcule as raízes reais da equação dada Utilize objetos auxiliares caso julgue necessário mas não esqueça de discriminar todos os objetos que serão utilizados em seu algoritmo utilize o padrão do nosso último exemplo resolvido d Execute o algoritmo que você fez para resolver a equação 2x2 3x 2 0 2 Faça um algoritmo que calcule o diâmetro a área e a circunferência de um sabendo que o único dado disponível é o seu raio Diâmetro 2Raio Área PIRaio2 Circunferência 2PIRaio ALGORITMOS DISCRIMINAÇÃO E O PAPEL DO DIREITO Nome dos alunos Curso semestre turno Nome da universidade No documentário Coded Bias de Shalini Kantayya uma cientista negra se questiona o porquê do algoritmo de determinado computador não conseguir fazer o seu reconhecimento facial Quando ela passa a utilizar uma máscara branca o sistema é ativado Em evento recente a prefeitura de Belo Horizonte comprou um sistema de segurança com um algoritmo que utiliza diversos dados para identificar criminosos por meio das câmeras da cidade A prefeitura de Vitória fez um movimento similar e esses não são casos isolados entre as capitais do país Segundo Mendes e Mattiuzzo 20191 um algoritmo é comumente descrito como um conjunto de instruções organizadas de forma sequencial que determina como algo deve ser feito Alimentados por dados os algoritmos passam a ajudar no trabalho de tomada de decisões Os algoritmos são alimentados pelos dados que a sociedade produz E a sociedade brasileira por exemplo é marcadamente racista Portanto os dados que alimentam esse sistema podem orientar o algoritmo a inclinações erradas Ou seja a suposta neutralidade de um sistema informático é posta em xeque Pensando numa aplicação prática uma pessoa negra ao cruzar uma rua monitorada pode ser erroneamente confundida com um criminoso Até provar sua inocência terá sofrido mais uma violência racial e um enorme constrangimento Outra hipótese é a da vigilância constante isto é que o Estado sempre saiba onde estamos com quem estamos e o que estamos fazendo 1 MENDES Laura Schertel MATTIUZZO Marcela Discriminação algorítmica conceito fundamento legal e tipologia Direito Público v 16 n 90 2019 Perguntase por que os algoritmos são racistas A hipótese pode estar em quem os constrói homens brancos héteros e de classes sociais média ou alta são a maioria de funcionários deste setor segundo levantamento do coletivo Pretalab com a consultoria ThoughtWorks2 segundo reportagem da Uol Sendo assim algoritmos são moldados conforme a visão de mundo dessas pessoas Essa é uma razão possível para pessoas negras terem sido categorizadas como gorilas pelo Google algoritmo de análise de reincidência prejudica réus negros e até mesmo carros autônomos tem mais chance de atropelar pessoas negras de acordo levantamento feito por Tarcízio Silva3 Questionase como pode o direito coibir práticas tão discriminatórias e que violam direitos e garantias fundamentais o que pode ser feito por meio da governança algorítmica qualquer debate sobre discriminação algorítmica deve se centrar na seguinte ideia de que os valores que orientam a sociedade e o direito não podem ser deixados de lado quando falamos em automação e inteligência artificial afirmam Mendes e Mattiuzzo 2019 Dados abertos e conhecimento público sobre como funcionam esses sistemas são formas do direito e da sociedade civil avaliarem continuamente os algoritmos para tornálos o mais seguro possível Nesse sentido a transparência entre empresaEstado é fundamental 3 SILVA Tarcízio Linha do Tempo do Racismo Algorítmico Blog do Tarcízio Silva 2019 Disponível em httpstarciziosilvacombrblogpostsracismoalgoritmicolinhadotempo 2 CRUZ Bruna Souza Racismo Calculado Tilt Uol Disponível em httpswwwuolcombrtiltreportagensespeciaiscomoosalgoritmosespalhamracismo Publicado em 26 de janeiro de 2021 ALGORITMOS DISCRIMINAÇÃO E O PAPEL DO DIREITO Nome dos alunos Curso semestre turno Nome da universidade No documentário Coded Bias de Shalini Kantayya uma cientista negra se questiona o porquê do algoritmo de determinado computador não conseguir fazer o seu reconhecimento facial Quando ela passa a utilizar uma máscara branca o sistema é ativado Em evento recente a prefeitura de Belo Horizonte comprou um sistema de segurança com um algoritmo que utiliza diversos dados para identificar criminosos por meio das câmeras da cidade A prefeitura de Vitória fez um movimento similar e esses não são casos isolados entre as capitais do país Segundo Mendes e Mattiuzzo 20191 um algoritmo é comumente descrito como um conjunto de instruções organizadas de forma sequencial que determina como algo deve ser feito Alimentados por dados os algoritmos passam a ajudar no trabalho de tomada de decisões Os algoritmos são alimentados pelos dados que a sociedade produz E a sociedade brasileira por exemplo é marcadamente racista Portanto os dados que alimentam esse sistema podem orientar o algoritmo a inclinações erradas Ou seja a suposta neutralidade de um sistema informático é posta em xeque Pensando numa aplicação prática uma pessoa negra ao cruzar uma rua monitorada pode ser erroneamente confundida com um criminoso Até provar sua inocência terá sofrido mais uma violência racial e um enorme constrangimento Outra hipótese é a da vigilância constante isto é que o Estado sempre saiba onde estamos com quem estamos e o que estamos fazendo 1 MENDES Laura Schertel MATTIUZZO Marcela Discriminação algorítmica conceito fundamento legal e tipologia Direito Público v 16 n 90 2019 Perguntase por que os algoritmos são racistas A hipótese pode estar em quem os constrói homens brancos héteros e de classes sociais média ou alta são a maioria de funcionários deste setor segundo levantamento do coletivo Pretalab com a consultoria ThoughtWorks2 segundo reportagem da Uol Sendo assim algoritmos são moldados conforme a visão de mundo dessas pessoas Essa é uma razão possível para pessoas negras terem sido categorizadas como gorilas pelo Google algoritmo de análise de reincidência prejudica réus negros e até mesmo carros autônomos tem mais chance de atropelar pessoas negras de acordo levantamento feito por Tarcízio Silva3 Questionase como pode o direito coibir práticas tão discriminatórias e que violam direitos e garantias fundamentais o que pode ser feito por meio da governança algorítmica qualquer debate sobre discriminação algorítmica deve se centrar na seguinte ideia de que os valores que orientam a sociedade e o direito não podem ser deixados de lado quando falamos em automação e inteligência artificial afirmam Mendes e Mattiuzzo 2019 Dados abertos e conhecimento público sobre como funcionam esses sistemas são formas do direito e da sociedade civil avaliarem continuamente os algoritmos para tornálos o mais seguro possível Nesse sentido a transparência entre empresa Estado é fundamental 2 CRUZ Bruna Souza Racismo Calculado Tilt Uol Disponível em httpswwwuolcombrtiltreportagensespeciaiscomoosalgoritmosespalhamracismo Publicado em 26 de janeiro de 2021 3 SILVA Tarcízio Linha do Tempo do Racismo Algorítmico Blog do Tarcízio Silva 2019 Disponível em httpstarciziosilvacombrblogpostsracismoalgoritmicolinhadotempo