
Ciência da Computação
Você sabia ...
Crianças SOS, uma instituição de caridade educação , organizou esta selecção. Visite o site da SOS Children at http://www.soschildren.org/
Ciência da computação (ou ciência da computação) é o estudo ea ciência dos fundamentos teóricos da informação e computação e sua execução e aplicação em sistemas de computador . Ciência da computação tem muitas sub-áreas; alguns enfatizam o cálculo de resultados especÃficos (como computação gráfica), enquanto outros se relacionam com as propriedades de problemas computacionais (tais como teoria da complexidade computacional). Ainda outros se concentram sobre os desafios na implementação de cálculos. Por exemplo, estudos de teoria da linguagem de programação abordagens para cálculos que descrevem, enquanto programação de computadores aplica especÃficas linguagens de programação para resolver problemas computacionais especÃficos. Um outro subcampo, interação humano-computador, concentra-se nos desafios em tornar os computadores e cálculos úteis, utilizáveis e universalmente acessÃvel para as pessoas .
História
Os primeiros alicerces do que viria a ser a ciência da computação são anteriores à invenção do moderno computador digital . Máquinas para calcular tarefas numéricos fixos, tais como o ábaco , que já existiam desde a antiguidade. Wilhelm Schickard construiu a primeira calculadora mecânica em 1623. Charles Babbage projetou um motor de diferença na Tempos vitorianos (entre 1837 e 1901) ajudaram a por Ada Lovelace. Por volta de 1900, a IBM vendeu corporação máquinas de cartões perfurados. No entanto, todas essas máquinas foram obrigados a executar uma única tarefa, ou no melhor dos casos um subconjunto de todas as tarefas possÃveis.
Durante a década de 1940, como máquinas de computação novos e mais poderosos foram desenvolvidos, o computador termo veio referir as máquinas ao invés de seus antecessores humanos. Quando se tornou evidente que os computadores poderiam ser usados para mais do que apenas cálculos matemáticos, o campo da ciência da computação ampliado para estudar computação em geral. Ciência da computação começou a ser estabelecida como uma disciplina acadêmica distinta na década de 1960, com a criação dos primeiros departamentos de ciência da computação e programas de graduação. Desde que os computadores práticos se tornaram disponÃveis, muitas aplicações de computação tornaram-se áreas distintas de estudo em seu próprio direito.
Muitos inicialmente se acreditava impossÃvel que "os próprios computadores poderia realmente ser um campo cientÃfico de estudo" (Levy 1984, p. 11), mas foi no "final dos anos cinquenta" (Levy 1984, p.11) que gradualmente tornou-se aceito entre da população académica superior. É a marca IBM agora bem conhecido que fazia parte da revolução da informática durante este tempo. 'IBM' (abreviação de International Business Machines) lançou o IBM 704 e mais tarde os 709 computadores IBM, que foram amplamente utilizados durante o perÃodo de exploração de tais dispositivos. "Ainda assim, trabalhando com a IBM [de computador] foi frustrante ... se você tivesse perdido tanto quanto uma letra em uma instrução, o programa iria falhar, e você teria que começar todo o processo novamente" (Levy 1984, p 0,13). Durante o final dos anos 1950, a disciplina de ciência da computação estava muito em seus estágios de desenvolvimento, e tais questões eram comuns.
Tempo tem visto melhorias significativas na usabilidade e eficácia da tecnologia informática. A sociedade moderna tem visto uma mudança significativa a partir de computadores a ser utilizado apenas por especialistas ou profissionais para uma base de usuários mais generalizada. Na década de 1990, os computadores passaram a ser aceitos como sendo a norma na vida cotidiana. Durante esse tempo, a entrada de dados foi um componente principal do uso de computadores, muitos preferem simplificar suas práticas de negócios através do uso de um computador. Isso também deu a vantagem adicional de eliminar a necessidade de grandes quantidades de documentação e arquivo de registros que consumiu espaço fÃsico muito necessária dentro dos escritórios.
Principais realizações


Apesar da sua história relativamente curta como uma disciplina acadêmica formal, ciência da computação tem feito uma série de contribuições fundamentais para a ciência e sociedade . Estes incluem:
- Aplicações dentro ciência da computação
- A definição formal de computação e computability, ea prova de que existem computacionalmente insolúvel e problemas intratáveis.
- O conceito de linguagem de programação , uma ferramenta para a expressão exacta de informações metodológica em vários nÃveis de abstracção.
- Aplicações fora da computação
- Provocou a Revolução digital que conduziu à actual Era da Informação e da Internet .
- Em criptografia , quebrar a máquina Enigma era um fator importante que contribui para a vitória dos Aliados na Segunda Guerra Mundial.
- Computação cientÃfica habilitado estudo avançado da mente e do mapeamento do genoma humano foi possÃvel com Projeto Genoma Humano. Projetos de computação distribuÃda como Folding @ home explorar dobramento de proteÃnas.
- Negociação algorÃtmica tem aumentado o e eficiência liquidez dos mercados financeiros, utilizando inteligência artificial, aprendizado de máquina e outra estatÃstica e técnicas numéricas em grande escala.
Relação com outros campos
Apesar do nome, uma quantidade significativa de ciência da computação não envolve o estudo dos próprios computadores. Devido a isto, têm sido propostos vários nomes alternativos. Cientista dinamarquês Peter Naur sugerido o termo datalogy, de modo a reflectir o facto de a disciplina cientÃfica gira em torno de dados e os dados de tratamento, embora não necessariamente, envolvendo computadores. A primeira instituição cientÃfica de usar o termo foi o Departamento de Datalogy na Universidade de Copenhague, fundada em 1969, com Peter Naur ser o primeiro professor datalogy. O termo é usado principalmente nos paÃses escandinavos. Além disso, nos primórdios da computação, uma série de termos para o e profissionais do campo da computação foram sugeridas na Comunicação são da ACM - turingineer, turologist, fluxogramas-man, aplicado meta-matemático, e epistemólogo aplicada . Três meses mais tarde, no mesmo jornal, comptologist foi sugerido, seguido do próximo ano por hypologist. Recentemente, os computics prazo tem sido sugerido. Informatik era um termo usado na Europa com mais frequência.
O renomado cientista da computação Edsger Dijkstra declarou: "A ciência da computação não é mais sobre computadores do que a astronomia é sobre telescópios." A concepção e implantação de computadores e sistemas de computador é geralmente considerada a provÃncia de outros do que ciência da computação disciplinas. Por exemplo, o estudo de hardware de computador é geralmente considerado parte da engenharia de computação, enquanto o estudo de comercial sistemas informáticos ea sua implantação é muitas vezes chamado tecnologia da informação ou sistemas de informação. Ciência da computação é por vezes criticada por ser insuficientemente cientÃfica, uma visão defendida na declaração "A ciência é a ciência da computação como hidrodinâmica é a canalização", creditado a Stan Kelly-Bootle e outros. No entanto, tem havido muita fertilização cruzada de idéias entre as várias disciplinas relacionadas com o computador. Pesquisa de ciência da computação também tem muitas vezes cruzou para outras disciplinas, tais como ciência cognitiva, economia , matemática , fÃsica (veja computação quântica ), e lingüÃstica .
Ciência da computação é considerado por alguns de ter uma relação muito mais próxima com a matemática do que muitas disciplinas cientÃficas. Ciência da computação cedo foi fortemente influenciada pelo trabalho de matemáticos como Kurt Gödel e Alan Turing , e continua a haver um intercâmbio de ideias útil entre os dois campos em áreas como lógica matemática, teoria da categoria, teoria do domÃnio, e álgebra .
A relação entre ciência da computação e engenharia de software é uma questão controversa, que é ainda mais enlameada por disputas sobre o que o termo "engenharia de software" significa, e como ciência da computação é definido. David Parnas, tendo um taco de a relação entre outras disciplinas de engenharia e ciência, afirmou que o foco principal da ciência da computação está estudando as propriedades de computação em geral, enquanto o principal foco de engenharia de software é o projeto de cálculos especÃficos para alcançar prática objetivos, tornando as duas disciplinas distintas, mas complementares.
Os, polÃticas e aspectos de financiamento acadêmicas de ciência da computação tendem a ter raÃzes quanto a saber se um departamento em os EUA formado com qualquer uma ênfase matemática ou uma ênfase engenharia. Em geral, os departamentos de ciência da computação baseada em engenharia elétrica tendem a ter sucesso como ciência da computação e / ou departamentos de engenharia. Departamentos de ciência da computação com ênfase matemática e com uma orientação numérica considerar alinhamento ciência computacional. Ambos os tipos de serviços tendem a fazer esforços no sentido de colmatar o campo educacional se não for através de toda a investigação.
Os campos da ciência da computação
Ciência da computação procura por conceitos e provas formais para explicar e descrever sistemas computacionais de interesse. Tal como acontece com todas as ciências, estas teorias pode então ser utilizada para sintetizar aplicações práticas de engenharia, que por sua vez pode sugerir novos sistemas a serem estudadas e analisadas. Enquanto o ACM Computing Classification System pode ser usado para dividir-se em ciência da computação diferentes temas de campos, uma repartição mais descritivo seguinte forma:
Fundamentos matemáticos
- Lógica matemática
- A lógica booleana e outras formas de modelagem de consultas lógicas; os usos e limitações dos métodos de prova formal.
- Teoria dos números
- Teoria das provas e heurÃsticas para encontrar provas no simples domÃnio de inteiros. Usado em criptografia , bem como um domÃnio de teste em inteligência artificial.
- A teoria dos grafos
- Bases para estruturas de dados e algoritmos de busca.
- Tipo teoria
- A análise formal dos tipos de dados, e o uso destes tipos de compreender as propriedades de programas, em especial programas de segurança.
- Teoria Categoria
- Categoria teoria fornece um meio de capturar todos matemática e computação em uma única sÃntese.
- Geometria computacional
- O estudo de algoritmos para resolver os problemas indicados em termos de geometria .
- Análise numérica
- Fundações de algoritmos em matemática discreta, bem como o estudo das limitações do ponto flutuante computação, incluindo erros de arredondamento.
Teoria da Computação
- Teoria de autômatos
- Diferentes estruturas lógicas para resolver problemas.
- Teoria da computabilidade
- O que é calculável com os atuais modelos de computadores. As provas desenvolvidas por Alan Turing e outros fornecem uma visão sobre as possibilidades do que pode ser computado eo que não pode.
- Teoria da complexidade computacional
- Limites fundamentais (especialmente tempo e espaço de armazenamento) em classes de cálculos; na prática, estudo de problemas que um computador pode resolver com recursos razoáveis (enquanto os estudos de teoria da computabilidade que os problemas podem ser resolvidos em tudo).
- Teoria computação quântica
- Representação e manipulação de dados usando as propriedades quânticas de partÃculas e mecanismo quântico.
Algoritmos e estruturas de dados
- Análise de algoritmos
- Tempo e espaço complexidade de algoritmos.
- Algoritmos
- Os processos formais lógicos usados para a computação ea eficiência desses processos.
Linguagens de programação e compiladores
- Compiladores
- Maneiras de traduzir programas de computador, geralmente a partir de linguagens de alto nÃvel para os de nÃvel mais baixo.
- Intérpretes
- Um programa que tem como entrada em um programa de computador e executa-lo.
- Linguagens de programação
- Paradigmas de linguagem formais para expressar algoritmos, e as propriedades de lÃnguas (por exemplo, quais os problemas que eles são adequados para resolver).
E sistemas concorrentes, paralelas, distribuÃdas
- Simultaneidade
- A teoria ea prática da computação simultânea; segurança de dados em qualquer ambiente multitarefa ou vários segmentos.
- A computação distribuÃda
- Calculando o uso de vários dispositivos de computação através de uma rede para realizar um objetivo comum ou tarefa e reduzindo assim a latência envolvida em contribuições de processador único para qualquer tarefa.
- A computação paralela
- Computação utilizando múltiplas threads simultâneos de execução.
Engenharia de software
- Projeto Algoritmo
- Usando idéias da teoria algoritmo para projetar criativamente soluções para tarefas reais
- Programação de computador
- A prática de usar uma linguagem de programação para implementar algoritmos
- Os métodos formais
- Abordagens matemáticas para descrever e raciocinar sobre projetos de software.
- Engenharia reversa
- A aplicação do método cientÃfico para a compreensão do software arbitrário existente
- Desenvolvimento de software
- Os princÃpios ea prática de projetar, desenvolver e testar os programas, bem como práticas de engenharia adequadas.
Arquitetura do sistema
- Arquitetura de computadores
- A concepção, organização, otimização e verificação de um sistema de computador, principalmente sobre CPUs e subsistemas de memória (eo ônibus conectando-os).
- Organização de computadores
- A implementação de arquiteturas de computadores, em termos de descrições de sua especÃfica circuitos eléctricos
- Sistemas operacionais
- Sistemas de gestão de programas de computador e fornecer a base de um sistema utilizável.
Comunicações
- Ã?udio do computador
- Algoritmos e estruturas de dados para a criação, manipulação, armazenamento e transmissão de gravações de áudio digitais. Também importante na aplicações de reconhecimento de voz.
- Networking
- Algoritmos e protocolos para a comunicação de dados através de diferentes meios de comunicação compartilhados ou dedicados, muitas vezes incluindo correcção de erros.
- Cryptography
- Aplica-se os resultados de complexidade, probabilidade e teoria dos números de inventar e códigos de quebrar.
Bases de dados
- Mineração de dados
- A mineração de dados é a extração de dados relevantes de todas as fontes de dados.
- Bancos de dados relacionais
- Estudo de algoritmos para pesquisa e processamento de informações em documentos e bases de dados; intimamente relacionado com recuperação de informação.
- OLAP
- Online Analytical Processing, ou OLAP, é uma abordagem para fornecer rapidamente respostas a consultas analÃticas que são multi-dimensional na natureza. OLAP é parte da categoria mais ampla inteligência de negócios, que também engloba relatórios relacionais e mineração de dados.
Inteligência artificial
- Inteligência artificial
- A implementação eo estudo de sistemas que apresentam uma inteligência autônoma ou o comportamento dos seus próprios.
- Vida artificial
- O estudo de organismos digitais para aprender sobre sistemas biológicos e evolução.
- RaciocÃnio automatizado
- Solução de motores, tais como os usados em Prolog, que produzem passos para um resultado dado uma consulta em um banco de dados de fato e de regra.
- Visão computacional
- Algoritmos para identificação de objetos tridimensionais a partir de uma ou mais duas imagens tridimensionais.
- Aprendizado de máquina
- Criação automática de um conjunto de regras e axiomas com base na entrada.
- Processamento de linguagem natural / LinguÃstica Computacional
- Compreensão e geração automatizada de linguagem humana
- Robótica
- Algoritmos para controlar o comportamento dos robôs.
Renderização visual (ou gráficos de computador)
- Gráficos de computador
- Algoritmos tanto para a geração de imagens visuais sinteticamente, e para a integração ou alterar a informação visual e espacial amostrada no mundo real.
- Processamento de imagem
- Determinando as informações de uma imagem através de computação.
Interação Humano-Computador
- Interação homem-computador
- O estudo da tomada de computadores e cálculos úteis, utilizáveis e universalmente acessÃvel para pessoas, incluindo o estudo e projeto de interfaces de computador através do qual as pessoas usam computadores.
Computação cientÃfica
- Bioinformática
- O uso da informática para manter, analisar e armazenar dados biológicos, e para auxiliar na resolução de problemas biológicos, tais como dobramento de proteÃnas, previsão e função filogenia.
- Ciência Cognitiva
- Modelagem computacional de mentes reais
- QuÃmica computacional
- Modelagem computacional de quÃmica teórica, a fim de determinar as estruturas quÃmicas e as propriedades
- Neurociência computacional
- Modelagem computacional de cérebros reais
- FÃsica Computacional
- As simulações numéricas de grandes sistemas não-analÃticos
- Algoritmos numéricos
- Algoritmos para a solução numérica de problemas matemáticos, tais como -finding raiz, a integração , a solução de equações diferenciais ordinárias ea aproximação / avaliação funções especiais.
- Matemática simbólica
- Manipulação e solução de expressões em forma simbólica, também conhecido como �lgebra computacional.
Didática da ciência da computação / informática
A didática subcampo da ciência da computação concentra-se em abordagens cognitivas de desenvolvimento de competências de ciência da computação e estratégias especÃficas para análise, projeto, implementação e avaliação das excelentes lições de ciência da computação.
Educação ciência da computação
Algumas universidades ensinam ciência da computação como um estudo teórico da computação e do raciocÃnio algorÃtmico. Estes programas, muitas vezes apresentam o teoria da computação, análise de algoritmos, métodos formais, teoria de simultaneidade, bases de dados, computação gráfica e análise de sistemas, entre outros. Eles geralmente também ensinar programação de computadores , mas tratá-lo como um vaso para o apoio de outros campos da ciência da computação, em vez de um foco central de estudo de alto nÃvel.
Outras faculdades e universidades, bem como escolas secundárias e programas de formação profissional que ensinam ciência da computação, enfatizam a prática de técnicas avançadas de programação de computadores , em vez de a teoria de algoritmos e computação em seus currÃculos de ciência da computação. Tais currÃculos tendem a concentrar-se nas habilidades que são importantes para os trabalhadores que entram indústria de software. Os aspectos práticos da programação de computador são muitas vezes referidas como engenharia de software. No entanto, existe uma grande quantidade de desacordo sobre o que o termo "engenharia de software" significa realmente, e se é a mesma coisa que a programação.