User Tools

Site Tools


2017-10

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

2017-10 [2017/10/29 06:18] (current)
rlafuente created
Line 1: Line 1:
 +[[https://​annuel2.framapad.org/​p/​datewithdata21 | pad original]]
 +
 +
 +
 +Easily join the IRC/Matrix channel from your browser:
 +    \url{https://​tinyurl.com/​opendata-pt} or \url{http://​transparanciahackday.org/​chat}
 +
 +[este é um bloco de notas colaborativo,​ edita à vontade! O Ricardo está a tirar as notas mas és bem-vindo/a para ajudar à tarefa :-]
 +português ou inglês :-D multilingue e depois editamos à vontade :-)
 +
 +**PIZZA**
 +
 +MENU: <​\url{https://​static1.squarespace.com/​static/​55cf4e47e4b0c22f9be26dd4/​t/​55e5ced4e4b0b727150cf233/​1441124052559/​MenuMrpizza2014.jpg}>​
 +Escolhas do povo (vamos encomendar 4!):
 +
 +   * 15 - **Siciliana**
 +   * 05 - **Capricciosa**
 +   * 13 - **4 Queijos**
 +   * 18 - **Carnivora**
 +**Retomamos às 14:00! - We come back at 14:00!**
 +
 +**Workshop: Programming for Non-Programmers**
 +Mathijs de Bruin <​\url{http://​mathijsfietst.nl}>​
 +
 +Code examples and source code for slides: \url{https://​github.com/​dokterbob/​programming-workshop}
 +Example (de)anonimyzer:​ \url{https://​github.com/​dokterbob/​programming-workshop/​blob/​master/​examples/​date\_with\_data.py}
 +Slides: \url{http://​tinyurl.com/​programming-part1}
 +(são open-source,​ pode-se usar e abusar!)
 +
 +Automatizar processos que governam a sociedade
 +Não é bem sobre programação (há muitos bons livros sobre isso), mas sobre como os computadores funcionam, os usos da automatização e as conotações do seu potencial.
 +
 +1. O que são computadores?​
 +2. Como são programados?​
 +3. Olá mundo! O nosso primeiro programa
 +4. Variáveis, condições,​ loops
 +5. Mãos na massa!
 +
 +Software livre/GNU, Richard Stallman: Se não podes programar um computador, ele não é realmente teu (if you can't program it, you don't own it)
 +
 +**O que são os computadores?​**
 +Muitos dos termos que usamos hoje para falar de computadores e funções/​tarefas/​actividades do nosso computador fazem referência ao funcionamento físico das primeiras máquinas e continuam a ser usados mesmo quando já não fazem sentido.
 +
 +Alan Turing: um génio por trás da vitória aliada na segunda guerra mundial, que estabelece a noção de máquina universal
 +**Máquina universal**:​ Qualquer computador deve poder emular qualquer outro computador, e pode fazer qualquer tipo de processamento de informação [isto não está muito correcto mas prontos]
 +
 +Os computadores são um conjunto enorme de interruptores electrónicos interligados (e alguma memória), funcionando a partir de lógica booleana
 +Bits e bytes (1 byte = 8 bits = 2 nibbles)
 +
 +Os computaores são máquinas com uma série de interruptores.
 +Turing-completeness:​ Característica de uma máquina/​computador que estipula que pode fazer qualquer tipo de cálculo básico (a partir de 0 e 1)
 +
 +Charles Babbage: Teorizou o primeiro computador mecânico
 +[Vale a pena ler o livro The Difference Engine (ver slides) sobre uma versão alternativa de uma história onde o computador de Babbage foi construído]
 +
 +**Interruptores**,​ vieram substituir os relés (relays), que são formas mecânicas de ativar e desativar electro-ímanes (ex. piscas dos automóveis)
 +Os interruptores ligados em conjunto podem criar circuitos lógicos
 +**Circuitos integrados** (chips) contêm milhões de interruptores e micro-ligações na sua superfície
 +Mecânica quântica veio tornar possível reduzir o tamanho dos componentes dos computadores. ​
 +
 +Componentes dos computadores:​
 +- RAM, memória de curto prazo
 +- Memória persistente (disco duro, pen, cartão SD) -- para ser executado, um programa tem de ser passado para a RAM
 +- CPU (unidade central de processamento)
 +- BIOS (sistema básico de entrada e saída), um programa que está integrado no próprio computador e que trata das suas funções elementares (ex. iniciar o sistema operativo no arranque)
 +
 +User interface: antigamente eram cartões perfurados e impressoras (não existiam monitores!),​ uns tempos depois passámos a usar teclados para operar consolas (terminais de texto) e, mais tarde, ratos para operar GUIs (interfaces gráficos)
 +As primeiras programadoras,​ antes de programação de tornar um trabalho, eram mulheres. Eram conhecidas como '​operadoras de computadores'​.
 +
 +BIOS: É a primeira coisa que o computador faz: o CPU vai à BIOS para correr o seu código e abrir o sistema operativo
 +O Sistema operativo (SO) situa-se entre os programas que usamos e as operações elementares do hardware (ex. desenhar coisas no ecrã, gerir prioridade entre as tarefas a executar)
 +Ex: Windows, UNIX
 +
 +Arpanet, percursora da Internet. Era uma rede de computadores criada pelo departamento de defesa americano.
 +Era preciso um SO que pudesse funcionar com a Internet, mas nem existia uma linguagem de programação que pudesse lidar com essa tarefa -- assim nasceu a linguagem C
 +
 +Linguagens de programação
 +"​low-level":​ lidam com tarefas mais elementares como gestão de memória (ex. em que parte da memória uma parte do programa vai correr)
 +"​high-level":​ trata de tarefas mais complexas, abstraindo a complexidade (ex. ler uma fotografia e reconhecer um rosto)
 +
 +A linguagem mais "​low-level"​ é Assembly language, que é essencialmente um conjunto de 0 e 1 que representam diferentes instruções que são executadas diretamente pelo CPU
 +
 +As linguagens "​high-level"​ podem ser compiladas (o código é lido e empacotado numa forma binária) ou interpretadas (executadas linha a linha à medida que o programa corre)
 +
 +Linguagens de programação:​ Python, PHP, C, C++, Java, Brainfuck...
 +Existem linguagens como o Brainfuck que são propositadamente esotéricas:​ <​\url{https://​en.wikipedia.org/​wiki/​Esoteric\_programming\_language}>​ <​\url{https://​esolangs.org}>​
 +
 +Python!
 +- linguagem interpretada
 +- corre em todo o lado (Android, data science, webapps...)
 +- não temos de nos preocupar com memória, tipos de variáveis... é feita para ser lida por pessoas e fácil de escrever
 +- é software livre, podemos usar, distribuir..
 +
 +Estruturas
 +  - Variáveis: uma forma de cristalizar partes (ex: valores, fórmulas, ...) que vamos usar recorrentemente no nosso programa
 +  - Condições:​ forma de levar o programa numa direção ou noutra de acordo com uma condição particular
 +  - Loops: repetir conjuntos de operações
 +  - Funções - ações referíveis por nomes, conjuntos de operações que podem variar de acordo com os parâmetros (variáveis) que lhes damos
 +  -  Bibliotecas - funções escritas por outros, para não termos de repetir o que outras pessoas já resolveram
 +
 +Documentação:​ quando queremos fazer alguma coisa em python podemos consultar a documentação <3
 +Comentários:​ pedaços de texto ignorados pelo computador, feitos para podermos documentar o que o código faz para outras pessoas (e para nós também!) de forma também a organizar o código por partes
 +Temos de indicar ao nosso programa partes que são texto, assinaladas com "texto aqui" (chamadas de strings) senão ele interpreta o texto como números. ​
 +Python download <​\url{http://​python.org}>​
 +Editores de texto: Sublimetext <​\url{http://​www.sublimetext.com/​}>,​ Atom <​\url{https://​atom.io/​}>,​ Geany <​\url{http://​www.geany.org/​}>​
 +Versão de Python: 3.6.3!
 +Jupyter <​\url{http://​jupyter.org/​}>​
 +
 +Correr python diretamente do notepad++ - Executar (F5) - (programa a executar) python.exe -i "​$(FULL\_CURRENT\_PATH)"​
 +
 +Exprimentar o Jupyter: <​\url{https://​try.jupyter.org/​}> ​
 +Instalar o jupiter com o pip:
 +    python3 -m pip install jupyter
 +    Depois de instalar podemos utilizar em try jupiter - new - python
 +
 +Ideias para programas em python:
 +
 +   * Quantos dias tenho? Usar o programa que nos dá a idade mas, em vez de usar anos, usar dias
 +Perguntas - Questions:
 +
 +What's your name?
 +When is your birthday?
 +
 +Exercícios:​
 +    mylist=[1,​2,​3]
 +    mylist.append(5)
 +    my\_dictionary={'​name':'​Mathijs','​age':​32}
 +    my\_dictionary['​name'​]
 +    ...
 +    ​
 +    ​
 +    ​
  
2017-10.txt · Last modified: 2017/10/29 06:18 by rlafuente