Qual é a diferença entre engenharia da computação e engenharia da computação?

Uma pergunta que recebi muito ultimamente tem a ver com as diferenças e semelhanças entre Ciência da Computação e Engenharia de Computação. Correndo o risco de simplificar demais as diferenças, escrevi este guia para explicar como as Ciências da Computação e a Engenharia da Computação são semelhantes e como são diferentes.

O que é engenharia da computação?

Engenharia de Computação é o casamento de Ciência da Computação e Engenharia Elétrica. Ele se concentra na computação de todas as formas, desde microprocessadores a dispositivos de computação incorporados, sistemas de laptop e desktop a supercomputadores. Como tal, diz respeito às considerações de engenharia elétrica sobre como os microprocessadores funcionam, são projetados e otimizados; como os dados são comunicados entre componentes eletrônicos; como os sistemas integrados de componentes eletrônicos são projetados e como eles operam para processar instruções expressas em software; e como o software é escrito, compilado e otimizado para plataformas de hardware específicas. Portanto, engenheiros de computação são engenheiros elétricos, especializados em design de software, design de hardware ou design de sistemas que integram ambos.

O que é Ciência da Computação?

Ciência da Computação é o estudo de como dados e instruções são processados, armazenados e comunicados por dispositivos de computação. Descendente moderno de Matemática Aplicada e Engenharia Elétrica, a Ciência da Computação lida com algoritmos para processamento de dados, a representação simbólica de dados e instruções, o design de linguagens de instruções para processamento de dados, técnicas para escrever software que processa dados em diversas plataformas de computação, protocolos para comunicar dados de maneira confiável e segura através de redes, organização de dados em bancos de dados de vários tipos e escalas, emulação de inteligência humana e aprendizado através de algoritmos de computador, modelagem estatística de dados em grandes bancos de dados para apoiar a inferência de tendências e técnicas para proteger o conteúdo e a autenticidade dos dados. Portanto, cientistas da computação são cientistas e matemáticos que desenvolvem maneiras de processar, interpretar, armazenar, comunicar e proteger dados.

Sobreposição entre as áreas

Como engenheiros de computação e cientistas de computação trabalham com os dados e tentam, finalmente, aproveitar o significado deles, há uma sobreposição significativa nos cursos que os alunos dos dois campos realizam, bem como nas carreiras que eles seguem. Isso não minimiza a natureza distintiva das duas disciplinas. Simplesmente reconhece o fato de que esses tipos de profissionais de computação encontram contexto e propósito em tipos semelhantes de projetos ou em diferentes aspectos dos mesmos tipos de projetos.

Uma distinção potencialmente simplista, mas útil

Engenheiros de computação e cientistas da computação avançam na tecnologia de computação e resolvem problemas usando a tecnologia de computação. Se considerarmos a tecnologia da computação em termos de escala, os engenheiros de computação operam frequentemente nas extremidades microscópica e macroscópica do espectro, enquanto os cientistas da computação trabalham nas partes centrais do espectro. Mais especificamente, os Engenheiros de Computação lidam com a física da eletrônica de semicondutores para que possam projetar hardware a partir do nível do circuito integrado (pequeno), bem como com a integração de hardware e software otimizados para rodar nele, para obter uma computação completa e para fins especiais sistemas (grandes). Os cientistas da computação escrevem o software, projetam os bancos de dados, desenvolvem os algoritmos, formatam as comunicações e protegem os dados que são processados ​​pelo hardware para fazer o sistema integrado funcionar.

Um exemplo concreto: um iPhone

Considere um iPhone. A Apple emprega cientistas da computação e engenheiros da computação para projetar cada nova versão do iPhone. Os engenheiros de computação (e engenheiros elétricos) projetaram os chips que abrigam os circuitos integrados que fazem os vários componentes do iPhone (rádio celular, tela, controles, memória, microprocessador) funcionarem, e descobriram como fazer com que os vários componentes funcionassem entre si. . Isso envolve a observação do dispositivo, tanto no nível microscópico quanto no nível dos sistemas integrados. Os cientistas da computação escreveram o sistema operacional que gerencia a memória e os aplicativos em execução simultânea, os aplicativos na loja de aplicativos que são executados em cima desse sistema operacional, a compactação e descompactação de dados em pacotes para comunicação em rede e a criptografia de dados para que os olhos curiosos não consigo ver. Os cientistas da computação fornecem as peças de cola que transformam o produto inicial dos engenheiros de computação - o design dos componentes - no produto final dos engenheiros de computação - o dispositivo no qual as pessoas enviam mensagens de texto, navegam na Web e jogam o Angry Bird. É fácil imaginar, com tanta dependência das funções um do outro para a realização de um produto acabado, por que existe uma sobreposição significativa nos cursos que os Engenheiros de Computação e Cientistas de Computação tomam, e nas oportunidades de carreira que buscam.