Eu concordo com a tua visão, mas não considera tudo que podemos programar como parte da teoria que aprendemos? Por exemplo, um pedreiro pode levantar uma casa sem formação, e isto é um trabalho braçal. No entanto, o pedreiro com formação ainda faz trabalho braçal, mas é capacitado. Em ambos os casos exigiu a prática, que seria o trabalho braçal. Você não acha que Ciência da computação é tão íntimo com a programação a ponto de um não pode existir sem o outro? Ou seja, não há trabalho "Braçal", mas sim a teoria na pratica?
Nisso eu vou ter que descordar.
Vamos lá, Ciências da computação é o estudo da computação em si, como em outras ciências. No mundo acadêmico, você vai aprender/estudar computação no nosso contexto, programar seria uma consequência. Até porquê você pode fazer todo o curso de Ciências e não "virar um programador", mas você têm agora o conhecimento para estudar computação.
Ao contrário de um programador sem formação, ele só vai saber programar, como sua analogia do pedreiro.
O pedreiro ele sabe levantar uma casa, mas ele não têm a ciências por trás, ele não sabe como o cimento é feito, como o cálculo estrutural é feito, ele aprendeu a fazer (com projetos e estudos dos cientistas/engenheiros), mas não tem a base acadêmica por trás.
Ambos podem co-existir sem nunca se tocarem.
Mas ainda complemento, o conceito pode existir sem nunca a prática se materializar.
Mas acredito que você esteja tentando associar um programador aos talentos de um cientista que têm como objetivo aprender/estudar/pesquisar.
Mas pense assim, o cientista é o literário, o pensador, o estudioso. E o programador é a ponta do uso do conhecimento. Manja The Big Bang Theory?
Existem físicos, os teóricos e os práticos.
Essa parte responde sua pergunta, um físico teórico pode existir (cientista) sem existir um fisico prático (programador).
Hum, não vejo motivos de separar um do outro. O q citei foi mais o foco msm de cada um. pq imagina o seguinte. não dá pra desenvolver um software se não souber o q é if, else, classe, um pouco de POO, arquitetura, estrutura de dados, etc, q são coisas teóricas. E tbm não dá pra aprender a teoria se não escrever código e puder comprovar o funcionamento. Um sem o outro é meio q estranho existir.
O q vc questionou é a diferença entre eles, e o q vejo é q ciência é mais teórico e programação é mais prático. Eu fiz bacharel de ciencias de computação e lá eu aprendi como funciona um compilador por trás. Mas no dia-a-dia eu nem preciso saber disso, basta saber usar. Então um curso de programação, imagino q o foco é ensinar como usar (não fiz ADS e cursos parecidos, mas sei q o foco é mercado de trabalho), e não como ele foi construído. Seria isso a diferença entre ambos.
👏👏👏👏👏👏👏👏