Buscar

Artigo_De_Planejamento_de_Experimentos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Cientistas da Computação
Deveriam Experimentar Mais?
Cientistas da computação e profissionais defendem
Sua falta de experimentação com uma ampla gama
De argumentos. Alguns argumentos sugerem que
A experimentação é inadequada, muito difícil,
Inútil e até prejudicial. Este artigo
Discute vários desses argumentos para ilustrar
A importância da experimentação para
Ciência da Computação.
 O que os cientistas da computação precisam
experimentar? Somente se respondermos "sim",
faz sentido perguntar se há o suficiente disso.
 Em sua palestra para o Prêmio Allen Newell,
Fred Brooks sugere que a ciência da computação
"não é uma ciência, mas um sintético, uma
disciplina de engenharia. ” Em uma engenharia
campo, testar teorias por experimentos seria ser
extraviado. Brooks e outros parecem
preocupados com o fato de que os fenômenos
estudados na ciência da computação parecem
fabricados. Computadores e programas são
criações humanas, então podemos concluir que o
computador a ciência não é uma ciência natural
no tradicional senso.
 A visão da engenharia da ciência da
computação é muito estreita, muito míope de
computador. Os principais assuntos de
investigação em ciência da computação não são
meramente computadores, mas estruturas de
informação e informação processos. Os
computadores desempenham um papel
dominante porque eles tornam os processos de
informação mais fáceis de modelar e observar.
No entanto, de forma alguma os computadores
são os únicos lugares onde ocorrem os processos
de informação. Na verdade, modelos de
computador se comparam mal com as
informações processos encontrados na natureza,
digamos, nos sistemas nervosos, em sistemas
imunológicos, em processos genéticos, ou, se
você quiser, 
nos cérebros de programadores e usuários de
computador. O fenómenos estudados em ciência
da computação são muito mais ampla do que
aquelas que surgem em torno dos computadores.
 Com relação à natureza do computador
fabricado fenômenos (sua “sintetização”),
prefiro pensar sobre computadores e programas
como modelos. Modelagem está na melhor
tradição da ciência, porque nos ajuda estudar
fenômenos de perto. Por exemplo, para estudar
lasing, é preciso construir um laser. Não
obstante se os lasers ocorrem na natureza,
construir um laser faz não fazer o fenômeno da
massiva estimulada emissão artificial.
Elementos superpesados devem ser sintetizados
no laboratório para estudo, porque são instáveis
e não ocorrem naturalmente, mas ninguém
assume que a física das partículas é sintética.
 Da mesma forma, computadores e software não
ocorrem naturalmente, mas eles nos ajudam a
modelar e estudar informações processos. Usar
esses dispositivos não renderiza informações
processos artificiais.
 Uma grande diferença das ciências tradicionais
é que informação não é energia nem matéria.
Poderia isso diferença é a razão pela qual vemos
pouca experimentação em ciência da
computação? Para responder a essas perguntas,
vamos olhe para o propósito dos experimentos.
POR QUE DEVEMOS EXPERIMENTAR?
 Quando discuto o propósito dos experimentos
com matemáticos, eles frequentemente
exclamam que os experimentos não prova nada.
É verdade que nenhuma quantidade de
experimentação fornece prova com certeza
absoluta. Então, para que servem os
experimentos? Usamos experimentos para testes
teóricos e para exploração.
 Experimentalistas testam previsões teóricas
contra realidade. Uma comunidade aceita
gradualmente uma teoria se todos fatos
conhecidos dentro de seu domínio podem ser
deduzidos de a teoria, se ela resistiu a inúmeras
testes, e se prevê corretamente novos
fenômenos.
 No entanto, sempre há um elemento de
suspense: Parafraseando Edsger Dijkstra, um
experimento só pode mostrar a presença de bugs
em uma teoria, não sua ausência. Os cientistas
estão bem cientes dessa incerteza e estão,
portanto, prontos para derrubar uma teoria se
evidências contraditórias vierem à tona.
 Um bom exemplo de falsificação de teoria em
computador ciência é o famoso experimento de
Knight e Leveson, 3 que analisou as
probabilidades de falha do multiversão
programas. A teoria convencional previu que a
probabilidade de falha de um programa
multiversão era o produto das probabilidades de
falha do indivíduo versões. No entanto, John
Knight e Nancy Leveson observou que
programas multiversão reais tinham
probabilidades de falha significativamente
maiores. Em essência, o experimento falsificou a
suposição básica da teoria convencional, ou seja,
que falhas no programa as versões são
estatisticamente independentes.
 Os experimentos também são usados onde a
teoria e dedutiva a análise não alcança.
Experimentos sondam a influência de
suposições, eliminar explicações alternativas de
fenômenos, e descobrir novos fenômenos
precisa de explicação. Neste modo, os
experimentos ajudam com indução: derivando
teorias da observação.
 Redes neurais artificiais são um bom exemplo
de o modo exploratório de experimentação.
Depois de ter foi descartado por motivos
teóricos, experimentos propriedades
demonstradas melhores do que o previsto. Os
pesquisadores estão agora desenvolvendo teorias
melhores para responsável por essas
propriedades.
O método científico tradicional não é
aplicável
 O fato de que – no campo da ciência da
computação o assunto da investigação é
informação em vez de energia ou a matéria não
faz diferença na aplicabilidade de o método
científico tradicional. Para entender a natureza
dos processos de informação, cientistas da
computação deve observar fenômenos, formular
explicações e teorias e testá-las.
 Existem muitas teorias da ciência da
computação que não foi testado. Por exemplo,
programação funcional, programação orientada a
objetos e formal métodos são todos pensados 
para melhorar a produtividade do programador,
qualidade do programa, ou ambos. É
surpreendente que nenhuma dessas afirmações
obviamente importantes jamais foram testados
sistematicamente, embora sejam todos 30 anos
de idade e muito esforço foi dedicado ao
desenvolvimento linguagens de programação e
técnicas formais.
 
 As ciências tradicionais usam teste de teoria e
exploração iterativamente porque as observações
ajudam a formular novos teorias que podem ser
validadas posteriormente. Um importante
requisito para qualquer experimento, no entanto,
é a repetibilidade. A repetibilidade garante que
os resultados possam ser verificados de forma
independente e, portanto, aumenta a confiança
nos resultados. Ajuda a eliminar erros, boatos e
fraudes.
Refutação: Para entender os processos de 
informação, computador os cientistas devem 
observar fenômenos, formular explicações e 
teste-as. Este é o método científico.
Falácia 1. Método científico tradicional
não é aplicável.
O nível atual de experimentação é bom o
suficiente
 Sugerindo que o nível atual de experimentação
não precisa mudar é baseado na suposição de
que cientistas da computação, como um grupo,
sabem o que são fazendo. Este argumento
sustenta que se precisarmos de mais
experimentos, nós simplesmente os faremos.
 Mas esse argumento é tênue; vamos olhar os
dados. Em “Avaliação Experimental em Ciência
da Computação: A Estudo Quantitativo ”, 4
meus co-autores e eu classificamos 400 artigos.
Em seguida, continuamos considerando aqueles
artigos cujas afirmações exigiam avaliação
empírica. Por exemplo, excluímos artigos que
provaram ser matemáticos teoremas, porque a
teoria matemática não pode ser provado por
experimentos.
 Em uma amostra aleatória de todos os artigos
publicados pela ACM em 1993, o estudo
descobriu que 40 por cento dos papéis com
afirmações que precisavam de suporte empírico
tinham Nenhum mesmo. Em periódicosrelacionados a software, esta fração foi de 50
por cento. O mesmo estudo também analisou um
não computador periódico científico, Optical
Engineering e descobriram que a fração de
papéis sem dados quantitativos avaliação foi de
apenas 15 por cento.
 
 O estudo de Marvin Zelkowitz e Dolores
Wallace (no computador deste mês) achou
semelhante os resultados. Ao aplicar uma
classificação consistente esquemas, ambos os
estudos relatam que entre 40 e 50 por cento dos 
papéis de engenharia de software não foram
validados. Zelkowitz e Wallace também
pesquisaram periódicos em física, psicologia e
antropologia e novamente encontraram
percentagens muito menores de papéis não
validados do que na ciência da computação.
 Em relação a outras ciências, os dados mostram
que o computador cientistas validam uma
porcentagem menor de suas reivindicações.
Alguns argumentariam que a ciência da
computação em 50 anos ainda é jovem e,
portanto, comparando-o a outros ciências têm
valor limitado. Eu discordo, principalmente
porque 50 anos parece bastante tempo para duas
a três gerações de cientistas para estabelecer
princípios sólidos. Mas mesmo em uma escala
absoluta, acho assustador quando metade dos
papéis não matemáticos tornam-se não validados
reivindicações.
 Suponha que cada ideia publicada sem
validação teria que ser seguido por, pelo menos,
duas validações estudos (que é um requisito
muito leve). Isto segue que não mais que um
terço dos artigos publicados pode conter
reivindicações não validadas. Os dados sugerem
que os cientistas da computação publicam
muitas coisas não testadas ideias ou que as
ideias publicadas não valem testando.
 Não estou defendendo a substituição da teoria e
da engenharia com a experiência, mas estou
defendendo um equilíbrio melhor. Eu defendo o
equilíbrio não porque seria desejável para a
ciência da computação parecer mais científica,
mas devido aos seguintes benefícios principais:
Refutação: em relação a outras ciências, os 
dados mostram que cientistas da computação 
validam uma porcentagem menor de seus 
reivindicações.
Falácia 3. Os experimentos custam muito 
caro.
Refutação: experimentos significativos 
podem caber em pequenas orçamentos; 
experimentos caros podem valer mais do que
seu custo.
Falácia 2. O nível atual de
a experimentação é boa o suficiente.
• A experimentação pode ajudar a
construir uma base confiável de
conhecimento e, assim, reduzir a
incerteza sobre quais teorias, métodos e
ferramentas são adequados.
• Observação e experimentação podem
levar a percepções novas, úteis e
inesperadas e abertas áreas totalmente
novas de investigação. Experimentação
pode entrar em áreas desconhecidas onde
a engenharia progride lentamente, se é
que o faz.
• A experimentação pode acelerar o
progresso em eliminando rapidamente
abordagens infrutíferas, errôneas
suposições e modismos. Também ajuda a
orientar engenharia e teoria em direções
promissoras.
 Por outro lado, quando ignoramos a
experimentação e evitamos o contato com a
realidade, dificultamos o progresso.
As experiências custam muito caro
 A experimentação requer claramente mais
recursos do que a teoria. A primeira linha de
defesa contra experimentação é normalmente,
“Fazendo um experimento seria incrivelmente
caro ”ou“ Para fazer isso direito, Eu precisaria
de centenas de assuntos, trabalho por anos sem
publicar e gastar uma quantia enorme de
dinheiro." Um cientista obstinado pode
responder: “Então o que?"
 Em vez de ficar paralisado por considerações
de custo, tal cientista primeiro investigaria a
importância de a questão de pesquisa. Quando
convencido de que a pesquisa aborda um
problema fundamental, um experiente
experimentalista, então, planejaria um
apropriado programa de pesquisa, procurando
ativamente técnicas experimentais acessíveis e
sugerindo etapas intermediárias com resultados
parciais ao longo do caminho.
 Para um cientista, o potencial de financiamento
não deve ser o único ou critério principal para
decidir quais questões perguntar. Nas ciências
tradicionais, existe um complexo processo social
em que questões importantes se cristalizam.
Estes se tornam o foco da pesquisa, o avanço
objetivos que abrem novas áreas.
 Por exemplo, a primeira validação
experimental de relatividade geral – realizada
por Issac Eddington em 1919 – era
extremamente caro e mal mostrou o efeito. 
Eddington usou um eclipse solar total para
verificar a teoria de Einstein de que a gravidade
dobra a luz quando passa perto de uma estrela
massiva. Este foi um verdadeiro experimento
caro porque envolveu uma expedição para a Ilha
do Príncipe, África Ocidental, e também porque
o experimento ultrapassou os limites da
fotografia tecnologia de emulsão. Mas era
importante testar se Einstein estava correto.
 Poucas investigações são de escopo
comparável
para a relatividade geral, mas há muitos
perguntas menores e ainda importantes para
responder. Os experimentos podem ser caros,
mas nem todos são proibitivamente caro.
Experimentos significativos podem cabem no
orçamento de pequenos laboratórios. No outro
Por outro lado, experimentos caros podem valer
muito mais do que seu custo.
 Quando seres humanos estão envolvidos em
um experimento, o custo geralmente aumenta
dramaticamente, enquanto a significância gotas.
Quando são experimentos caros justificado?
Quando as implicações dos insights obtidos
superam os custos.
 Um segmento significativo da indústria de
software converteu
de C para C ++ com um custo substancial de
retreinamento. Podemos perguntar o quão
solidamente fundamentada a decisão mudar para
C ++ era. Além de estudos de caso (que são
questionáveis porque não generalizam
facilmente e pode estar sob pressão para
demonstrar o resultados), não tenho
conhecimento de nenhuma evidência sólida
mostrando que C ++ é superior a C em relação
ao programador produtividade ou qualidade do
software.
 Nem estou ciente de qualquer confirmação
independente de tal evidência. No entanto, ao
treinar alunos em melhorando seus processos
pessoais de software, meu grupo de pesquisa
observou recentemente que os programadores 
C ++ parecem cometer muitos mais erros e
tomar muito mais do que programadores C de
treinamento comparável - tanto durante o
desenvolvimento inicial quanto na manutenção.
 Suponha que esta observação não seja um
acaso. (Assim como este artigo foi para
impressão, soubemos que um artigo de Les
Hatton, "Does OO Really Match the Way We
Think?" aparecerá na edição de maio da IEEE 
Software, relatando fortes evidências sobre os
efeitos negativos do C ++.) Em seguida,
executar experimentos para testar o fundamento
princípios da programação orientada a objetos
seriam verdadeiramente de valor.
 Esses experimentos podem economizar
recursos muito além de seu custo. Os
experimentos também podem têm um efeito
duradouro e positivo na direção da pesquisa em
linguagens de programação. Eles podem salvar
não apenas o dinheiro da indústria, mas também
o esforço de pesquisa.
 Curiosamente, a indústria de software está
começando a experimentos de valor, porque os
resultados podem dar a uma empresa uma
vantagem de três a cinco anos sobre a
competição. Por exemplo, de acordo com Larry
Votta em uma entrevista pessoal comunicação, a
Lucent Technologies estima que atualmente está
se beneficiando de uma liderança de cinco anos
em software inspeções baseadas em uma série
de experimentos internos.
 É útil verificar quais cientistas em outras
disciplinas gastar em experimentação. Testando
produtos farmacêuticos é extremamente caro,
mas apenas desesperadoros pacientes aceitam
drogas e terapias mal testadas. No aeronáutica,
engenheiros testam aerofólios extensivamente e
construir túneis de vento caros para isso.
Simulação numérica reduziu o número de tais
testes, mas não os eliminou.
 Em muitas ciências, a simulação se tornou
uma ferramenta útil forma de experimentação; a
ciência da computação também pode beneficiar
de boas técnicas de simulação. Em biologia, por 
exemplo, Edward Wilson chama a fragmentação
da floresta Projeto no Brasil o biológico mais
caro experimento ever. Ao limpar um grande
trato do Selva amazônica, os pesquisadores
ficaram isolados manchas de vários tamanhos (1
a 1.000 hectares). O objetivo era testar hipóteses
sobre o relacionamento entre o tamanho do
habitat e o número de espécies restantes.
 A experimentação é amplamente utilizada em
física, química, ecologia, geologia, climatologia
e assim por diante. Scientific American publica
experimentos em todos emitir. Os cientistas da
computação não precisam ter medo ou vergonha
de realizar grandes experimentos para explorar
questões importantes.
As demonstrações serão suficientes 
 Em sua palestra no Prêmio Turing de 1994,
Juris Hartmanis argumenta que a ciência da
computação difere suficientemente de outras
ciências para permitir diferentes padrões em
experimentação, e que as demonstrações podem
levar a lugar de experimentos. Eu não poderia
discordar mais. Demos pode fornecer prova de
conceitos (no sentido de engenharia) ou
incentivos para estudar mais uma questão.
Também muitas vezes, no entanto, essas
demonstrações meramente ilustram um
potencial. As demonstrações dependem
criticamente da imaginação dos observadores e
sua vontade de extrapolar; elas normalmente não
produzem evidências sólidas. Obter tais
evidências, precisamos de uma análise
cuidadosa envolvendo experimentos, dados e
replicação.
Por exemplo, porque o processo de programação
é mal compreendido, os cientistas da 
Falácia 4. As demonstrações serão 
suficientes.
Refutação: as demonstrações podem 
fornecer incentivos para estudar uma questão
adicional. Muitas vezes, no entanto, essas 
demonstrações apenas ilustram um 
potencial.
Falácia 5. Há muito barulho em
o caminho.
Réplica: Felizmente, o benchmarking pode 
ser usado para simplificar variáveis e 
responder a perguntas.
computação poderiam introduzir diferentes
teorias sobre como construir programas dos
requisitos. Essas teorias poderiam então ser
testadas experimentalmente. Poderíamos fazer o
mesmo para a percepção, interfaces homem-
máquina ou interação homem computador em
geral computadores com hierarquias de
armazenamento.
 Precisamos melhorar teorias de algoritmos, e
precisamos testá-los no laboratório. Pesquisa em
sistemas paralelos pode gerar modelos de
máquinas, mas seus méritos relativos só podem
ser explorados experimentalmente. Os exemplos
que eu tenho citados certamente não são
exaustivos, mas todos eles envolvem
experimentos no sentido tradicional. Elas
exigem uma pergunta clara, um aparato
experimental para testar a pergunta, coleta de
dados, interpretação e partilha dos resultados.
Há muito barulho no caminho 
 Outra linha de defesa contra a experimentação
é: “Existem muitas variáveis para controlar e os
resultados seriam sem sentido porque os efeitos
que procuro são inundados por ruído.”
Pesquisadores que invocar essa desculpa estarão
procurando uma saída fácil. Uma maneira eficaz
de simplificar experimentos repetidos é por
benchmarking. Felizmente, o benchmarking
pode ser usado para responder a muitas
perguntas na ciência da computação. A parte
mais subjetiva e, portanto, mais fraca de um
teste de benchmark é a composição do
benchmark. Todo o resto, se devidamente
documentado, pode ser verificado pelo cético.
Consequentemente, a composição de benchmark
é sempre calorosamente debatida. 
 Embora muitas vezes criticado, os benchmarks
são um efeito forma prática e acessível de
conduzir experimentos. Essencialmente, um
benchmark é uma amostra de domínio de tarefa
executada por um computador ou por um ser
humano e um computador. Durante a execução,
o ser humano ou o computador registra
medições de desempenho bem definidas. 
 Benchmarks têm sido usados com sucesso em
áreas amplamente diferentes, incluindo
compreensão de fala, recuperação de
informações, reconhecimento de padrões,
reutilização de software, arquitetura de
computador, avaliação de desempenho, análise
numérica aplicada, algoritmos, compressão de 
dados, síntese lógica e robótica. Um benchmark
fornece um campo de jogo nivelado para ideias
concorrentes e (assumindo que o benchmark é
suficientemente representativo) permite
comparações objetivas e repetíveis. No mínimo,
um benchmark pode eliminar rapidamente
abordagens pouco promissoras e afirmações
exageradas. 
 A construção de um benchmark geralmente é
um trabalho intenso, mas vários laboratórios
podem compartilhar o fardo. Uma vez definido,
um benchmark pode ser executado
repetidamente a um custo moderado. Na prática,
é necessário desenvolver benchmarks para evitar
overfitting. 
 Com relação aos testes de benchmark em
reconhecimento de fala, Raj Reddy escreve:
“Usando bancos de dados comuns, modelos
concorrentes são avaliados dentro sistemas
operacionais. As ideias bem-sucedidas, então,
parecem aparecer magicamente em outros
sistemas dentro de alguns meses, levando a uma
validação ou refutação de mecanismos
específicos para modelar a fala. ” Em muitos dos
exemplos que citei antes, os benchmarks fazem
uma área florescer repentinamente porque eles
fazem é fácil identificar abordagens promissoras
e descartar as pobres. Concordo com Reddy que
“toda a ciência da computação experimental
poderia se beneficiar de tais experimentos
disciplinados”.
 Experimentos com seres humanos envolvem
desafios adicionais. Vários campos,
principalmente medicina e psicologia,
encontraram técnicas para lidar com a
variabilidade humana. Todos nós já ouvimos
sobre grupos de controle, atribuições aleatórias,
placebos, pré e pós-teste, balanceamento,
bloqueio, estudos cegos e duplo-cegos e baterias
de testes estatísticos. O fato de uma droga
influenciar pessoas diferentes de maneiras
diferentes não impede os pesquisadores médicos
de fazerem os testes. Quando o controle é
impossível, os pesquisadores usam estudos de
caso, estudos observacionais e outras técnicas
investigativas. Na verdade, a medicina oferece
muitas lições importantes sobre o projeto
experimental, por exemplo, como controlar
variáveis e minimizar erros. Evitar a
experimentação por causa das dificuldades não é
aceitável. 
Experimentos com seres humanos envolvem
desafios adicionais. Vários campos,
principalmente medicina e psicologia,
encontraram técnicas para lidar com a
variabilidade humana. Todos nós já ouvimos
sobre grupos de controle, atribuições aleatórias,
placebos, pré e pós-teste, balanceamento,
bloqueio, estudos cegos e duplo-cegos e baterias
de testes estatísticos. O fato de uma droga
influenciar pessoas diferentes de maneiras
diferentes não impede os pesquisadores médicos
de fazerem os testes. Quando o controle é
impossível, os pesquisadores usam estudos de
caso, estudos observacionais e outras técnicas
investigativas. Na verdade, a medicina oferece
muitas lições importantes sobre o projeto
experimental, por exemplo, como controlar
variáveis e minimizar erros. Evitar a
experimentação por causa das dificuldades não é
aceitável. 
O progresso vai desacelerar
 Alguns argumentam que, se tudo deve ser
apoiado experimentalmente antes da publicação,
o fluxo de ideias seria estrangulado e o
progresso desaceleraria. Este não é um
argumentopara ser considerado levianamente.
 Em um campo acelerado como a ciência da
computação, o número de idéias em discussão é
obviamente importante. No entanto, a
experimentação não precisa ter um efeito
adverso:
• Aumentando a proporção de papéis com
significado a validação tem uma boa
chance de realmente acelerar o
progresso. Ideias questionáveis seriam
eliminadas mais rapidamente e os
cientistas concentrariam suas energias
em abordagens mais promissoras.
 
• Estou confiante de que os leitores
continuariam a valorizar bons artigos
conceituais e artigos formulando novas
hipóteses, portanto, tais artigos ainda
seriam publicados. Os testes
experimentais viriam mais tarde. 
 É uma questão de equilíbrio. Atualmente, a
pesquisa não teórica raramente vai além do
estado assertivo, caracterizado por uma
justificativa fraca como "parece intuitivamente
óbvio", ou "parece uma boa ideia" ou "Eu tentei
em um pequeno exemplo e funcionou".
Precisamos chegar a um terreno mais firme do
que a afirmação. 
A tecnologia muda muito rápido 
 As preocupações com a mudança rápida da
tecnologia surgem com frequência na arquitetura
do computador. Trevor Mudge resume bem: “A
taxa de mudança na computação é tão grande
que, no momento em que os resultados são
confirmados, eles podem não ser mais
relevantes.” Podemos dizer o mesmo sobre o
software. De que serve um experimento quando
sua duração excede a vida útil do sujeito
experimental – um produto ou ferramenta de
software? 
 
Falácia 6. A experimentação ficará lenta
progresso.
Refutação: Aumentando a proporção de 
papéis com significado a validação tem uma 
boa chance de realmente acelerar progresso.
Falácia 7. A tecnologia muda muito rápido.
Refutação: se uma pergunta se tornar 
irrelevante rapidamente, é definido de forma 
muito restrita e não vale a pena gastar muito
esforço diante.
Falácia 8. Você nunca o publicará.
Refutação: etapas menores ainda valem a 
pena publicar porque eles melhoram nossa 
compreensão e levantam novas questões.
 Se uma pergunta se tornar irrelevante
rapidamente, talvez seja uma definição muito
restrita e não valha a pena despender muito
esforço nela. Mas por trás de muitas questões
com uma vida curta se esconde um problema
fundamental com uma vida-longa; os cientistas
devem sondar o fundamental e não o efêmero,
aprendendo a diferenciar. Além disso, a
mudança tecnológica geralmente altera ou
elimina suposições que antes eram tidas como
certas. 
 Os cientistas devem, portanto, antecipar
mudanças nas suposições e empregar
experimentos de forma proativa para explorar as
consequências de tais mudanças. Esse tipo de
trabalho é muito mais exigente e pode ter um
valor muito maior a longo prazo do que
simplesmente comparar produtos de software. 
Você nunca vai conseguir publicar 
 Algumas revistas científicas estabelecidas têm
dificuldade em encontrar editores e revisores
capazes de avaliar o trabalho empírico. Os
teóricos podem dominar seus conselhos
editoriais e os experimentadores são
frequentemente confrontados com revisores que
esperam perfeição e certeza absoluta. No
entanto, os experimentos são conduzidos no
mundo real e, portanto, sempre apresentam
falhas de alguma forma. Mesmo assim, tenho
visto publicações exigindo que os experimentos
sejam conduzidos com centenas de assuntos ao
longo de muitos anos e vários projetos
industriais antes da publicação. Precisamos
perceber que ainda vale a pena publicar etapas
menores porque melhoram nosso entendimento
e levantam novas questões. 
 Em minha experiência, publicar resultados
experimentais não é difícil se escolhermos a
saída certa. Eu faço parte do conselho editorial
de três periódicos. Eu reviso para várias revistas
adicionais e servi em vários comitês de
conferências. Todos os jornais e conferências
não teóricas que conheço acolheriam muito bem
artigos que descrevessem experimentações
sólidas. Apesar da rejeição ocasional de artigos
de alta qualidade, estou convencido de que o
baixo número de bons artigos experimentais é
um problema de abastecimento. 
 Temos, no entanto, que o pesquisador de
sistemas antigo enfrente dificuldades. Apenas
construir sistemas não é suficiente, a menos que
o sistema demonstre algum tipo de inovação, 
uma inovação. A ciência da computação
contínua a ser favorecida com tais avanços, e
devemos continuar a lutar por eles. A maioria
dos pesquisadores de sistemas, entretanto,
trabalha em melhorias incrementais de ideias
existentes. Esses pesquisadores devem tentar se
tornar experimentalistas respeitáveis e devem
articular como seus sistemas contribuem para o
nosso conhecimento. Os sistemas vêm e vão.
Precisamos de insights sobre os conceitos e
fenômenos subjacentes a esses sistemas. 
Por que os substitutos não funcionam 
 Podemos sobreviver com formas de validação
mais fracas do que a experimentação? Depende
da pergunta que estamos fazendo. Um modelo
convencional para um artigo científico inclui os
seguintes elementos:
• O trabalho descreve uma nova ideia, 
prototipada talvez em um pequeno 
sistema.
• O trabalho reivindica seu lugar na 
“ciência” ao fazer comparações de 
recursos. Ou seja, o relatório apresenta 
uma lista de recursos e compara 
qualitativamente as abordagens mais 
antigas com as novas, recurso por 
recurso.
Acho esse método satisfatório quando alguém
apresenta uma ideia radicalmente nova ou um
avanço significativo, como quando os
pesquisadores apresentaram o primeiro
compilador para uma linguagem estruturada em
blocos, sistema de compartilhamento de tempo,
linguagem orientada a objetos ou navegador da
web. 
 Infelizmente, a maioria dos artigos publicados
leva passos muito menores para a frente. À
medida que a ciência da computação se torna
uma ciência mais difícil, meras discussões sobre
vantagens e desvantagens ou longas
comparações de recursos não serão mais
suficientes; qualquer revista de PC pode
fornecê-los. A ciência, por outro lado, não pode
viver dessas inferências fracas no longo prazo.
Em vez disso, os cientistas deveriam criar
modelos, formular hipóteses e testá-los usando
experimentos.
Confie na sua intuição 
 Em uma coluna de março de 1996, Al Davis, o
editor-chefe da IEEE Software, sugeriu que a
intuição é suficiente ao adotar uma nova 
tecnologia de software; a experimentação e os
dados são supérfluos. Ele até sugeriu ignorar
evidências que contradizem sua intuição. O
instinto e a experiência pessoal ocasionalmente
levam ao caminho errado, e a ciência da
computação não é exceção a esse truísmo, como
vários exemplos ilustram: 
• Por cerca de 20 anos, pensou-se que as
reuniões eram essenciais para análises de
software. Recentemente, no entanto,
Porter e Johnson descobriram que as
revisões sem reuniões não são
substancialmente nem mais nem menos
eficazes do que aquelas com reuniões.10
As revisões sem reuniões também
custam menos e causam menos atrasos, o
que pode levar a uma inspeção mais
eficaz processo geral.
• Outro exemplo é quando pequenos
componentes de software são
proporcionalmente menos confiáveis do
que os maiores. Esta observação foi
relatada pela primeira vez por Victor R.
Basili e confirmada por várias fontes
díspares. (Les Hatton oferece resumos e
uma teoria explicativa.) 
• Conforme mencionado, as
probabilidades de falha de programas
multiversão foram incorretamente
consideradas como o produto das
probabilidades de falha das versões dos
componentes. 
• A verificação de tipo revela erros de
programação, mas há contextos nos quais
isso não ajuda. 
 O que podemos aprender com esses exemplos
é que a intuição pode fornecer um ponto de
partida, mas deve serapoiada por evidências
empíricas. Sem uma base adequada, a intuição é
questionável. Shari Lawrence Pfleeger fornece
uma discussão mais aprofundada sobre as
armadilhas da intuição. 
Confie nos especialistas 
 Durante uma palestra recente em uma
universidade dos Estados Unidos, eu estava
prestes a apresentar meus dados quando um
colega interrompeu e sugeriu que eu pulasse
essa parte e prosseguisse para as conclusões.
“Nós confiamos em você” foi a explicação. Por
mais lisonjeiro que isso fosse, ele demonstra
uma incompreensão perturbadora do processo
científico (ou indica alguém com pressa).
Qualquer afirmação científica é inicialmente
suspeita e deve ser examinada de perto. Imagine
o que teria acontecido se os físicos não tivessem
sido céticos sobre as alegações de Stanley Ponds
e Martin Fleischman sobre a fusão a frio. 
 Francamente, fico continuamente surpreso
com o quanto a indústria de computadores e, às
vezes, até mesmo o ensino universitário depende
dos chamados especialistas que falham em
apoiar suas afirmações com evidências. A
ciência, por outro lado, é construída sobre um
ceticismo saudável. É um bom sistema verificar
os resultados cuidadosamente e aceitá-los
apenas provisoriamente, até que tenham sido
confirmados de forma independente. 
PROBLEMAS EXISTEM 
 Sempre há problemas com a experimentação.
Os experimentos podem ser baseados em
suposições irrealistas, os pesquisadores podem
manipular os dados ou pode ser impossível
quantificar a variável de interesse. Existem
muitas falhas potenciais. Bons exemplos de
experimentação sólida em ciência da
computação são raros, mas não devemos
descartar o conceito de experimentação por
causa disso. Outros campos científicos têm
enfrentado experiências ruins, até mesmo
fraudes, mas – no geral – o processo científico
tem se autocorrigido. 
Teorias concorrentes 
 Uma ciência é mais emocionante quando
existem duas ou mais teorias fortes e
concorrentes. Existem algumas teorias
concorrentes na ciência da computação,
nenhuma delas abaladora. A teoria do sistema de
símbolos físicos e a teoria do processamento do
conhecimento em IA são duas teorias
concorrentes que tentam explicar a inteligência.
Os fracos métodos de raciocínio da primeira
teoria foram gradualmente cedendo ou se
acoplaram às bases de conhecimento. 
 Outro exemplo importante é a teoria do
algoritmo. A presente teoria tem muitas 
O fato de que assunto da investigação em
ciência da computação é informação em 
vez do que energia ou matéria não faz 
diferença no aplicabilidade do científico 
tradicional método.
desvantagens. Em particular, ele não leva em
consideração o comportamento dos algoritmos
em problemas típicos. Uma teoria que se aplique
com mais precisão aos computadores modernos
seria valiosa. 
 Um pré-requisito para a competição entre
teorias, entretanto, é a falseabilidade.
Infelizmente, os teóricos da ciência da
computação raramente produzem teorias
falsificáveis. Eles tendem a seguir teorias
matemáticas desconectadas do mundo real.
Embora a ciência da computação talvez seja
muito jovem para ter apresentado grandes
teorias, meu maior medo é que a falta de tais
teorias possa ser causada por uma falta de
experimentação. Se os cientistas negligenciarem
o experimento e a observação, eles terão
dificuldade em descobrir fenômenos novos e
interessantes dignos de teorias melhores.
Resultados imparciais 
 Outro argumento contra a experimentação
segue a seguinte direção: “Dê aos gerentes ou
agências de financiamento uma única figura de
mérito, e eles a usarão cegamente para promover
ou eliminar a pesquisa errada.” 
 Este argumento é uma pista falsa. Bons
gerentes, cientistas e engenheiros, todos sabem
que não devem confiar em uma única figura de
mérito. Além disso, há um perigo muito maior
em confiar apenas na intuição e na afirmação de
especialistas. Manter os tomadores de decisão
no escuro tem um potencial de dano
esmagadoramente maior do que informá-los
com o melhor de suas habilidades.
 A experimentação é fundamental para o
processo científico. Apenas experimentos testam
teorias. Somente experimentos podem explorar
fatores críticos e trazer novos fenômenos à luz
para que as teorias possam ser formuladas e
corrigidas. Sem experimentos, a ciência da
computação corre o risco de secar e se tornar
uma disciplina auxiliar. A pressão atual para se
concentrar na aplicação é a escrita na parede.
 Não tenho dúvidas de que a ciência da
computação é uma ciência fundamental de
grande profundidade e importância intelectual.
Muito já foi alcançado. A tecnologia da
computação mudou a sociedade, e a ciência da
computação está afetando profundamente a
visão de mundo do público em geral. Também 
há muitas evidências sugerindo que o método
científico se aplica. À medida que a ciência da
computação deixa a adolescência para trás,
espero ver o ramo experimental dessa disciplina
florescer.

Continue navegando