전 사실 컴퓨터 과학이 그냥 순수 100퍼센트 공학이라고 생각했었는데요 (관련글 https://chimhaha.net/orbit/116759 )
무려 천문학이나 물리학처럼 컴퓨터과학도 ‘경험과학(empirical science)’적 측면이 있다는 설명이었습니다.
원문은 https://plato.stanford.edu/entries/computer-science/#NComScieScieDisc ← 요기를 보시면 되겠구요, 중요한 부분은 다음과 같습니다:
Computer science is an empirical discipline. We would have called it an experimental science, but like astronomy, economics, and geology, some of its unique forms of observation and experience do not fit a narrow stereotype of the experimental method. Nonetheless, they are experiments. Each new machine that is built is an experiment. Actually constructing the machine poses a question to nature; and we listen for the answer by observing the machine in operation and analyzing it by all analytical and measurement means available (Newell and Simon 1975, p. 114)
제가 이해한 대로 다시 설명해볼테니 횐님덜께서 한번 비판적으로 검증해주시면 좋겠습니다.
컴퓨터과학이 경험과학적 성격을 띄는 이유는 컴퓨터 프로그램을 만들고 실행하고 관찰하고 결과를 분석하는과정과 목적이 경험과학의 그것과 같아서입니다.
예를들어, 파일시스템은 사람이 자료를 어떤 패턴으로 저장하고 꺼내는지에 맞춰져 점점 최적화 되어왔는데, 이것은 파일시스템을 개발/배포하고 그 결과를 관찰함으로써, 파일시스템에 대한 더 나은 설명과 구현이 가능해졌기 때문입니다.
다시말해서, 처음부터 가장 최적화된 파일시스템이 나오지 않은 이유는 실험(관찰)이 부족했기 때문이라는 것입니다.
마치 물리학에서 어떤 자연적 현상을 더욱 잘 설명하기 위해 가설을 세우고 실험으로 관찰하는것을 반복하는것과 유사하지 않나요?
이러한 점에서 컴퓨터과학이 경험과학적 측면이 있다는 설명으로 생각됩니다.
이 견해에서는 컴퓨터 프로그램을 관찰을 위한 하나의 과학실험으로 봅니다.
이 설명이 좀 그럴듯 한지(설득이 되셨는지), 아니면 영 아닌지 말씀해주시면 감사드리겠습니다.
더불어서 만약 횐님이 대학 총장이라면 컴퓨터과학 학과를 자연과학대학에 편성할지 아니면 공대에 편성할지 의견내주시면 재밌을것 같습니다.
p.s., 원문에서는 컴퓨터과학을 수학 / 공학 / 과학적 3가지 측면이 있다고 설명합니다. 컴퓨터 과학의 전체가 경험과학에 포함된다는 이야기는 아닙니다.