Conteúdo verificado

Ciência da Computação

Assuntos Relacionados: Programação de Computadores

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

Alemão militar usou a máquina Enigma durante a II Guerra Mundial para a comunicação que eles pensavam ser secreto. A descriptografia em grande escala de tráfego Enigma em Bletchley Park foi um fator importante que contribuiu para a vitória dos Aliados na Segunda Guerra Mundial.

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.

Retirado de " http://en.wikipedia.org/w/index.php?title=Computer_science&oldid=229491944 "