[ALEXANDRE VILLARES] Monografia

54
Escola da Cidade · Programa de pós graduação 2014-15 · “Arquitetura, Educação e Sociedade" Trabalho de conclusão de curso Alexandre B A Villares Dezembro de 2015

description

 

Transcript of [ALEXANDRE VILLARES] Monografia

Page 1: [ALEXANDRE VILLARES]  Monografia

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Escola da Cidade  ·  Programa de pós graduação 2014-15  ·  “Arquitetura, Educação e Sociedade" 

Trabalho de conclusão de curso 

Alexandre B A Villares 

Dezembro de 2015   

 

Page 2: [ALEXANDRE VILLARES]  Monografia

Para Sandra.

Meus agradecimentos aos queridos colegas professores

da Escola da Cidade que contribuíram de diversas

maneiras. Em especial agradeço à coordenação do curso,

Cris Muniz, Maira Rios e aos professores e amigos Omar

Dalank, Luis Felipe Abbud, Pedro Barros, Carolina Klocker

e João Gaspar.

Agradeço muitíssimo ao amigo Décio Otoni de Almeida.

1

Page 3: [ALEXANDRE VILLARES]  Monografia

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3 Introdução  

12 Fichas de Aula - Introdução à programação com  Processing Python Mode 

36 Anexo I - Plataformas e linguagens 

38 Anexo II - Bibliografia e referências 

40 Anexo III - Referências comentadas   

Page 4: [ALEXANDRE VILLARES]  Monografia

 

 

 

   

Page 5: [ALEXANDRE VILLARES]  Monografia

 

Illustração: Diana Lange, 2014  [acesse para ver em movimento] openprocessing.org/sketch/156164  

Uma pessoa fluente no uso de tecnologia 

aproveita todos os recursos disponíveis para 

solucionar problemas com que se depara. 

Uma das formas de ampliar a fluência 

tecnológica é o ensino de programação, uma 

vez que programar aumenta as possibilidades 

de criação com ferramentas digitais. 

Programar é criar, é fazer um dispositivo 

eletrônico, computador, microcontrolador, 

equipamento de automação ou robótica, se comportar de uma maneira nova. 

A aluna se torna uma criadora de ferramentas e não apenas utilizadora de 

ferramentas prontas, ganha maior domínio da tecnologia para utilizá-la a seu favor.  

Aprender a programar é também uma excelente oportunidade de praticar a 

habilidade de solucionar problemas. 

 

Page 6: [ALEXANDRE VILLARES]  Monografia

 

Illustração: Pequeno trecho do código de Diana Lange que gera a 

imagem anterior, visto no IDE Processing. 

 

Programação é como instruímos  um 

computador a executar uma série de ações. 

As ações podem ser, por exemplo, fazer 

cálculos, modificar uma sequência de letras e 

números, mostrar textos ou imagens na tela, 

aguardar a interação de uma pessoa com o 

teclado e mouse para então executar mais 

ações dependendo do que foi feito pela 

utilizadora. 

Todos os programas de computador usam instruções simples como ponto de partida. 

Veja algumas, descritas em português: 

● Faça isto, e depois aquilo; 

● Se esta condição for verdadeira, faça isto, senão, faça esta outra coisa; 

● Faça isto por este número de vezes; 

● Fique fazendo isto enquanto esta condição for verdadeira. 

Estas instruções podem ser combinadas para implementar regras, decisões, e ações 

mais complexas. O conjunto de instruções, o código escrito numa linguagem de 

programação, forma um programa de computador.  

Page 7: [ALEXANDRE VILLARES]  Monografia

 

Illustração: Diana Lange, Random L-system Plants 

openprocessing.org/sketch/205214  

Como ao usar matemática, ao programar 

escrevemos numa linguagem formal para 

representar as ideias . 1

Como na arquitetura, construímos algo a partir 

de componentes, avaliando as vantagens e 

desvantagens entre as alternativas. 

Como cientistas, observamos o 

comportamento de sistemas complexos, 

formando hipóteses e testando previsões.  

Mais importante do que aprender a programar em uma linguagem específica (e 

existem muitas) é exercitar o raciocínio lógico e desenvolver habilidades para resolver 

problemas por meio de pensamento computacional. 

Um receio comum é de que para aprender a programar seja necessário um 

conhecimento avançado de matemática. Na verdade começar a programar não 

requer conhecimento muito além da aritmética simples. 

 

 

   

1 Paráfrase/ Tradução do autor. Texto original: "Like mathematicians, computer scientists use formal languages to 

denote ideas (specifically computations)." In: DOWNEY, Allen.  Think Python: How to Think Like a Computer Scientist. 

Needham, Massachusetts: Green Tea Press, 2012, p. 23. Disponível em: 

< http://greenteapress.com/thinkpython/thinkpython.pdf >. Acesso em: 15. dez. 2015. 

Page 8: [ALEXANDRE VILLARES]  Monografia

 

 

Illustração: Tutorial Creating Geometry with SkechUp Ruby 

sketchup.com/intl/en/developer/docs/tutorial_geometry   

A solução de problemas requer a habilidade de 

formular questões, pensar criativamente sobre 

soluções possíveis e expressar uma solução de 

forma clara e precisa.  

Um algoritmo é uma lista passo a passo de 

instruções que, caso seguidas, resolvem algum 

problema com um número finito de passos. 

Um dos objetivos trabalhados pela ciência da 

computação é considerar um problema e 

desenvolver um algoritmo que possa servir como uma solução genérica. 

Uma vez obtida a solução, um computador pode ser usado para automatizar a 

execução. Dessa forma, programação é a habilidade que permite pegar um algoritmo 

e representá-lo em uma notação formal (o código escrito em uma linguagem de 

programação) que pode ser executado por um computador. 

   

Page 9: [ALEXANDRE VILLARES]  Monografia

 

Illustração: OpenProcessing 

openprocessing.org/browse/?viewBy=most&filter=favorited 

 

O ensino de programação para alunos de artes 

visuais, design e arquitetura conta com um 

histórico de influentes experiências 

educacionais. 

O pioneiro  Design by Numbers  de John Maeda 2

no MIT, no final da década de 90, inspirou a 

criação por Ben Fry e Casey Reas da linguagem 

Processing,  hoje utilizada por uma comunidade 

enorme de artistas e educadores, mantida e 

desenvolvida por um grande número de 

colaboradores e amparada pela Fundação Processing : 3

Desde seu início em 2001, Processing procurou unir as culturas da arte e ciência, 

tradicionalmente divididas. A missão da Fundação Processing é conectar estas duas culturas de 

forma que elas possam ser usadas por uma comunidade diversa, através do desenvolvimento 

do software Processing. Para aqueles com uma propensão a pensar com números, Processing 

introduz a linguagem das artes visuais através do vocabulário mais familiar da ciência da 

computação. Da mesma forma, o programa é estruturado através dum arcabouço baseado em 

imagem, tornando-o acessível para pensadores visuais. Conceitos fundamentais de ciência da 

computação como variáveis, funções e condicionais são ensinadas lado a lado com 

fundamentos visuais como imagem, forma e cor. 

2  Captura da página original do DBN no site do MIT.  What is Design by Numbers?  Disponível em: 

< https://web.archive.org/web/20150515214548/http://dbn.media.mit.edu/whatisdbn.html >. Acesso em: 15 dez. 

2015. 

3 Tradução do autor. Texto original: "Since its inception in 2001, Processing has sought to bridge the traditionally 

divided cultures of the arts and the sciences. The mission of the Processing Foundation is to link these two cultures 

so they can be used within a diverse constituency, by way of developing the Processing software. For those with a 

tendency to think in numbers, Processing introduces a language of the visual arts through a more familiar 

computer science vocabulary. Likewise, the software is structured through an image-based framework, making it 

accessible to visual thinkers. Core computer science concepts like variables, functions, and conditionals are taught 

side by side with visual basics like image, shape, and color." in:  Processing Foundation - Mission . Disponível em: 

< https://processing.org/mission/ >. Acesso em: 15 dez. 2015. 

Page 10: [ALEXANDRE VILLARES]  Monografia

 

Imagem: Site da fundação Python   www.python.org 

 

Para a disciplina apresentada a seguir foi 

escolhida a linguagem/plataforma  Processing.  A 

primeira encarnação da disciplina foi realizada 

usando o Processing tradicional,  Processing Standard   Mode  /  Java Mode , com a sintaxe da 

linguagem Java, mas agora revisada para o 

novo modo Python,  Processing Python Mode , 4

com sintaxe da linguagem Python. 

Python tem sido largamente adotada como 

linguagem introdutória nas escolas de ciência 

da computação   (como pode também ser 5

confirmado com a leitura de  Python in Education , indicado na bibliografia) aliado a 

isso, Python abre portas para automação de diversos softwares de interesse para 

arquitetos, como o Blender, Rhino, Revit, Dynamo e Vectorworks. 

A linguagem Python, além de ser considerada muito adequada para iniciantes conta 

com uma comunidade vibrante que contribui com uma infinidade de projetos Open 

Source, inúmeras bibliotecas de código para exploração científica. 

4 Site do Processing Python Mode. Disponível em: < http://py.processing.org >.  Acesso em: 15 dez. 2015. 

5  GUO, Philip. Python is Now the Most Popular Introductory Teaching Language at Top U.S. Universities. 

Communications of the ACM , New York, 7 July 2014. Disponível em: 

< http://cacm.acm.org/blogs/blog-cacm/176450-python-is-now-the-most-popular-introductory-teaching-language-at

-top-us-universities/fulltext >. Acesso em: 15 dez. 2015. 

 

Page 11: [ALEXANDRE VILLARES]  Monografia

 

Illustração: Possible, Plausible, Potential – Drawings of architecture 

generated by code  creativeapplications.net/processing/  

Partindo da experiência de oficinas de 

introdução à programação e à eletrônica, 

grupos de estudos informais e uma disciplina 

experimental ( Algoritmos para criação de formas: Introdução a programação para artistas) em 2013 na Escola da Cidade, este trabalho 

pretende elencar algumas referências 

relevantes para o ensino de programação, 

fornecer material de apoio para uma disciplina 

introdutória ( Fichas de Aula ) e uma breve 

bibliografia comentada sobre o tema. 

Existem muitas possibilidades para ensinar programação no contexto de um curso de 

graduação de arquitetura, design ou artes plásticas. Especialmente convidativas são 

as linguagens que existem embutidas em programas de desenho, programas de 

CAD/BIM e modeladores 3D em geral. Também devem ser consideradas plataformas 

criadas especificamente para o ensino ou para a criação de arte digital e interativa. 

No  Anexo I  é apresentada uma tabela, definitivamente incompleta, de possibilidades, 

plataformas e linguagens, para docentes interessados no assunto. O  Anexo II  sugere 

bibliografia e outras referências a serem exploradas, algumas das quais são 

brevemente comentadas no  Anexo III . 

Page 12: [ALEXANDRE VILLARES]  Monografia

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ABAV
ABAV
Page 13: [ALEXANDRE VILLARES]  Monografia

Aula 00 Como usar este material

Estas Fichas de aula contém indicação de uma sequência sugerida de aulas com:

● Assunto da aula;

● Vocabulário essencial (palavras chave da linguagem e conceitos);

● Vocabulário extra (opcional);

● Referências (origem deste material ou material extra a ser consultado);

● Outros comentários.

● Exemplos principais reproduzidos diretamente na ficha.

Algumas aulas sugerimos que sejam o espaço para a consolidação do material por meio

de um exercício síntese (usando o vocabulário estudado nas aulas anteriores) entregue

no final da aula ou no caso do exercício final apresentado a todos com comentários.

O desenvolvimento das aulas em geral se dá da seguinte maneira:

1. Apresentação de um vocabulário e conceitos;

2. Leitura, "destrinchamento", de um código exemplo fornecido;

3. Experimentação, alterações do código exemplo;

4. Criação pelo aluno de um novo sketch utilizando o vocabulário apresentado.

Page 14: [ALEXANDRE VILLARES]  Monografia

Aula 01

Referências essenciais, desenho, posição do mouse

Vocabulário essencial

coordenadas, pixels, background(), rect(),fill(), noStroke() size(), width, height, mouseX,

mouseY, variáveis, comentários com # e """.

Outros comentários

Introdução rápida, o que é o Processing,

linguagens, variações;

Como instalar o Processing IDE e instalar

modo Python [processing.org/download];

Como consultar Referência das Funções

[py.processing.org/reference];

Abrindo os exemplos locais

[Menu File → Examples…].

Vocabulário extra

ellipse(), line(), point(),

fullScreen(SPAN), declaração de uma

função com def, e modos de cor.

Referências

py.processing.org/tutorials/gettingstarted/

py.processing.org/tutorials/drawing/

extra: py.processing.org/tutorials/color/

Page 15: [ALEXANDRE VILLARES]  Monografia

Aula 01

Explicar e adaptar/refinar os elementos do exemplo input > Mouse2D

Page 16: [ALEXANDRE VILLARES]  Monografia

Aula 02

Condicional, loops e repetições, números aleatórios

Vocabulário essencial

if _ :, else,

for _ in _ :,

while _ :, range()

random().

Outros comentários

Como controlar o 'fluxo' da execução do

programa com if. Laços (loops) e

condicionais são elementos essenciais

quase todas as linguagens de

programação.

Vocabulário extra

interáveis, listas, tuplas, elif

Referências

py.processing.org/reference/for.html

py.processing.org/reference/while.html

py.processing.org/reference/if.html

py.processing.org/reference/random.html

Page 17: [ALEXANDRE VILLARES]  Monografia

Aula 03

Declarando funções, translações

Vocabulário essencial

def _:, translate(), with

Outros comentários

Declarar ou definir funções é uma

maneira de criar novas palavras em uma

linguagem.

A translação do sistema de coordenadas é

uma ferramenta sofisticada que permite

simplificar o seu código.

Vocabulário extra

return

Referências

py.processing.org/reference/def.html

processing.org/learning/basics/functions.html

(Java)

processing.org/learning/transform2d/ (Java)

def nome_da_função ( parâmetro, outro_parâmetro ):

código que a função executa # note a indentação

def nome_da_função () :

''' notem que () significa que essa função não precisa de parâmetros'''

código que a função executa

Page 18: [ALEXANDRE VILLARES]  Monografia

Aula 03

exemplo de definição de uma nova função

def setup():

size(640, 360)

background(51)

noStroke()

noLoop()

def draw():

alvo(width*0.25, height*0.4, 200, 4)

alvo(width*0.5, height*0.5, 300, 10)

alvo(width*0.75, height*0.3, 120, 6)

def alvo(xloc, yloc, size, num):

grayvalues = 255/num

steps = size/num

for i in range (num):

fill(i*grayvalues)

ellipse(xloc, yloc, size - i*steps, size - i*steps)

Page 19: [ALEXANDRE VILLARES]  Monografia

Aula 03

translação

Translação: Movendo a grade

Você já aprendeu que pode mudar a posição onde desenha um retângulo. Mas há uma maneira diferente de

fazer isso. E se você mover a grade de coordenadas? O efeito visual obtido é o mesmo. Isso se chama

translação. Qual a vantagem?

def setup():

size(400, 100)

background(255)

for i in range( 10, 350, 50):

house(i, 20)

def house( x, y):

triangle(x + 15, y, x, y + 15, x + 30, y + 15)

rect(x, y + 15, 30, 30)

rect(x + 12, y + 30, 10, 15)

'''Compare com esta versão que usa o translate(). Neste caso o código desenha a casa no

mesmo lugar, com o canto superior esquerdo em (0, 0), e a translação, In this case, the code draws the house in the same place every time, with its upper left corner at (0,

0), and lets translation do all the work instead!'''

def house(int x, int y):

with pushMatrix():

translate(x, y)

triangle(15, 0, 0, 15, 30, 15)

rect(0, 15, 30, 30)

rect(12, 30, 10, 15)

Page 20: [ALEXANDRE VILLARES]  Monografia

Aula 03

rotação

Além da translação que move a grade, é possível girar o sistema de coordenadas

com a função rotate(). Essa função tem um parâmetro ou argumento, um

número de radianos que você quer rodar. Em graus, um círculo tem 360°.

Quando descrevemos os ângulos em radianos, a circuferência completa tem

2π radianos.

Here is a diagram of how Processing measures angles in degrees (black) and radians (red).

Processing has a built-in radians() function which takes a number of degrees as its argument and

converts it for you. It also has a degrees() function that converts radians to degrees. Given that

background, let’s try rotating a square clockwise 45 degrees.

def setup():

size(200, 200)

background(255)

smooth()

fill(192)

noStroke()

rect(40, 40, 40, 40)

with pushMatrix():

rotate(radians(45))

fill(0)

rect(40, 40, 40, 40)

Hey, what happened? How come the square got moved and cut off? The answer is: the

square did not move. The grid was rotated. Here is what really happened. As you can see, on the rotated coordinate system, the square still

has its upper left corner at (40, 40).

Girando da maneira certa

A maneira certa de girar o quadrado é: : 1. Mova a origem do sistema de coordenadas (0, 0) para onde você quer que seja o canto superior

esquerdo do quadrado. 2. Gire a gra de π/4 radianos (45°) 3. Desenhe o quadrado na origem.

def setup():

size(200, 200)

rectMode(CORNER)

background(255)

smooth()

fill(192)

noStroke()

rect(40, 40, 40, 40)

with pushMatrix():

translate(40, 40)

rotate(radians(45))

fill(0)

rect(0, 0, 40, 40)

Page 21: [ALEXANDRE VILLARES]  Monografia

Aula 03 Exemplos em Processing Java Mode

void setup() {

size(200, 200);

background(255);

smooth();

noStroke();

}

void draw(){

if (frameCount % 10 == 0) {

fill(frameCount * 3 % 255, frameCount * 5

% 255,

frameCount * 7 % 255);

pushMatrix();

translate(100, 100);

rotate(radians(frameCount * 2 % 360));

rect(0, 0, 80, 20);

popMatrix();

}

}

void setup() {

smooth();

size(300,300);

background(0);

}

void draw() {

translate(mouseX, mouseY);

rotate(frameCount/3);

strokeWeight(20+sin(frameCount)*20);

stroke(abs(sin(frameCount/10)*255),

abs(cos(frameCount/10)*255),

abs(cos(frameCount/10)*255), 75);

line(0, 0, 0, random(height/2));

line(0, 0, 0, -random(height/2));

}

Page 22: [ALEXANDRE VILLARES]  Monografia

Aula 04

Exercício de síntese 1

Outros comentários

Usando o vocabulário adquirido até o

momento, propor a criação de um

pequeno sketch que obrigatoriamente

utilize vocabulário de cada uma das três

aulas anteriores.

Page 23: [ALEXANDRE VILLARES]  Monografia

Aula 05

Mais opções de interação, teclado e mouse.

Vocabulário essencial

mousePressed, mouseDragged(),

keyPressed(), key, frameRate

Outros comentários

Além de saber a posição do mouse, o

seu programa pode mudar de

comportamento quando o mouse é

clicado, ou quando uma tecla é

pressionada.

""" clique na caixa, e arraste também! """ boxSize = 75 overBox = False locked = False xOffset = 0.0 yOffset = 0.0 def setup(): size(640, 360) global bx, by bx = width / 2.0 by = height / 2.0 rectMode(RADIUS) def draw(): global overBox background(0) if bx - boxSize < mouseX < bx + boxSize and \ by - boxSize < mouseY < by + boxSize: overBox = True if not locked: stroke(255) fill(153) else: stroke(153) fill(153) overBox = False rect(bx, by, boxSize, boxSize)

Vocabulário extra

easing, deque, millis()

Referências

processing.org/examples/mousefunctions.html

processing.org/examples/keyboardfunctions.html

def mousePressed(): global locked, xOffset, yOffset if overBox: locked = True fill(255, 255, 255) else: locked = False xOffset = mouseX - bx yOffset = mouseY - by def mouseDragged(): global bx, by if locked: bx = mouseX - xOffset by = mouseY - yOffset def mouseReleased(): global locked locked = False

Page 24: [ALEXANDRE VILLARES]  Monografia

Aula 05

""" Keyboard Functions. Modified from code by Martin. Original 'Color Typewriter' concept by John Maeda. Click on the window to give it focus and press the letter keys to type colors. The keyboard function keyPressed() is called whenever a key is pressed. keyReleased() is another keyboard function that is called when a key is released. """ A_code = ord('A') Z_code = ord('Z') a_code = ord('a') z_code = ord('z') maxHeight = 40 minHeight = 20 letterHeight = maxHeight # Height of the letters letterWidth = 20 # Width of the letter x = -letterWidth # X position of the letters y = 0 # Y position of the letters newletter = False numChars = 26 # There are 26 characters in the alphabet colors = []

def setup(): size(640, 360) noStroke() colorMode(HSB, numChars) background(numChars / 2) # Set a gray value for each key for i in range(0, numChars, 1): colors.append(color(i, numChars, numChars)) def draw(): global newletter if newletter: # Draw the letter if letterHeight == maxHeight: y_pos = y rect(x, y_pos, letterWidth, letterHeight) else: y_pos = y + minHeight rect(x, y_pos, letterWidth, letterHeight) fill(numChars / 2) rect(x, y_pos - minHeight, letterWidth, letterHeight) newletter = False def keyPressed(): global newletter, x, y, letterHeight # If the key is between 'A'(65) to 'Z' and 'a' to 'z'(122) key_code = ord(key) if (key_code >= A_code and key_code <= Z_code) \ or (key_code >= a_code and key_code <= z_code): if key_code <= Z_code: keyIndex = key_code - A_code letterHeight = maxHeight fill(colors[key_code - A_code]) else: keyIndex = key_code - a_code letterHeight = minHeight fill(colors[key_code - a_code]) else: fill(0) letterHeight = 10 newletter = True # Update the "letter" position x = (x + letterWidth) # Wrap horizontally if x > width - letterWidth: x = 0 y += maxHeight # Wrap vertically if y > height - letterHeight: y = 0 # reset y to 0

Page 25: [ALEXANDRE VILLARES]  Monografia

Aula 06

Orientação a objetos: Classes, intâncias, métodos.

Vocabulário essencial

class, __init__, self

Outros comentários

O paradigma de programação orientada a

objetos é o desafio a ser explorado na

parte final do curso.

Vocabulário extra

dot methods

Referências

py.processing.org/tutorials/objects/

# "Car" carro sem orientação a objetos → class Car(object):

''' Nome da classe que inventamos, tradicionalmente com a primeira letra

maiúscula, para diferenciar de variáveis que

começam com minúscula.'''

→ Nome da classe

c = color(255)

xpos = 100

ypos = 100

xspeed = 1

→ def __init__(self):

'''Os dados do objeto são mantidos em

variaveis, chamadas instance variables, cada instância do objeto tem uma cópia'''

self.c = color(255)

self.xpos = 100

self.ypos = 100

self.xspeed = 1

→ inicialização

def display():

rectMode(CENTER)

fill(c)

rect(xpos, ypos, 20, 10)

def drive():

xpos = xpos + xspeed

if xpos > width:

xpos = 0

def setup():

size(200, 200)

def draw():

background(0)

display()

drive()

→ def display(self):

rectMode(CENTER)

fill(self.c)

rect(self.xpos, self.ypos, 20, 10)

def drive(self):

self.xpos = self.xspeed

if self.xpos > width:

self.xpos = 0

my_car = Car()

def setup():

size(200, 200)

def draw():

background(0)

my_car.display()

my_car.drive()

→ Funcionalidade,

métodos.

Page 26: [ALEXANDRE VILLARES]  Monografia

Aula 07

Imagens e recursos vetoriais externos

Vocabulário essencial

loadImage(), image(),

loadShape(), shape()

Outros comentários

Como usar imagens e elementos vetoriais

desenhados em outros programas.

Vocabulário extra

global, noLoop(), PShape

Referências

processing.org/examples/loaddisplaysvg.html

img = loadImage(""http://processing.org/img/processing-web.png"")

image(bot = loadShape(""bot1.svg""), shape(bot, 110, 90, 100, 100))

Page 27: [ALEXANDRE VILLARES]  Monografia

Aula 08

Exportação de imagens, GIFs e PDFs

Vocabulário essencial

saveFrame(), beginRecord( PDF,

"pdf/myartwork-####.pdf" ),

endRecord()

Outros comentários

Como exportar as formas criadas com

Processing? PDF,PNG, GIF?

Salvando um GIF

add_library('gifAnimation')

def setup():

size(400, 400);

noStroke()

smooth()

frameRate(24)

global gifExport

gifExport = GifMaker(this, "export.gif")

# make it an "endless" animation

gifExport.setRepeat(0)

# torna o fundo preto transparente

# gifExport.setTransparent(0, 0, 0)

def draw():

background(0);

# SEU CÓDIGO AQUI

gifExport.setDelay(1);

gifExport.addFrame();

if frameCount > 1500:

noLoop()

def keyPressed():

gifExport.finish()

println("gif saved")

Vocabulário extra

gifAnimation, GifMaker

Referências

py.processing.org/tutorials/overview/

packtpub.com/article/exporting-from-processing

Salvando imagens

if ( keyPressed ):

    saveFrame("images/artwork-####.png")

Salvando um PDF

add_library('pdf')

beginRecord( PDF, "pdf/myartwork-####.pdf" )

endRecord()

Page 28: [ALEXANDRE VILLARES]  Monografia

Aula 09

Exercício de síntese 2

Outros comentários

Usando o vocabulário adquirido até o

momento, propor a criação de um

pequeno sketch que preferencialmente

utilize vocabulário de cada uma das

quatro aulas anteriores.

Page 29: [ALEXANDRE VILLARES]  Monografia

Aula 10

Listas de objetos e sistemas de partículas e outros comportamentos

Vocabulário essencial

PVector, [], flocking

Outros comentários

Como simular agentes independetes ou

partículas usando listas de objetos. class Ball:

def __init__(self, xin, yin, din, idin):

self.x = xin;

self.y = yin;

self.vx = 0.0

self.vy = 0.0

self.diameter = din;

self.id = idin;

self.others = []

self.color = (random(255),random(255),random(255))

def makeOthers(self):

self.others = [x for x in balls if x != self]

def collide(self):

for i in range(numBalls-1):

dx = self.others[i].x - self.x

dy = self.others[i].y - self.y

distance = sqrt(dx*dx + dy*dy)

minDist = self.others[i].diameter/2 +

self.diameter/2;

if distance < minDist:

angle = atan2(dy, dx);

targetX = self.x + cos(angle) * minDist;

targetY = self.y + sin(angle) * minDist;

ax = (targetX - self.others[i].x) * spring;

ay = (targetY - self.others[i].y) * spring;

self.vx -= ax;

self.vy -= ay;

self.others[i].vx += ax;

self.others[i].vy += ay;

def move(self):

self.vy += gravity;

self.x += self.vx;

self.y += self.vy;

if (self.x + self.diameter/2 > width):

self.x = width - self.diameter/2;

self.vx += -0.9;

elif self.x - self.diameter/2 < 0:

self.x = self.diameter/2;

self.vx *= -0.9

if self.y + self.diameter/2 > height:

self.y = height - self.diameter/2

self.vy *= -0.9

elif self.y - self.diameter/2 < 0:

self.y = self.diameter/2

self.vy *= -0.9

def display(self):

fill(self.color[0],self.color[1],self.color[2])

ellipse(self.x, self.y, self.diameter, self.diameter)

Vocabulário extra

Referências

processing.org/examples/simpleparticlesystem.html

processing.org/examples/flocking.html

numBalls = 25;

spring = 0.05;

gravity = 0.03;

balls = [Ball(random(400), random(400), random(20, 40),

x) for x in range(numBalls)]

def setup():

size(400, 400);

noStroke()

smooth()

frameRate(24)

for b in balls:

b.makeOthers()

def draw():

background(0);

for i in range(numBalls):

balls[i].collide()

balls[i].move()

balls[i].display()

if frameCount > 1500:

noLoop()

Page 30: [ALEXANDRE VILLARES]  Monografia

Aula 10

Diana Lange 2014

http://www.openprocessing.org/sketch/156164

Page 31: [ALEXANDRE VILLARES]  Monografia

Aula 11

Bibliotecas externas

Vocabulário essencial

import & addlibrary

Outros comentários

Panorama de bibliotecas que podem

extender o Processing.

Vocabulário extra

Fisica, Box2D, 3D

Referências

https://processing.org/reference/libraries/

Page 32: [ALEXANDRE VILLARES]  Monografia

Aula 12

Tipografia

Vocabulário essencial

f = createFont("Georgia", 24),

textFont(f)

Outros comentários

Como escrever texto na tela? A tipografia

é um elemento gráfico complexo que

demanda uma certa dose de burocracia

para ser dominada pelo artista digital.

Vocabulário extra

textAlign, RIGHT, CENTER, LEFT

Referências

processing.org/learning/text

processing.org/tutorials/typography/

Page 33: [ALEXANDRE VILLARES]  Monografia
Page 34: [ALEXANDRE VILLARES]  Monografia

Aula 13

Atendimento do exercício final

Outros comentários

Nesta aula os alunos devem trabalhar no

código do exercício final, e na medida do

possível debugar e tirar dúvidas.

Page 35: [ALEXANDRE VILLARES]  Monografia

Aula 14

Apresentação do exercício final

Outros comentários

Os aluno devem apresentar os trablhos e

explicar seus objetivos, desafios, sucessos

e fracassos na implementação.

Page 36: [ALEXANDRE VILLARES]  Monografia

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

   

 

ABAV
Page 37: [ALEXANDRE VILLARES]  Monografia

por Alexandre B A VIllares, licença CC-BY-SA-4.0 Revisão 15.12.16

Avaliado Sistemas Operacionais Licença Ambiente/IDE Linguagem/Biblioteca Sintaxe Principais usos site oficial Referências recomendadasparcialmente Windows software proprietário ArcGIS Python Python Criação de ferramentas plug-in, GIS, geoprocessamento e

visualização de dadosresources.arcgis.com/en/communities/python/

sim Windows, Mac OS software proprietário,licença educacionalgratuita

ArchiCAD GDL similar a BASIC Criação de objetos paramétricos e geometrias 3D complexas. gdl.graphisoft.com/ GDL Cookbook

sim Windows, Mac OS, Linux software livre ou opensource Arduino C/Wiring C Computação física, automação, robótica, arte interativa. arduino.cc Livro da Novatec e slides Luciano Ramalho - Arduino 101 Oficina

para principiantesparcialmente Windows software proprietário,

licença educacionalgratuita

Autocad AutolLISP & VisualLISP LISP Criação de ferramentas plug-in e geometrias 2D e 3Dcomplexas.

help.autodesk.com/view/ACD/2016/ENU/?guid=GUID-265AADB3-FB89-4D34-AA9D-6ADF70FF7D4B

sim Windows software proprietário(freeware?) Bentley Generative Components "visual" Criação de geometrias "gerativas"* em 3D bentley.com/en/products/product-line/modeling-and-

visualization-software/generativecomponentssim Windows, Mac OS, Linux software livre ou open

source Blender Python Python Criação de ferramentas plug-in e geometrias 3D complexas. blender.org/manual/advanced/scripting/introduction.html

sim Windows, Mac OS software livre ou opensource Cinder C++ C Criação de gráficos 2D e 3D, arte interativa, visualização de

dados.libcinder.org/

sim Mac OS software livre ou opensource Drawbot Python Python Criação de gráficos 2D, arte interativa, visualização de dados. www.drawbot.com/

parcialmente Windows, Mac OS, Linux software proprietário Minecraft [várias] "visual", Python,Javascript

Educação, jogos http://computercraftedu.com/http://pi.minecraft.net/?page_id=14

parcialmente Windows, Mac OS, Linux software livre ou opensource NodeBox 3 NodeBox "visual", Python Criação de gráficos 2D, arte interativa, visualização de dados. www.nodebox.net/node/

parcialmente Windows, Mac OS, Linux software livre ou opensource NodeBox for

OpenGLPython Python Criação de gráficos 2D, arte interativa, visualização de dados. www.cityinabottle.org/nodebox/

parcialmente Windows, Mac OS, Linux software livre ou opensource OpenFrameworks C++ C Criação de gráficos 2D e 3D, arte interativa, visualização de

dados.openframeworks.cc/

sim Windows, Mac OS, Linux software livre ou opensource Processing Processing Java Mode Java Criação de gráficos 2D e 3D, arte interativa, visualização de

dados.processing.org Diversos livros e sites, consulte a tabela 2

sim Windows, Mac OS, Linux software livre ou opensource Processing Processing Python Mode Python Criação de gráficos 2D e 3D, arte interativa, visualização de

dados.py.processing.org Diversos livros e sites, consulte a tabela 2

sim Windows, Mac OS, Linux software livre ou opensource P5*JS (Processing

Foundation)P5*JS Javascript Criação de gráficos 2D e 3D, arte interativa, visualização de

dados.p5js.org Diversos livros e sites, consulte a tabela 2

parcialmente Windows, Mac OS, Linux software livre ou opensource QGIS Python Python Criação de ferramentas plug-in, GIS, geoprocessamento e

visualização de dadosdocs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/intro.html qgistutorials.com/en/docs/getting_started_with_pyqgis.html

parcialmente Windows software proprietário,licença educacionalgratuita

Revit Revit Macros VB.NET, C# Criação de ferramentas plug-in e geometrias 2D e 3Dcomplexas.

https://knowledge.autodesk.com/support/revit-products/learn-explore/caas/CloudHelp/cloudhelp/2016/ENU/Revit-Customize/files/GUID-4DFDA8CD-B0FD-492E-8EDE-A28C29B1E316-htm.html

parcialmente Windows software proprietário,licença educacionalgratuita

Revit, Vasari RevitPythonShell Python Criação de ferramentas plug-in e geometrias 2D e 3Dcomplexas.

github.com/architecture-building-systems/revitpythonshell/blob/master/README.md

sim Windows software proprietário,licença educacionalgratuita e paga

Revit, Vasari &Dynamo Studio

Dynamo "visual",DesignScript

Criação de geometrias "gerativas"* em 3D dynamobim.org/

sim Windows software proprietário,licença educacional paga Rhinoceros Grasshopper "visual" Criação de geometrias "gerativas"* em 3D grasshopper3d.com/

sim Windows, Mac OS software proprietário,licença educacional paga Rhinoceros Python Python Criação de ferramentas plug-in e geometrias 3D complexas. wiki.mcneel.com/developer/python

sim Windows, Mac OS software proprietário,licença educacional paga Rhinoceros Rhinoscript VBScript Criação de ferramentas plug-in e geometrias 3D complexas. wiki.mcneel.com/developer/rhinoscript

sim Windows, Mac OS, Linux software livre ou opensource Scratch Scratch "visual" Educação, jogos scratch.mit.edu/ scratch.mit.edu

sim Windows, Mac OS software proprietário,licença educacionalgratuita e paga

SketchUp Ruby Ruby Criação de ferramentas plug-in e geometrias 3D complexas. www.sketchup.com/intl/en/developer/ Livro Automatic SketchUp

sim Windows, Mac OS software proprietário,licença educacionalgratuita

Vectorworks Marionete "visual" Criação de geometrias "gerativas"* em 3D developer.vectorworks.net/index.php/Marionette www.techlimits.com/index.php/vectorworks-2016-marionete

sim Windows, Mac OS software proprietário,licença educacionalgratuita

Vectorworks Vectorscript Pascal Criação de objetos paramétricos, ferramentas plug-in egeometrias 3D complexas.

developer.vectorworks.net/index.php/VectorScript https://stackoverflow.com/questions/263774/where-can-i-find-resources-on-vectorscript-programming-language

sim Windows, Mac OS software proprietário,licença educacionalgratuita

Vectorworks Python Python Criação de objetos paramétricos, ferramentas plug-in egeometrias 3D complexas.

developer.vectorworks.net/index.php/Python

sim online - Trinket.io(no navegador)

Python "visual", Python,Javascript

Ensino de programação trinket.io hourofpython.com

não Windows, Mac OS, Linux BlueJ Java Java Ensino de programação www.bluej.org/ http://www.bluej.org/objects-first/

não Windows, Mac OS, Linux Greenfoot Java Java Ensino de programação www.greenfoot.org/door http://www.greenfoot.org/book/

não Windows software proprietário 3D Max Python Python docs.autodesk.com/3DSMAX/16/ENU/3ds-Max-Python-API-Documentation/index.html

não Windows software proprietário 3D Max MAXScript MAXScriptnão Windows, Mac OS software proprietário Cinema 4D Python Pythonnão Windows, Mac OS software proprietário Cinema 4D Coffee Coffeenão software proprietário Maya Python Pythonnão Unity C# C Jogos, visualizações interativas https://unity3d.com/learn/tutorials/topics/scripting

não Unreal Engine Blueprints "visual" Jogos, visualizações interativas https://docs.unrealengine.com/latest/INT/Engine/Blueprints/GettingStarted/index.html

*a tradução usual é "generativas" mas há discordâncias... NOTA: Não foram incluídos os SDKs, voltados para odesenvolvimento profissional de extensões (em geral em C), quefogem ao escopo do ensino introdutório de programação.

Anexo I - Plataformas e linguagens Algoritmos para arquitetos, designers e artistas - referências para o ensino de programação

Page 38: [ALEXANDRE VILLARES]  Monografia

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Page 39: [ALEXANDRE VILLARES]  Monografia

por Alexandre B A VIllares, licença CC-BY-SA-4.0 Revisão 15.12.16

ID Ficha Tipo Título Autores Edição Palavras chave Língua Onde encontrar Licenças especiais01 sim livro, PDF 10 print chr$(205.5+rnd(1)) :goto 10 BAUDOIN, Patsy; REAS, Casey; MARINO, Mark

C.; DOUGLASS, Jeremy; BELL, John; SAMPLE,Mark; BOGOST, Ian; MONTFORT, Nick.

Cambridge, Mass.: MIT Press,2013.

Cultura digital, arte inglês [PDF disponível] 10print.org Creative Commons BY-NC-SA 3.0

02 não PDF Arduino 101 Oficina para principiantes RAMALHO, Luciano. - Arduino, indtrodutório português [PDF disponível]speakerdeck.com/ramalho/arduino-101

Creative Commons BY-SA

03 não livro Arduino Básico McROBERTS, Michael. Segunda edição, Novatec,2015

Arduino, indtrodutório português novatec.com.br/livros/arduino2ed/ -

04 sim livro, site Automate the Boring Stuff with Python: PracticalProgramming for Total Beginners

SWEIGART, Al. No Starch Press; 1 edition(May 1, 2015)

Python inglês [Leia online] automatetheboringstuff.com Creative Commons BY-NC-SA 4.0

04bis sim livro Automatize tarefas maçantes com PythonProgramação prática para verdadeiros iniciantes

SWEIGART, Al. Novatec, 2015 Python português novatec.com.br/livros/automatizepython/ -

05 sim livro, PDF Automatic SketchUp: Creating 3-D Models in Ruby SCARPINO, Matthew. Eclipse Engineering, 2010 SketchUp, Ruby inglês [PDF disponível] www.automaticsketchup.com -

06 sim site Como Pensar Como um Cientista da Computação- aprendendo com Python

DOWNEY, Allen B. [e diversos autores daversão interativa]

Edição online traduzida noIME-USP

Python Português [Leia online]panda.ime.usp.br/pensepy/static/pensepy/

GNU Free Documentation License 1.3

06bis sim site Pense Python 2 DOWNEY, Allen B. Nova tradução iniciada em2015

Python Português [Leia e colabore]github.com/PensePython/PensePython2/

Creative Commons BY-NC 3.0

07 não livro Form+Code in Design, Art, and Architecture REAS, Casey; McWILLIAMS, Chandler;BARENDSE, Jeroen.

Princeton Architectural Press,2010

Processing, Arte inglês formandcode.com/ -

08 não livro, PDF,site

GDL Cookbook NICHOLSON-COLE, David. Marmalade, 2002 ArchiCAD, GDL inglês nottingham.ac.uk/~lazwww/cookbook/ -

09 não livro Generative Design: Visualize, Program, and Create withProcessing

Hartmut Bohnacker (Author), Benedikt Gross(Author), Julia Laub (Author), ClaudiusLazzeroni (Editor)

Princeton Architectural Press,2012

Processing, Arte inglês www.amazon.com/Generative-Design-Visualize-Program-Processing/dp/1616890770/

-

10 não livro,ebook

Getting Started with p5.jsMaking Interactive Graphics in JavaScript andProcessing

REAS, Casey; FRY, Ben. Maker Media, 2015 P5*JS, introdutório inglês shop.oreilly.com/product/0636920032076.do -

11 não vídeointerativo

Hello P5JS GARNER, Scott; SHIFFMAN, Daniel;MAcCARTHY, Lauren.

P5JS.org, 2014 P5JS, Javascript inglês [Assista online] hello.p5js.org Creative Commons BY-NC-SA 4.0

12 sim vídeointerativo

Hello Processing SHIFFMAN, Daniel. Processing Foundation, 2013 Cultura digital, arte,Processing, Introdutório

inglês [Assista online] hello.processing.org Creative Commons BY-NC-SA 4.0

13 não site Hour of Python Trinket.io Python, Introdutório inglês https://hourofpython.com/ -

14 sim PDF Introdução à programação gráfica (usando Processing) BARROS, Pedro. FBAUP, 2007 Processing Português [PDF disponível] hdl.handle.net/10216/1848 Creative Commons BY-NC-SA 2.5

15 sim livro Introducing Python: Modern Computing in SimplePackages

LUBANOVIC, Bill. O'Reilly, 2014 Python, Introdutório inglês shop.oreilly.com/product/0636920028659.do -

16 não livro,ebook

Learning Processing, Second Edition SHIFFMAN, Daniel. Segunda edição, MorganKaufmann, 2015

Processing, Introdutório inglês learningprocessing.com -

17 não livro,ebook

Make: Getting Started with Processing REAS, Casey; FRY, Ben. Segunda edição, MakerMedia, 2015

Processing, Introdutório inglês shop.oreilly.com/product/0636920031406.do -

18 não site P5*JS Tutorials [diversos autores] Processing Foundation Processing, Python,Conceitos deProgramação

inglês [Acesse] http://p5js.org/tutorials/ ?

19 sim livro Processing: A Programming Handbook forVisualDesigners and Artists.

REAS, Casey; FRY, Ben. MIT Press, Cambridge, 2007 esegunda edição revisada,2014.

Introdutório, Essencial,Processing, Artes visuais

inglês processing.org/handbook/ -

20 não livro Processing: Creative Coding and Computational Art inProcessing 2

GREENBERG, Ira; XU, Dianna; KUMAR,Deepak.

Segunda edição, Apress, 2013 Processing inglês apress.com/9781430244646 -

21 sim site Processing.org Tutorials [diversos autores] Processing Foundation Processing, Java,Conceitos deProgramação

inglês [Acesse] https://processing.org/tutorials/ Licenças variadas, alguns são CreativeCommons BY-NC-SA 4.0

22 sim site py.Processing.org Tutorials [diversos autores] Processing Foundation Processing, Python,Conceitos deProgramação

inglês [Acesse]http://py.processing.org/tutorials/

Licenças variadas, alguns são CreativeCommons BY-NC-SA 4.0

23 sim ebook Python in education - Teach, Learn, Program TOLLERVEY, Nicholas. O’Reilly, Sebastopol, 2015. Introdutório, Python,educação

inglês [ePUB grátis disponível]www.oreilly.com/programming/free/python-in-education.csp

-

24 sim livro, site The Nature of Code: Simulating Natural Systems withProcessing.

SHIFFMAN, Daniel. Publicado pelo autor, NovaIorque, 2013.

Processing, simulaçõesfísicas, avançado

inglês [Leia online] natureofcode.com Creative Commons BY-NC 3.0

25 sim livro, site,PDF, ebook

Think Python - How to Think Like a Computer Scientist DOWNEY, Allen B. O'Reilly; Green Tea Press Python inglês [Leia online]www.greenteapress.com/thinkpython2/index.html

Creative Commons BY-NC 3.0

26 sim artigo What is Code? FORD, Paul. Bloomberg, Businessweek, 11de junho de 2015

Cultura digital,Introdutório

inglês [Leia online] bloomberg.com/graphics/2015-paul-ford-what-is-code/

-

Anexo II - Bibliografia e referências Algoritmos para arquitetos, designers e artistas - referências para o ensino de programação

Page 40: [ALEXANDRE VILLARES]  Monografia

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Page 41: [ALEXANDRE VILLARES]  Monografia

BAUDOIN, Patsy; REAS, Casey; MARINO,

Mark C.; DOUGLASS, Jeremy; BELL, John;

SAMPLE, Mark; BOGOST, Ian;

MONTFORT, Nick. 10 print chr$(205.5+rnd(1)) :goto 10 Cambridge, Mass.: MIT Press, 2013.

livro, PDF - em inglês

palavras chave: Cultura digital, arte

[PDF disponível] 10print.org

Um programa de apenas uma linha de código (que

é o título deste livro) encantou um enorme número

de jovens e entusiastas da computação pessoal

gerando um infindável labirinto nas telas do seus

computadores Commodore 64.

Dez autores escrevem

colaborativamente estes ensaios

sobre o pequeno programa,

tocando em questões na

intersecção entre arte, tecnologia,

cultura e programação. Um dos

trechos mais inspiradores é um

história cultural dos labirintos

recionando o 10 PRINT com o mito

de Teseu em Creta.

Sumário e detalhe de uma página do livro.

Page 42: [ALEXANDRE VILLARES]  Monografia

SWEIGART, Al. Automate the Boring Stuff with Python: Practical Programming for Total Beginners / Automatize tarefas maçantes com Python: Programação prática para verdadeiros iniciantes No Starch Press / Novatec 2015

livro, site - em inglês, livro - em português

palavras chave: Python

[Leia online] automatetheboringstuff.com [Para comprar em portuguës] novatec.com.br/livros/automatizepython/

Esta é uma bem humorada e acessível introdução à programação por meio da

linguagem Python.

O livro não assume nenhum conhecimento prévio de programação, mas pode ser

ainda um pouco árido se comparado com tutorais que estimulam a escrita de

software com foco nos elementos gráficos, como atividade artística e criativa, uma vez

que os exemplos aqui tratam de automatizar tarefas, repetitivas, como elencadas no

site da Novatec:

● Pesquisar texto em um arquivo ou em vários arquivos.

● Criar, atualizar, mover e renomear arquivos e pastas. ● Pesquisar na Web e fazer download de conteúdos online. ● Atualizar e formatar dados em planilhas Excel de qualquer tamanho. ● Separar, combinar, adicionar marcas-d'água e criptografar PDFs. ● Enviar emails para lembretes e notificações textuais. ● Preencher formulários online.

Sumário detalhado

EN: http://www.nostarch.com/download/Automate_the_Boring_Stuff_dTOC.pdf PT: http://www.novatec.com.br/livros/automatizepython/sumario9788575224465.pdf

Page 43: [ALEXANDRE VILLARES]  Monografia

SCARPINO, Matthew. Automatic SketchUp: Creating 3-D Models in Ruby Eclipse Engineering, 2010

livro, PDF - em inglês

palavras chave: SketchUp, Ruby

[PDF distonível] automaticsketchup.com

O SketchUp tem embutido um interpretador da liguagem Ruby.

O Ruby no SketchUp pode ser acessado por

meio de um console (modo interativo) mas também por meio da execução de pequenos programas (scripts) salvos em arquivos .rb. Em ambos os casos tendo acesso aos objetos do desenho, geometria e dados. Torna-se possível editar estes objetos assim como gerar novas e complexas geometrias (que muitas vezes seriam praticamente impossíveis de serem produzidas por um usuário manualmnete).

Este livro é uma boa introdução à programação, através do Ruby e feita dentro do

próprio SketchUp. Explica como usar as classes Ruby que constroem pontos, arestas, superfícies e em seguida trata de tópicos mais avançados como animações e matrizes de transformação.

Usando Ruby é possível criar ferramentas novas que se integram a interface do

programa, são os chamados plug-ins ou extensões. Há uma animada comunidade de desenvolvedores, tanto profissionais como amadores produzindo extensões para o SketchUp.

Page 44: [ALEXANDRE VILLARES]  Monografia

DOWNEY, Allen B.

Como Pensar Como um Cientista da Computação - aprendendo com Python / Pense Python 2 Edição online no IME-USP / Nova

tradução colaborativa inicidada em 2015

site - em Português

palavras chave: Python

[Leia online] panda.ime.usp.br/pensepy/static/pensepy/

Esta é uma tradução de uma versão interativa da

conceituada introdução a programação com Python,

disponível online no site do IME-USP.

Note que há um novo esforço em andamento para traduzir

para o português a edição mais recente de Think Python (2015) em github.com/PensePython/PensePython2/

Page 45: [ALEXANDRE VILLARES]  Monografia

SHIFFMAN, Daniel.

Hello Processing

Processing Foundation, 2013

vídeo interativo - em inglês

palavras chave: Cultura digital, arte, Processing, Introdutório

[Assista online] hello.processing.org

Este maravilhoso vídeo interativo criado para a inciativa "Hour of Code", da Code.org

em 2013 , além de ensinar os primeiros passos do Processing tem uma empolgante

introdução de alguns minutos mostrando exemplos de obras de arte criadas com o

auxílio da plataforma. Daniel Shiffman em performance icônica.

Texto de Alexandre B A VIllares, sob licença CC-BY-SA-4.0. As imagens são do site hello.processing.org, que por sua vez

também foi licenciado CC-BY-SA-4.0 - http://hello.processing.org/about/

Page 46: [ALEXANDRE VILLARES]  Monografia

 

 

BARROS, Pedro. 

Introdução à programação gráfica (usando Processing) FBAUP, 2007 

PDF - em Português palavras chave:  Processing 

[PDF disponível] hdl.handle.net/10216/1848 

 

Material didático utilizado por Pedro Amado, 

autodenominado  Tipófilo  e  Digital Tinkerer , professor auxiliar no Departamento de Comunicação e Arte da Universidade de Aveiro (DECA), onde leciona Design para Digital Media  e Multimédia Editorial desde 2007. 

Page 47: [ALEXANDRE VILLARES]  Monografia

LUBANOVIC, Bill. Introducing Python: Modern Computing in Simple Packages O'Reilly, 2014

livro - em inglês

palavras chave: Python, Introdutório

shop.oreilly.com/product/0636920028659.do

Uma introdução muito completa que não assume

conhecimento prévio de programação, mas avança

cuidadosamente e introduzindo material bastante

interessante.

Page 48: [ALEXANDRE VILLARES]  Monografia

REAS, Casey; FRY, Ben.

Processing: A Programming

Handbook for Visual Designers

and Artists . MIT Press, Cambridge, 2007 e segunda edição revisada, 2014.

livro - em inglês

palavras chave: Introdutório, Essencial, Processing, Artes visuais

processing.org/handbook/

Este livro escrito pelos criadores do

Processing e publicado pelo MIT é um manual de referência completo da plataforma, organizado por temas e enriquecido com entrevistas com artistas/programadores 1

A segunda edição foi amplamente

revisada, para dar conta das versões 2 e 3 do Processing, e os capítulos denominados 'Extensões' podem ser consultados online nas páginas de tutoriais (permitindo assom atualizações futuras).

Table of contents : mitpress.mit.edu/sites/default/

files/Reas_2E_1stpp_TOC.pdf

1 SUE.C, Larry Cuba, Mark Hansen, Lynn Hershman Leeson, Jürg Lehni, LettError, Golan Levin and Zachary Lieberman, Benjamin Maus, Manfred Mohr, Ash Nehru, Josh On, Bob Sabiston, Jennifer Steinkamp, Jared Tarbell, Steph Thirion, Robert Winter.

Page 49: [ALEXANDRE VILLARES]  Monografia

[diversos autores] Processing.org Tutorials Processing Foundation

site - em inglês

palavras chave: Processing, Java, Conceitos de Programação

[Acesse] processing.org/tutorials/

Estes tutorias, escritos por diversos autores,

entre os quais Casey Reas Ben, Fry e Dan Shiffman são material de apoio inestimável que foi usado extensivamente no preparo da disciplina proposta.

Recomendo fortemente a leitura.

Page 50: [ALEXANDRE VILLARES]  Monografia

[diversos autores] py.Processing.org Tutorials Processing Foundation

site - em inglês

palavras chave: Processing, Python, Conceitos de Programação

[Leia online] py.processing.org/tutorials/

A versão transcrita para o Modo Python, e ainda muito incompleta, dos tutoriais

disponíveis no site principal Processing.org , são material de apoio muito útil que recomendo ser estudado.

Page 51: [ALEXANDRE VILLARES]  Monografia

TOLLERVEY, Nicholas. Python in education - Teach, Learn, Program O'Reilly, 2014

ebook - em inglês

palavras chave: Introdutório, Python, educação

[ePUB grátis disponível] oreilly.com/programming/free/python-in-education.csp

O que torna Python tão apropriado para o ensino introdutório de programação?

No momento existe um forte movimento

pela inclusão da ciência da computação e programação no currículo escolar, este pequeno livro eletrônico gratuito em ePub traça um panorama do uso central que a linguagem Python tem tido na experiência de diversos educadores.

O autor cita em um trecho publicado no site

Radar O'Reilly cinco motivos pelos quais 1

Python é uma linguagem popular no ensino de programação:

● Código legível;

● Simplicidade óbvia; ● Extensibilidade aberta; ● Roda em diversas plataformas; ● Humanidade (a comunidade amistosa é a arma secreta do sucesso do Python).

1 5 reasons why Python is a popular teaching language http://radar.oreilly.com/2015/04/five-reasons-why-python-is-a-popular-teaching-language.html

Page 52: [ALEXANDRE VILLARES]  Monografia

SHIFFMAN, Daniel. The Nature of Code: Simulating Natural Systems with Processing. Publicado pelo autor, Nova Iorque, 2013.

livro, site - em inglês

palavras chave: Processing, simulações físicas, avançado

[Leia online] natureofcode.com

Este título, mais avançado trata da simulação de sistemas

naturais usando a programação (com exemplos em Processing),

começando com vetores e forças, rapidamente simulando

sistemas de partículas, ensinando usar bibliotecas de terceiros e

por fim explorando temas como automatos celulares, fractais,

algorítmos evolutivos e redes neurais.

Page 53: [ALEXANDRE VILLARES]  Monografia

DOWNEY, Allen B.

Think Python - How to Think

Like a Computer Scientist

O'Reilly; Green Tea Press

livro, site, PDF, ebook - em inglês

palavras chave: Python

[Leia online] www.greenteapress.com/thinkpython2/html/index.html

www.openbookproject.net/thinkcs/python/english2e/

Conceituada introdução a programação com Python,

disponível em diversas versões online, incluindo uma versão interativa . Há um esforço em andamento para 1

traduzir para o português da edição mais recente.

1 interactivepython.org/runestone/static/thinkcspy/index.html

Page 54: [ALEXANDRE VILLARES]  Monografia

FORD, Paul. What is Code? Bloomberg, Businessweek, 11 de junho

de 2015

artigo, site - em inglês

palavras chave: Cultura digital, Introdutório

[Leia online] bloomberg.com/graphics/2015-paul-ford-what-is-code/

O que é código ou programa de computador?

Um computador é um relógio com

algumas vantagens, afirma o autor.

Programas de computador, código,

é o que faz funcionar um caixa

eletrônico, o site do seu banco,

uma máquina de lavar roupa, um

automóvel e é claro o seu celular e

seu computador.

Dependem da programação para

funcionar a maior parte dos

equipamentos do mundo em que

vivemos.

Este artigo que ocupou uma edição

inteira da revista Businessweek faz

uma grande e vigorosa explicação

do que é a programação e alguns

dos conceitos mais importantes

deste nosso universo tecnológico.