# Engenharia de computação

A Engenharia de Computação é um ramo da engenharia que integra conhecimentos das áreas da Ciência da Computação e da Engenharia Elétrica necessários para desenvolver hardware e software. Os engenheiros de computação podem atuar no design de softwares ou integração de hardware e software, podendo desenvolver projetos de microcontroladores individuais, microprocessadores, computadores pessoais e supercomputadores até o projeto de circuitos. Este campo de engenharia não se concentra apenas em como os próprios sistemas de computadores funcionam, mas também em como eles se integram no quadro geral.
Tarefas usuais envolvendo engenheiros de computação incluem desenvolver software para microcontroladores embutidos, projetar chips VLSI, projetar sensores analógicos, projetar placas de circuito de sinal misto e projetar sistemas operacionais. Os engenheiros de computação também são adequados para a pesquisa em robótica, que depende muito do uso de sistemas digitais para controlar e monitorar sistemas elétricos, comunicadores e sensores.
Em muitas instituições, os estudantes de Engenharia de Computação podem escolher áreas de estudo aprofundado em seu primeiro e último ano, porque a amplitude total do conhecimento usado no projeto e na aplicação de computadores está além do escopo de um curso de graduação. Outras instituições podem exigir que os estudantes de Engenharia concluam um ou dois anos de Engenharia Geral antes de declarar a Engenharia de Computação como seu foco principal.

## História

A Engenharia de Computação começou em 1939, quando John Vincent Atanasoff e Clifford Berry começaram a desenvolver o primeiro computador digital eletrônico do mundo através da Física, Matemática e Engenharia Elétrica. John Vincent Atanasoff já foi professor de Física e Matemática na Universidade Estadual de Iowa e Clifford Berry, era graduado em Engenharia Elétrica e Física. Juntos, eles criaram o computador Atanasoff-Berry, também conhecido como ABC, que levou 5 anos para ser concluído. Em 1940, o cientista britânico Alan Turing contribuiu para a quebra de códigos nazistas durante a Segunda Guerra Mundial, construindo um equipamento que serviria para decifrar as mensagens criptografadas da máquina alemã Enigma, sendo considerado um dos primeiros computadores modernos.
O primeiro programa de graduação em Engenharia de Computação nos Estados Unidos foi estabelecido em 1972 na Case Western Reserve University em Cleveland, Ohio. Em 2015, havia 250 programas de Engenharia de Computação certificados pela ABET nos EUA.

### Brasil

No caso do Brasil, a maioria dos cursos de Engenharia de Computação surgiu como uma especialização do curso de Engenharia Elétrica, unindo com disciplinas provenientes do curso de Ciência da Computação. Enquanto em Ciência da Computação há um foco maior em desenvolvimento de software, teoria de algoritmos, e bancos de dados, a Engenharia de Computação foca mais em hardware, e tecnologia das ferramentas base da computação, processos de microeletrônica, eletrônica digital e sistemas embarcados. Como a graduação em Ciência da Computação começou a surgir no país no final da década de 1960 - o primeiro curso de Bacharelado em Ciência da Computação foi criado na Universidade Estadual de Campinas (Unicamp) em 1968 - ocorreu que, em várias universidades que já ofereciam aquele curso, a instauração do curso de Engenharia de Computação seguiu o padrão do MIT. Um exemplo disso é a própria Unicamp, que instaurou duas modalidades de curso: um com ênfase em desenvolvimento de software, ministrado pelo Instituto de Computação, e outro com ênfase em hardware e processos, ministrado pela Faculdade de Engenharia Elétrica e de Computação. Mais tarde, ela voltou a oferecer o curso de Bacharelado em Ciência da Computação - apenas no período noturno.
O primeiro curso no Brasil a oferecer graduação na área foi o de Engenharia de Sistemas e Computação da Faculdade de Engenharia da UERJ. Criado pela portaria 466, de dezembro de 1976, do Conselho Superior de Ensino e Pesquisa da UERJ, o curso começa a funcionar efetivamente em 1977, como uma ênfase do curso de Engenharia Elétrica. Criado em uma época onde o ambiente da área de ensino de Computação era inteiramente dominado por entidades particulares, este curso foi um dos pioneiros, visto que praticamente inexistiam cursos de graduação voltados para Sistemas e Computação e as oportunidades existentes eram poucas e dispendiosas. O Curso de Engenharia de Sistemas e Computação surgiu então com o objetivo de suprir as necessidades de um mercado de trabalho carente de profissionais com formação superior na área específica de computação. O currículo do curso foi revisado em 1986, em 1994 e atualmente passa por uma revisão com o objetivo de torná-lo um curso independente da engenharia elétrica, passando a se chamar simplesmente graduação em Engenharia de Computação.
Outros exemplos recentes que seguiram o modelo do MIT é o da Universidade Federal de Pernambuco - que criou a graduação em Engenharia de Computação numa parceria entre o Centro de Informática e o Departamento de Eletrônica e Sistemas - mantendo também o curso original de Bacharelado em Ciência da Computação, a Universidade Federal de Ouro Preto (UFOP), que sedia o curso em um campus em João Monlevade, com turmas não formadas ainda e a Universidade Federal de Itajubá (UNIFEI) - que seguindo a mesma tendência do MIT, uniu os institutos de elétrica e ciências da computação para dar origem ao bacharelado em Engenharia de Computação. Um caso diferente foi o da Universidade Federal de São Carlos, que possuía duas modalidades do curso de Ciência da Computação: um com ênfase em software e outro com ênfase em hardware. Neste caso, foi mantido o curso original de Bacharelado com ênfase em software, e o curso com ênfase em hardware foi transformado no curso de Engenharia de Computação. Atualmente (2006), uma nova grade curricular foi proposta e hoje o curso consta como uma Engenharia de Computação com conteúdos mais atualizados frente ao mercado.
No caso da Universidade de São Paulo (USP), o curso de Engenharia de Computação foi criado dentro da Escola Politécnica, que já oferecia um curso de Engenharia Eletrônica com ênfase em sistemas, e o curso original de bacharelado em Ciência da Computação continuou sendo oferecido pelo Instituto de Matemática e Estatística, não havendo qualquer relação entre os dois cursos. A primeira turma de engenheiros de computação da Poli-USP iniciou-se em 1989 na cidade de Cubatão, no modelo cooperativo, intercalando ciclos de estágio com ciclos acadêmicos, similar ao existente na Universidade de Waterloo. Na USP de São Carlos, o curso de Engenharia de Computação foi criado através da parceria entre a Escola de Engenharia de São Carlos e o Instituto de Ciências Matemáticas e de Computação da Universidade de São Paulo.
Na Universidade Federal do Rio Grande (FURG), sita em Rio Grande, Rio Grande do Sul, o Curso de Engenharia de Computação foi criado em 1993 e teve seu primeiro ingresso em 1994, e a primeira turma formada em 1998. Em 2008 integrou-se ao então recém fundado Centro de Ciências Computacionais. Neste caso, o curso, apesar de embasar-se nas posturas gerais do ensino e da formação em Engenharia, não é uma especialidade da Engenharia Elétrica, mas prima por uma abordagem da Ciência da Computação mais direcionada para a solução computacional de problemas técnicos e tecnológicos, visando a atuação autônoma do engenheiro de computação ou em conjunto com profissionais de outras áreas da Engenharia e demais carreiras tecnológicas ou científicas. Atualmente, após extensa reforma estrutural, além de contar com toda a formação básica tradicional dos cursos de Engenharia (Cálculo, Física, Desenho, Administração etc.), o currículo opera sob o conceito de sistema, com eixos que vão do embasamento matemático e da própria Ciência da Computação (Matemática Discreta, Estruturas de Dados, Bancos de Dados, Linguagens de Programação, Análise de Algoritmos, Engenharia de Software, Teoria da Computação etc.), às especificidades das tecnologias em Computação, como os sistemas de informação e programação, gráficos, inteligentes, de manufatura, microprocessados e distribuídos. A grade curricular do Curso pode ser consultada na página online da Universidade. Uma aproximação que o Curso tinha com os aspectos de análise de sistemas foi bastante diminuída a partir da instituição dos Cursos de sistema de informação na mesma Universidade, em 2009. Atualmente a FURG conta, inclusive, com Mestrado em Engenharia de Computação, que por sua gênesis não atrelada a Engenharia Elétrica, é um dos únicos do Brasil associado ao Comitê de Área da Computação na CAPES.
O curso de Engenharia de Computação da Universidade Federal do Vale do São Francisco (UNIVASF) foi autorizado pela decisão de 2005 do Conselho Universitário da UNIVASF. Em 2005 foi realizado o primeiro concurso para a contratação dos primeiros dois docentes do curso, que iniciaram as suas atividades em 2006. Em 2006 ocorreu também o primeiro vestibular para a área de Engenharia de Computação. Em 2008 o corpo docente foi ampliado para 9 membros, e depois para 14 em 2009. Em 2010 o corpo ficou completo, com a contratação do décimo quinto membro. O curso de Engenharia de Computação tem um papel importante na região do Vale do São Francisco. Apesar dos desenvolvimentos e investimentos recentes, a região ainda está longe de atingir o limite de seu potencial econômico. Existe clara possibilidade de aumento de produção, redução de custos, diversificação de produção/serviços e inserção em novos mercados. Na Universidade Federal do Rio de Janeiro (UFRJ), o curso de Engenharia de Computação e Informação foi criado na Escola Politécnica em 2003, que já contava com o curso de Engenharia Eletrônica e de Computação (Engenharia Eletrônica com ênfase em computação), mantendo a base de eletrônica e enfatizando as partes de software e sistemas de informação.
Atualmente, uma nova metodologia de ensino vem sido aplicada a cursos de Engenharia de Computação no Brasil: a Aprendizagem baseada em problemas ou Problem Based Learning (PBL). Essa metodologia, que tem como principal objetivo explorar o autodidatismo do aluno, bem como sua capacidade de trabalho em grupo, já vem sendo aplicada em cursos novos de EC no Brasil, como na Universidade Estadual de Feira de Santana (UEFS), que foi a pioneira no Brasil, e na Universidade Federal da Bahia (UFBA).

## Especializações

Existem muitas especializações no campo da Engenharia de Computação.

### Codificação, criptografia e proteção de informação

Artigo principal: Segurança da Informação
Engenheiros de computação trabalham em codificação, criptografia e proteção de informações para desenvolver novos métodos de proteção de várias informações, como imagens digitais e música, fragmentação, violação de direitos autorais e outras formas de adulteração. Exemplos incluem trabalho em comunicações sem fio, sistemas de múltiplas antenas, transmissão óptica e assinatura digital.

### Comunicações e redes sem fio

Artigos principais: Redes de comunicação e Redes sem fio
Aqueles que se concentram em comunicações e redes sem fio, trabalham os avanços em sistemas e redes de telecomunicações (especialmente redes sem fio), modulação e codificação de controle de erros e teoria da informação. Projeto de rede de alta velocidade, supressão e modulação de interferência, projeto e análise de sistemas tolerantes a falhas e esquemas de armazenamento e transmissão fazem parte desta especialidade, que se entrelaça com a área de telecomunicações.

### Compiladores e sistemas operacionais

Artigos principais: Compilador e Sistema operacional
Esta especialidade se concentra no projeto e desenvolvimento de compiladores e sistemas operacionais. Engenheiros nesse campo desenvolvem novas arquiteturas de sistema operacional, técnicas de análise de programas e novas técnicas para garantir a qualidade. Exemplo de trabalho nesse campo inclui o desenvolvimento de um novo sistema operacional.

### Ciência e Engenharia Computacional

Artigos principais: Engenharia computacional e Ciência computacional
Ciência e Engenharia Computacional é uma disciplina relativamente nova. De acordo com o Sloan Career Cornerstone Center, indivíduos que trabalham nesta área, "métodos computacionais são aplicados para formular e resolver problemas matemáticos complexos em engenharia e ciências físicas e sociais. Exemplos incluem design de aeronaves, o processamento de plasma de características nanométricas em wafers de semicondutores, Design de circuitos VLSI, sistemas de detecção de radar, transporte de íons através de canais biológicos e muito mais".

### Redes de computadores, computação móvel e sistemas distribuídos

Artigos principais: Rede de computadores, Computação móvel e Computação distribuída
Nesta especialidade, os engenheiros criam ambientes integrados para computação, comunicações e acesso a informações. Os exemplos incluem redes sem fio de canal compartilhado, gerenciamento adaptável de recursos em vários sistemas e melhoria da qualidade do serviço em ambientes móveis e ATM.Alguns outros exemplos incluem o trabalho em sistemas de rede sem fio e sistemas com fio de cluster de fast Ethernet.

### Sistemas de computadores: arquitetura, processamento paralelo e confiabilidade

Artigos principais: Arquitetura de computadores e Computação paralela
Engenheiros que trabalham em sistemas de computadores trabalham em projetos de pesquisa que permitem sistemas de computadores confiáveis, seguros e de alto desempenho. Projetos como o design de processadores para multi-threading e processamento paralelo estão incluídos neste campo. Outros exemplos de trabalho nesse campo incluem o desenvolvimento de novas teorias, algoritmos e outras ferramentas que adicionam desempenho a sistemas de computador.

### Visão computacional e Robótica

Artigos principais: Visão computacional e Robótica
Nesta especialidade, os engenheiros de computação se concentram no desenvolvimento de tecnologia de sensoriamento visual para detectar um ambiente, a representação de um ambiente e a manipulação do ambiente. A informação tridimensional reunida é então implementada para executar uma variedade de tarefas. Estes incluem, modelagem humana aprimorada, comunicação de imagem e interfaces homem-computador, bem como dispositivos como câmeras de propósito especial com sensores de visão versáteis.

### Sistemas embarcados

Artigo principal: Sistema embarcado
Os indivíduos que trabalham nessa área projetam tecnologia para aumentar a velocidade, a confiabilidade e o desempenho dos sistemas. Sistemas embarcados são encontrados em muitos dispositivos, desde um pequeno rádio FM até o ônibus espacial. De acordo com o Sloan Cornerstone Career Center, os desenvolvimentos contínuos em sistemas embarcados incluem "veículos e equipamentos controlados por computador, para conduzir busca e salvamento, sistemas computadorizados de transporte e coordenação entre humanos e robôs para reparar equipamentos no espaço".

### Circuitos integrados, projeto VLSI, teste e CAD

Artigos principais: Circuito integrado e VLSI
Esta especialidade de Engenharia de Computação requer conhecimento adequado de sistemas eletrônicos e elétricos. Os engenheiros que trabalham nessa área trabalham para aumentar a velocidade, a confiabilidade e a eficiência de energia dos circuitos e microssistemas integrados de larga escala (VLSI) de próxima geração. Um exemplo desta especialidade é o trabalho feito na redução do consumo de energia de algoritmos e arquitetura VLSI.

### Processamento de sinal, imagem e fala

Artigos principais: Processamento de sinal, Processamento de imagem e Reconhecimento de fala
Os engenheiros de computação nessa área desenvolvem melhorias na interação humano-computador, incluindo reconhecimento e síntese de fala, imagens médicas e científicas ou sistemas de comunicação. Outros trabalhos nessa área incluem o desenvolvimento de visão computacional, como reconhecimento de características faciais humanas.

## Profissional

Possui formação plena em engenharia e uma sólida formação técnico-científica e profissional, que o capacita a especificar, desenvolver, implementar, adaptar, industrializar, instalar e manter sistemas computacionais, bem como perfazer a integração de recursos físicos e lógicos necessários para o atendimento das necessidades informacionais, computacionais e da criação de equipamentos e dispositivos eletrônicos, microeletrônicos e circuitos integrados.
No Brasil é considerado engenheiro de computação quem for formado em Engenharia de Computação, porém para poder exercer a profissão é necessário registro no sistema do CREA (Conselho Regional de Engenharia e Agronomia) do estado onde atua.
O profissional pode trabalhar em instituições de ensino, bancos; as áreas para este profissional também englobam a área da construção civil e segurança nacional.

### Áreas de atuação

A rápida mudança promovida pelos computadores tornou estável a oferta de vagas para o profissional da engenharia de computação, e as perspectivas é de que se mantenham assim nos próximos anos. Na maioria dos casos, o primeiro emprego surge através do estágio em uma grande empresa. O engenheiro da computação pode atuar tanto em companhias do setor de tecnologia, como nas empresas de diversos segmentos.
Na indústria, sempre que o país atravessa um bom período econômico, ocorre investimentos na linha de produção - o que inclui a contratação de mão de obra especializada para trabalhar com sistemas sofisticados de hardware e software. Este bacharel é requisitado para desenvolver softwares que auxiliem o funcionamento de sistemas, e para criar equipamentos como telefones celulares, tablets, equipamentos eletrônicos, sistemas embarcados, etc.
Sua atuação ocorre na fabricação de computadores, de hardwares, de sistemas embarcados, robótica (sistemas robotizados digitais e computadorizados), gerenciamento de rede de computadores, desenvolvimento de software e aplicativos, marketing e venda (planejar e coordenar ações para a comercialização de equipamentos), processamento digital de sinal, telecomunicações (interligação entre redes de telefonia), etc.

## Educação

Em Portugal ver Engenharia Informática.
* Ciclo básico (2 anos e meio) — Como em toda engenharia, possui em comum a grade de Matemática (Cálculos, Geometria Analítica, Álgebra Linear), Física e Introdução em Engenharia. Em determinadas universidades se estuda Química e Desenho. Além disso, vê-se linguagens de programação, estrutura de dados, autômatos e outras disciplinas da grade curricular de Ciência da Computação. O ciclo básico é mais voltado à prática de linguagens de programação, com aulas práticas em laboratórios e projetos para desenvolver softwares; contudo, há disciplinas voltadas à Engenharia de Computação também, como circuitos e sistemas digitais, com possibilidade de aulas práticas em laboratórios.
* Após o ciclo básico — Entra fortemente nas disciplinas específicas de engenharia de computação: eletrônica digital, microprocessadores, sistemas operacionais, redes de computadores, sistemas embarcados, robótica digital, inteligência artificial, engenharia de software e muitas outras. Em algumas instituições, o último período é dedicado a pagar disciplinas optativas eletivas na área em que o estudante deseja seguir na carreira. Além disso, o aluno necessita cumprir o Estágio Supervisionado.