OpenLLM-France/wikimedia huggingface dataset:
# Curso Livre de Segurança de Sistemas

Início Inscrição Contato
* Apresentação
* O Curso Livre de Segurança de Sistemas é uma iniciativa do professor Leonardo Medeiros, do Instituto Federal Catarinense (IFC) - Campus Videira. O objetivo do curso é oferecer uma formação básica para profissionais e estudantes de computação, além dos demais interessados no campo de segurança de sistemas.
* O conteúdo do curso abarca a formação obrigatória do Plano Pedagógico de "Ciência da Computação", do próprio IFC. Note, contudo, que para o reconhecimento da realização deste curso pelos professores responsáveis, são obrigatórias a inscrição e a realização das atividades propostas.
* Para a realização do curso, foi desenvolvido um conjunto de módulos ditos de "Curso Online Aberto e Massivo" (mais conhecidos pela sigla "MOOC") nesta plataforma livre que é a Wikiversidade. Tal escolha garante a colaboração ativa de pessoas interessadas no conteúdo. Assim, para que se tenha proveito pleno do curso, é importante estar autenticado na Wikiversidade, o que permitirá que suas tarefas e dúvidas sejam devidamente registradas sob um mesmo usuário. Para tanto, siga as instruções apresentadas nos três passos abaixo.
* 1.
* Certifique-se de estar logado
* Caso ainda não tenha uma conta de usuário, clique aqui. Caso já tenha uma conta e apenas esteja momentaneamente deslogado, clique aqui para efetuar seu login. Caso já tenha uma conta de usuário e já esteja devidamente logado, basta seguir para o passo 2.
* 2.
* Faça sua inscrição
* Uma vez devidamente logado com sua própria conta de usuário, basta então efetuar sua inscrição clicando aqui.
* 3.
* Inicie o curso
* Depois de ter efetuado sua inscrição no passo anterior, você estará apto a dar início ao curso acessado a página de apresentação dos módulos que compõem o Curso Livre de Segurança de Sistemas! Acesse a pagina dos módulos clicando aqui.
# Curso Livre de Redes de Computadores I/Sumário

O Curso Livre de Redes de Computadores I foi inicialmente dividido em dez módulos, muito embora novos módulos possam ser adicionados em novas versões e revisões do curso.
# Introdução ao Jornalismo Científico/Ética da Ciência/Atividade/Capeleto1987
## Nome da atividade

Esta tarefa é realizada para cumprimento do módulo 3 do curso de Introdução ao Jornalismo Científico. Tome cuidado de estar logado na Wikiversidade. Se não estiver logado, não será possível verificar o trabalho.

## Atividade

Um dos principais desafios da prática do jornalismo científico é entrevistar cientistas sobre seu trabalho, isto porque é ao mesmo tempo necessário introduzir e aprofundar os temas abordados. Nesta tarefa, você deverá entrevistar um pesquisador ou uma pesquisadora sobre Ética da Ciência e sobre questões éticas específicas relacionadas a seu trabalho.
Para a entrevista, é preciso pesquisar de antemão a produção da/do cientista selecionada/a. Procure seu trabalhos em bases de dados de publicações científicas, como o Google Acadêmico, e leia-os antes da conversa.
Prepare então um roteiro de perguntas, pensando-o com base na pauta sobre ética proposta nesta tarefa. Há vários manuais sobre como fazer boas entrevistas, um material que pode ser é útil é Um guia para aprimorar a arte da entrevista, de Natália Mazotte.
É indispensável que o/a entrevistado/a assine e lhe envie um termo de cessão de direitos, tal qual o deste modelo.
A entrevista, em formato de vídeo ou áudio, deve ter no máximo 7 minutos. Uma vez a entrevista realizada, edite o material, por exemplo melhorando o som, inserindo uma vinheta com o título e o nome da pessoa entrevista e cortando trechos desnecessários.
Considere os aspectos técnicos, como iluminação e som, na momento de produção e informe sua fonte que o material será disponibilizado em licença livre. Também é necessário publicar a entrevista transcrita.
A entrevista será disponibilizada no repositório Wikimedia Commons.

## Nome de usuário(a)

Capeleto1987

## Transcrição

Nesta seção, você deverá publicar a transcrição da entrevista realizada. Esteja logado. Também dê acesso ao termo de cessão de direitos assinado, numa pasta de acesso restrito, mas liberada para o email comunicacao@numec.prp.usp.br
SUBSTITUA ESTA MENSAGEM PELO TEXTO
* Link para o termo de cessão:

## Carregamento de entrevista

Para esta etapa, você precisará carregar o áudio ou o vídeo no Wikimedia Commons e publicá-lo aqui na Wikiversidade. Necessariamente o arquivo de vocês deverá estar num formato livre. Os vídeos abaixo servem de instrução para carregar conteúdos no Wikimedia Commons. Esteja logado.
* Como carregar no Wikimedia Commons.
* Como usar mídias do Wikimedia Commons.
SUBSTITUA ESTA MENSAGEM PELA MÍDIA
# Introdução ao Jornalismo Científico

Início Inscrição Contato
# Introdução à Programação com o UCB Logo/Mensagens de Erros

Ao utilizar instruções pré-definidas, como forward ou left, não ocorre nenhum problema. O que acontece se utilizarmos uma instrução que não está definida, por exemplo scream (gritar)?
A mensagem recebida após dar o comando scream foi I don't know how to scream (eu não sei gritar). Esta é uma mensagem de erro do Logo. Outro tipo de mensagem de erro é quando utilizamos um comando que requer alguma informação extra e esta informação não é passada ao interpretador. Por exemplo:
A mensagem de error retornada foi not enough inputs to left (entradas insuficientes para esquerda), ou seja, o comando left necessita de algum parâmetro para que seja corretamente interpretado e este parâmetro não foi fornecido.
# Introdução à Programação com o UCB Logo/Predicados Numéricos

Você já deve ter percebido que estamos dando passos cada vez maiores no conhecimento desta linguagem de programação. Agora vamos ver alguns operadores relacionais.

## Menor que

retorna TRUE (verdadeiro) se a primeira entrada for menor que a segunda.

## Maior que

retorna TRUE (verdadeiro) se a primeira entrada for maior que a segunda.

## Menor ou igual

retorna TRUE (verdadeiro) se a primeira entrada for menor ou igual a segunda.

## Maior ou igual

retorna TRUE (verdadeiro) se a primeira entrada for maior ou igual a segunda.
# Introdução à Programação com o UCB Logo/Instruções

O interpretador Logo é um programa que permite dar instruções a uma tartaruga e ver os resultados. Você pode dar uma única instrução ou juntar várias instruções, salvá-las como um programa e rodá-lo.
Ao iniciar o interpretador Logo aparecá uma tela em branco com um interrogação (?), que é chamada de prompt. Esta é a maneira que a maioria dos programas de computadores mostram que estão prontos para receber comandos. A linha underscore (_) próxima à interrogação é chamada cursor. O cursor mostra onde as letras, números e espaços aparecem na tela quando você os digita.
Vamos testar algumas instruções para ver seu efeito sobre a tartaruga. Escreva o seguinte comando
Este comando diz à tartaruga que ela deve andar 50 passos à frente. Caso você precise corrigir a digitação, use a tecla backspace para apagar o último caracter digitado. Após digitar o comando, aperte a tecla Enter para executá-lo e verá que a tartaruga responde ao seu comando.
Digite agora a instrução
Este comando fará com que a tartaruga vire 90 graus para a esquerda.
Note que, se você trocar o número que vem em seguida ao comando, a tartaruga responderá de forma diferente. Por exemplo, se você utilizar o comando
A tartaruga irá mover duas vezes mais do que no caso anterior.
Você pode digitar os comandos em sequência para obter o resultado desejado. Se você digitar os seguintes comandos:
verá que a tartaruga desenhará um quadrado de lado 100.
# Introdução à Programação com o UCB Logo/Salvar e Executar programas

Nas sessões anteriores você criou e ensinou ao Logo alguns novos procedimentos como, por exemplo, o procedimento para desenhar um quadrado. Se você deixar o Logo, na próxima vez que abri-lo, ele não mais se lembrará do procedimento quadrado. Você teria que digitar novamente o código do procedimento para mais uma vez defini-lo.
Existe uma maneira de evitar este aborrecimento. Você pode salvar os procedimentos que você havia definido e depois, ao entrar novamente no Logo, você pode carregá-los e assim poupar trabalho. Vejamos como fazer isto.

## Salvando os Procedimentos

Vamos supor que você definiu dois procedimentos quadrado e triangulo conforme abaixo
Agora você pode usar a função save para salvar os procedimentos que você definiu. Como parâmetro, você deverá passar o nome do arquivo no qual serão salvas as definições.
O nome do arquivo pode ser qualquer um, desde que não contenha espaço, nem caracteres especiais. A extensão do arquivo também é livre. Escolhemos no exemplo acima salvar o arquivo com extensão .txt, desta forma podemos facilmente abri-lo num bloco de notas. Faça isso então e verifique o conteúdo do arquivo.

## Carregando os Procedimentos

Agora que você já salvou seu procedimentos em um arquivo, podemos carregá-los. Para testar, saia do Logo e entre novamente. Você verá que os procedimentos quadrado e triangulo não estão definidos (tente usá-los para verificar). Utilize agora o comando load para carregar os procedimentos que você salvou no arquivo meus_procedimentos.txt. Basta fazer
e agora você acaba de carregar os procedimentos definidos no seu arquivo meus_procedimentos.txt.
Isto sugere que podemos criar e editar nossos procedimentos em um arquivo texto e depois simplesmente carregá-los no Logo, desta forma teremos sempre salvo os procedimentos que estamos criando.
Note que, se você definir no seu arquivo texto mais de uma vez o mesmo procedimento, o último deles é que ficará na memória. Não faz sentido definir duas vezes o mesmo procedimento, mas este deslize pode acontecer quando você tiver uma coleção bem grande de procedimentos.

## Executando os Procedimentos

Após carregar os procedimento do seu arquivo texto, eles estarão disponíveis para serem utilizados. Teste!
Caso você queria ver passa-a-passo a execução de um programa, você pode usar o comando step. Por exemplo,
Após digitar as linhas acima, o procedimento quadrado ficará marcado como um procedimento que deve ser executado passo-a-passo. Desta forma, cada linha do procedimento aparecerá impressa na tela e você deve pressionar enter para executá-las.
Caso você queira que o procedimento volte a ser executado sem a necessidade de mostrar passo-a-passo o que está acontecendo, você deve fazer assim
Desta forma o procedimento quadrado voltará a ser executado sem as interrupções a cada passo.
# Introdução à Programação com o UCB Logo/Indentação de Código

O termo indentação é utilizado para indicar que os elementos de um código fonte estão hierarquicamente dispostos através de avanços em relação à posição zero de cada linha. Na maioria das linguagens de programação a indenteção possui um papel meramente estético, tornando a leitura do código muito mais fácil. Isto torna mais fácil a elaboração de um código, pois facilita a organização do raciocínio. Além disso, um código indentado é mais facilmente compreendido por terceiros, facilitando também a sua manutenção e reaproveitamento. Existem, no entanto, algumas linguagens que utilizam a indentação para marcar blocos no código, e portanto é obrigatória a indentação do código, como por exemplo na linguagem Python.

## Exemplo

Vamos utilizar como uma função para criar um polígono. Esta função recebe dois parâmetros: o número de lados do polígono e o tamanho dos lados do polígono. O código desta função é ilustrado abaixo:
Para melhor organizar o código, vamos utilizar a indentação. Todos os comandos que ocorrem dentro da função poligono serão apresentados com um certo afastamento em relação ao início do código da função. O que a função faz é repetir um procedimento N vezes, onde N é o número de lados do polígono. O procedimento que será repetido está hierarquicamente um nível abaixo, e portanto deverá estar deslocado à direita com relação aos procedimentos do nível hierárquico superior. Dentro do procedimento de repetição são executados apenas dois comandos. Cada um é disposto então em uma linha, para ficar claro que são dois procedimentos diferentes. Como estes dois procedimentos estão no mesmo nível de hierarquia, eles devem apresentar o mesmo afastamento em relação ao nível hierárquico superior. Veja como ficou o código após a sua indentação:

## Comentários

Outra boa prática é acrescentar comentários. Os comentários que são colocados logo após a definição do nome do procedimento são os comentários de help deste procedimento. Veja o exemplo abaixo e execute o help deste procedimento para ver o que será exibido na tela. O help do procedimento serve para que outras pessoas saibam o que faz o procedimento que você criou, e como elas podem utilizar. As vezes é interessante incluir também algum exemplo de utilização.
Ao longo do código pode ser importante acrescentar comentários para que você e outra pessoa que venha a ler o seu código possa entender com maior facilidade o que cada trecho do código faz.
Agora você poderá desenhar qualquer polígono passando como parâmetro o número de lados e o tamanho de cada lado.
# Introdução à Programação com o UCB Logo/Operações Algébricas

Podemos utilizar o Logo para fazer operações algébricas. Veremos aqui alguns operadores e como utilizá-los.

## Soma

Para realizar a soma de dois números podemos utilizar o operador +. Por exemplo, para realizar a soma de dois com três, basta utilizar 2+3, mas o Logo reclamará que não saberá o que fazer com o resultado desta soma. Vamos então usar o comando print para que o resultado seja impresso na tela
Podemos somar quantos termos quisermos
Outra forma é utilizar o comando sum para realizar a soma
Se quisermos somar mais do que 2 números devemos fazer assim

## Diferença

Para calcular a diferença entre dois números podemos utilizar o operador - ou então utilizar o comando difference, conforme o exemplos abaixo

## Negativo

O comando minus fornece como resultado o negativo do valor de sua entrada. Veja o exemplo

## Produto

O produto entre dois números pode ser feito através do operador * ou através do comando product.

## Quociente

Para obter o quociente entre dois números: num1/num2, podemos utilizar o operador / ou então o comando quotient.

## Resto

Para obter o resto da divisão devemos utilizar o comando remainder.

## Módulo

Para obter o módulo de um número num1 em relação a outro número num2, devemos utilizar o comando modulo.

## Inteiro

Para obter a parte inteira de um número, devemos utilizar o comando int.

## Arredondamento

Para arredondar o valor basta utilizar o comando round.

## Potência

Para calcular o potência de um número existe o comando power.

## Raiz Quadrada

A raiz quadra de um número pode ser obtida da seguinte forma

## Exponencial

A exponencial de um número é calculada utilizando o comando "exp"

## Logaritmo na Base 10

O logaritmo na base 10 pode ser calculado através da função log10

## Logaritmo Natural

Para calcular a logaritmo natural de um numero podemos utilizar o comando ln

## Seno e Cosseno

Seno e Cosseno de um ângulo (em graus) podem ser calculados através das funções sin e cos

## Números Aleatórios

Para gerar inteiros menores do que um determinado número, devemos utilizar o comando random conforme o exemplo

## Exemplo

Vamos criar um programa chamado "sorteio" para gerar números aleatórios.
# Introdução à Programação com o UCB Logo/Recursão

Recursividade é um processo de repetição utilizado para simplificar a resolução de um problema em subproblemas do mesmo tipo. Em programação, teremos um processo recursivo quando este for definido em função dele mesmo. Vejamos um exemplo conhecido da matemática: o cálculo do fatorial de um número. O fatorial de um número N é dado pelo produto de N com o fatorial de N-1.
    $N!=N(N-1)!$
Por definição o fatorial de zero é igual a um (0!=1). Desta forma, para calcular o fatorial de um número qualquer podemos criar um algoritmo recursivo. Em Logo, podemos fazer a seguinte função para calcular o fatorial de um número:
E como alguns exemplos, podemos verificar o seu funcionamento:

## Exemplo

Este exemplo apresenta um algoritmo recursivo para desenhar os triângulos ilustrados na figura ao lado.

## Fractais

Fractais são figuras da geometria não-Euclidiana, em que as partes do todo possuem as características do todo. O termo fractal foi criado em 1975 por Benoît Mandelbrot, matemático francês nascido na Polônia, que descobriu a geometria fractal na década de 70 do século XX, a partir do adjetivo latino fractus, do verbo frangere, que significa quebrar.
Os fractais são objetos que apresentam auto-similaridade, ou recorrência. Por este motivo, é natural implementar computacionalmente o cálculo de fractais utilizando a recorrência.
Um exemplo de fractal muito conhecido é a [curva de Koch].
O processo de construção da curva de Koch consiste em aplicar recursivamente os seguintes passos, partindo de um segmento de recta.
* Divide-se o segmento de recta em três segmentos de igual comprimento.
* Substitui-se o segmento do meio por dois lados de um triângulo equilátero (fazendo um ângulo de π/3 radianos (60 graus)), o resultado terá o formato de um chapéu.
* O procedimento é repetido a cada um dos segmentos que constituem a nova figura.
O resultado da aplicação deste procedimento pode ser observado passo-a-passo na figura ao lado.
O exemplo abaixo é um algoritmo recursivo em Logo para construir a curva de Koch. Os parâmetros utilizados são o tamanho do segmento inicial e o número de recursões que serão realizadas.

## Problema

Faça um programa em Logo para desenhar o [Triângulo de Sierpinski].
# Proposta do curso

Este curso tem como proposta introduzir o aluno ao mundo da programação, ensinando os conceitos básicos através da linguagem de programação Logo.

# O que é o Logo?

Logo é uma linguagem de programação utilizada em educação. Ela foi desenvolvida em 1967 por um grupo de pesquisadores do Massachusetts Institute of Technology (MIT), sob a liderança do Professor Seymour Papert. O Logo é uma linguagem considera, ao mesmo tempo, simples e sofisticada. Logo é acessível a sujeitos de diferentes áreas e com vários níveis de escolaridade. A linguagem é ao mesmo tempo bastante sofisticada por possuir características pertencentes a três paradigmas computacionais distintos: procedural, orientado a objetos e funcional. Entretanto, Logo é usualmente utilizando sob o seu paradigma procedural, especificamente, o modo gráfico.
Logo é conhecido como uma linguagem interpretada, embora recentemente foram desenvolvidos dialetos de Logo compilados, tais como Lhogho e Liogo. Logo não é case-sensitive. Não existe uma implementação de Logo padrão, mas a UCBLogo é uma das mais utilizadas. Apesar de ser desenvolvida com cunho educacional, pode também ser utilizada para produzir scripts úteis.
Vamos utilizar o interpretador de Logo da Universidade de Berkley, o chamado UCBLogo, pois ele é gratuito e está disponível em diferentes sistemas operacionais: Microsoft Windows, Macintosh e Linux.
# Introdução à Programação com o UCB Logo/Procedimentos

Na sessão anterior mostramos como podemos de forma prática desenhar um quadrado, para tanto utilizamos o comando repeat. Mesmo assim, toda vez que desejarmos desenhar um quadrado de tamanho 100, devemos digitar aquela sequencia de comandos. Isto pode ser muito trabalhoso e seria muito mais simples dizer que queremos desenhar um quadrado. Podemos então criar um comando chamado quadrado, o nome correto em programação é procedimento. Vamos então criar um procedimento chamado quadrado. Para tanto, basta fazer como é ilustrado no exemplo abaixo:
Agora, toda vez que você der o comando quadrado, irá desenhar um quadrado com lado de tamanho igual a 100.
Quando você definiu o procedimento quadrado, este nome fica reservado para o procedimento que você acabou de criar. Suponha que agora você desenha criar um quadrado cujo lado possui tamanho igual a 200. Se você tentar definir novamente o procedimento quadrado, como acima, receberá uma mensagem de erro dizendo que o procedimento quadrado já está definido. Você deve então apagar o procedimento quadrado definido anterior
e então definir o novo procedimento quadrado
Se a cada momento você desejar desenhar um quadrado de tamanho diferente, este processo tornar-se-á muito tedioso. Uma maneira de superar este problema é utilizar os parâmetros. Da mesmo forma que o procedimento forward, back, right e left recebem como parâmetro o número de passos ou o ângulo em que a tartaruga irá virar, podemos usar um parâmetro para fornecer ao procedimento quadrado o tamanho do quadrado que desejamos desenhar. Para tanto, devemos fazer assim
Agora tente desenhar quadrados de diferentes tamanhos na tela.
# Introdução à Programação com o UCB Logo/Mais Instruções
## Comandos Básicos

Veremos agora algumas outras instruções que podem ser utilizadas para comandar a tartaruga.
* left/right
As instruções left e right fazem a tartaruga virar para a direita ou esquerda. Para utilizar essas instruções, é necessário passar como parâmetro o grau pelo qual a tartaruga será rotacionada. Por exemplo:
fará a tartaruga virar em 90 graus para a esquerda.
* forward/back
Estes comandos fazem a tartaruga se deslocar para frente ou para trás, respectivamente. É necessário passar como parâmetro o número de passos do deslocamento da tartaruga. Exemplo:
Fará a tartaruga andar 50 passos para trás.
* help
O comando help lista todos os comandos disponíveis. Para visualizar as informações sobre cada comando, você deve digitar help seguido por aspas dupla e o nome do comando desejado.
* clearscreen
Para limpar a tela e voltar a tartaruga ao seu local de origem.
* bye
Se você deseja sair do UBC Logo, basta dar o comando bye.

## Abreviações

Se você verificar o help de alguns comandos, verá que eles também podem ser chamados pela sua abreviação. Segue abaixo uma pequena lista de abreviações de alguns comandos que podem ser utilizadas e poupar esforço ao digitar os comandos.
* forward : fd
* back : bk
* right : rt
* left : lt
* clearscreen : cs
* penup : pu
* pendown : pd
* setpencolor : setpc
* setbackground : setbg