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

Sou formado em engenharia da computação. Eu aprendi a projetar e construir microcircuitos. Também aprendi a construir microprocessadores desde o início, começando com metal e polissilício, colocando-os em transistores, reunindo-os em portões simples (e, xor, switches etc.) e construindo blocos cada vez mais complexos até que você tivesse um microprocessador capaz de executar instruções binárias da vida real. Depois que você ignora, predição de ramificação, vários pipelines de execução e todos os outros doo-dads, isso se torna muito complexo.

Um dos meus projetos favoritos envolvia fazer um jogo de Pong do zero. Codifiquei-o em C e assembler, carreguei-o em um microprocessador programável e liguei-o a uma placa de ensaio; depois, coloquei um monitor LCD, alto-falante e toda a fiação pertinente. O golpe de graça estava decifrando como um controle da Nintendo funcionava e conectando

aquele

para a tábua de pão. E então você poderia jogar Pong. Foi demais.

Então, eu amei o que tenho que fazer para me formar. e eu nunca usei nada disso. Nada disso. Sempre. Nunca e provavelmente nunca o usarão.

O que eu faço agora é programar. Eu construo aplicativos da Web orientados a banco de dados que armazenam dados por meio de formulários, integrações com outros aplicativos, etc. e depois os exibimos de várias maneiras. Isso é ciência da computação. Além de um conhecimento básico básico de como os computadores e as estruturas de dados funcionam, ele não tem quase nada a ver com engenharia de computadores.

Obviamente, para um olhar casual, “Engenharia da Computação” parece tão bom em um currículo quanto “Ciência da Computação”. E o meu é de uma escola da Ivy League.

Mas, a resposta mais simples para sua pergunta é dizer que a engenharia da computação lida principalmente com hardware, enquanto a ciência da computação lida principalmente com software.

Você terá o tempo mais fácil na escola e o maior sucesso em sua carreira, se escolher o tipo de engenharia que achar mais interessante e se adequar às suas aptidões e forças naturais. Pense em quais áreas você está mais curioso e o tipo de trabalho que você poderia fazer todos os dias e nunca se cansar.

Se você não tiver certeza, pesquise cada uma e pense sobre o que gostaria e não gosta delas. Aqui está um link para começar:

Quais são os diferentes ramos da engenharia?

A Ciência da Computação é uma escolha mais ampla, com muitos focos possíveis, incluindo algoritmos, análise de dados ou segurança cibernética (obviamente, há muito mais do que esses são apenas os 3 primeiros que vieram à mente). A engenharia da computação está mais focada no hardware, então Apostaria que isso significa mais como projetar o próximo processador intel ou construir computadores ou servidores para as pessoas.

Quando estudei esses campos nas décadas de 1980 e 1990, a Engenharia da Computação era um campo muito especializado em Engenharia Elétrica, semelhante à Engenharia Aeroespacial, sendo um campo especializado em Engenharia Mecânica. Os estudantes de Engenharia da Computação fizeram exatamente os mesmos cursos que os de Engenharia Elétrica, exceto, os estudantes de Engenharia da Computação fizeram cursos técnicos mais específicos, dos quais os estudantes de Engenharia Elétrica frequentemente preenchiam as disciplinas eletivas técnicas. Além disso, alguns dos cursos técnicos específicos realizados por estudantes de engenharia da computação não estavam disponíveis para estudantes de engenharia elétrica. Em suma, você se formou com todo o conhecimento necessário para projetar a fabricação de computadores e componentes de computadores. Havia alguma programação necessária usando Pascal, FORTRAN e APL; mesmo Assembléia em Octal para DEC PDP-8s. No entanto, mais de 80% do conteúdo técnico foi orientado por hardware.

A Ciência da Computação, por outro lado, era bastante diferente da Engenharia nas matemáticas estudadas e com foco em mais de 80% no software. Havia também alguma programação envolvida em C, C ++, ADA, Prolog, Sceme, Lisp e Assemby (mais de um conjunto de instruções do processador). Desde que estudei isso no nível de mestrado, o design e a construção da linguagem do programa foram uma parte mais importante do estudo. Além disso, foi estudado o design do sistema operacional (SO) e a interação com compiladores e intérpretes, bem como o suporte a idiomas para criar aplicativos para um SO versus aplicativos incorporados. Compiladores cruzados também foram uma função pesada de estudo.

Espero que isto ajude