1. Programas

Programas são algoritmos, ou seja, instruções que orientam a execução de uma tarefa. Você pode definir esses algoritmos a partir de concatenações de verbos e objetos:

  1. Abra no STF as páginas das ADIs de 5000 a 6000.
  2. Para cada ADI, armazene todas as informações contidas na página em uma variável string.
  3. Exclua dessa string os elementos que não são informações sobre a ADI (mas que definem a formatação da página, por exemplo).
  4. Leia as informações e identifique nela alguns atributos da ADI (numero do processo, relator, requerente e os outros que forem relevantes)
  5. Grave essa informações em um arquivo.

Esse conjunto de orientações pode ser suficiente quando passadas a um ser humano, que vai receber essas instruções genéricas e vai complementá-las a partir de sua experiência, que lhe dirá:

  1. que páginas devem especificamente ser abertas?
  2. quais são as informações relevantes?
  3. qual o nome do arquivo que deve ser gravado?

Ocorre que os computadores não têm essa propensão a preencher as lacunas de instruções vagas. No caso dos humanos, essa capacidade é uma virtude, pois torna possível executar ações coordenadas a partir de instruções relativamente simples, que serão interpretadas de forma adequada por uma pessoa com conhecimentos e habilidades adequadas.

Durante milênios, a melhor forma de realizar atividades complexas foi ensinar determinadas pessoas a realizar atividades a partir de uma longa experiência: guiar navios, plantar batatas, curar doenças, realizar partos. O profissional experiente toma decisões a cada momento, e sua vivência anterior lhe permite tomar boas decisões, de forma relativamente intuitiva.

Os auxiliares desses profissionais sempre devem ter sido capazes de seguir instruções, mas quanto mais experiente eles se tornam, mais as instruções podem ser lacônicas, mais espaço pode ser deixado à própria discricionariedade do agente.

Os computadores não são assim (ao menos ainda). Eles são rápidos para fazer cálculos, para buscar informações, para gravá-las. Mas eles precisam de instruções absolutamente precisas, que não deixem nada para a sua discricionariedade. Não basta que eles tenham algoritmos (no sentido de instruções), pois eles precisam de programas de computação: algoritmos escritos em uma linguagem que permite a sua execução computadorizada.

O desenvolvimento do machine learning e da inteligência artificial vai mudando esse panorama aos poucos, na medida em que desenvolvemos algoritmos que permitem que certas funções complexas sejam executadas sem uma definição precisa do que deve ser feito. Porém, a maior parte do que os computadores fazem ainda é seguir, de modo rápido e preciso, as instruções que você dá a ele.

Por isso, o desenvolvimento de um pensamento computacional está ligado à competência de dar instruções claras, definindo exatamente o que deve ser feito. Python é uma linguagem na qual você pode desenvolver instruções complexas, mas que devem ser completas e precisas, para que possam ser executadas.

Não adianta dizer para o computador buscar os dados de todas as ADIs. Talvez não demore tanto o dia em que você possa fazer esse comando para uma Inteligência Artificial e ela consiga te fazer perguntas que vão possibilitar um desenvolvimento automático dos códigos. Mas, atualmente, esse tipo de coisa ainda faz parte da ficção científica.

Por isso, você precisa aprender uma linguagem na qual você possa dar instruções  precisas, sem ambiguidades. Somente vai valer a pena criar códigos que serão executados centenas, milhares de vezes: buscar dezenas de milhares de  processos, analisar centenas de decisões, catalogar milhares de votos.

2. O que é Python?

Qualquer curso de introdução a programação normalmente começa pela escolha de uma linguagem. Neste curso, usaremos Python. Python é uma linguagem de alto nível criada por Guido Van Rossum em 1989. É usada profissionalmente em diversas aplicações: web design, machine learning, computação científica, desenvolvimento de jogos, ciência de dados, etc. Python é extremamente popular e tem diversos pacotes e bibliotecas prontas para uso.

Por linguagem de alto nível, queremos dizer que Python possui maior grau de abstração em relação ao computador, e está mais próximo da linguagem natural. Veja a figura:

Esquema simplificado das camadas de abstração de um programa de computador

Linguagens de alto nível são normalmente mais fáceis de ler e escrever, mas são menos eficientes. Contudo, Python é mais do que rápido o suficiente para nossos propósitos.

3. Por que Python?

Se você tem algum interesse em ciência de dados, e sabemos que tem, já que se inscreveu neste curso optativo, provavelmente já ouviu falar na linguagem R. Python e R são duas das linguagens mais populares em ciência de dados (há também outras, como Julia e MATLAB).

Fonte: https://www.datacamp.com/community/tutorials/r-or-python-for-data-analysis

Por que escolhemos Python e não R? Certamente não há nada de errado com R. Para a maior partes das tarefas, em verdade, é possível usar uma ou outra. Contudo, pensamos que Python possui algumas vantagens:

  1. Python tem maior suporte para web scraping, uma atividade de bastante relevância para advogados interessados em programação.
  2. Python possui mais pacotes.
  3. É, discutivelmente, uma linguagem mais fácil de aprender. É usada como primeira linguagem em vários cursos de introdução à programação (USP, Stanford, MIT).
  4. É a linguagem mais usada para aprendizado de máquinas e computação científica.

3. Instalação do Python via Anaconda

Para instalar o Python, você pode entrar na própria página https://www.python.org/, onde é possível fazer o download da última versão disponível para o seu sistema operacional. Este é um programa gratuito e ele é suficiente para que você possa executar programas escritos na linguagem Python, que são reconhecidos pela extensão '.py', que é a marca distintiva desses programas.

Uma vez instalado o Python, você pode instalar todas as bibliotecas que te interessarem, por meio do sistema pip, que é um sistema de instalação de pacotes para Python (Package Installer for Python), que pode instalar qualquer um dos quase 300.000 projetos que existem no repositório do Python Package Index (PyPI).

Em vez de fazer essa instalação do Python e depois instalar individualmente os pacotes que você desejar, optamos por instalar a Plataforma Anaconda, que contém vários conjuntos de programas (packages) em Python e R, voltados a data science. Como a Anaconda já contém muitos dos pacotes que você desejaria instalar, ela poupa esse trabalho individual de instalação do programa básico e das bibliotecas de Python.

Além disso, a Anaconda oferece a IDE que utilizaremos neste curso. A instalação é simples, mas, se necessário, você pode seguir o vídeo que fizemos com um Tutorial de Instalação da Biblioteca Anaconda.

4. IDEs

Preciso de algum programa especial para programar em Python?

Precisar, você não precisa. Você não precisa de um processador de texto para escrever um livro, já que você pode escrever qualquer coisa no bloco de notas do seu computador.

Com Python ocorre a mesma coisa. Você pode escrever programas usando o bloco de notas, que é um instrumento capaz de inserir todos os caracteres que formam os comandos do Python. Desde que você tenha o Python instalado no seu computador (diretamente, ou via Anaconda), você só precisa inserir a extensão .py no seu arquivo para que ele entendido como um programa em Python.

Porém, a sua vida será muito mais fácil se você usar uma espécie de editor de programas: uma plataforma que oferece funcionalidades que facilitam (e muito) a escrita dos seus códigos: exibição que diferencia os tipos de expressões, identação automática, ferramentas para corrigir erros, ferramentas para acompanhar os valores das variáveis.

Na plataforma Anaconda, estão presentes os ambientes de desenvolvimento PyCharm e o Spyder, que são ambos excelentes. Escolhemos utilizar o Spyder porque ele é um programa mais leve e é open source.

As aulas futuras serão gravadas no ambiente Spyder, que tem o seguinte formato, com o qual logo você vai se acostumar.

Anatomia do Spyder

Para comprender como funciona essa ferramenta, assista ao tutorial Introdução ao Spyder.