Computer Science/자료구조

자료구조를 왜 배우는가?

mitdog 2024. 7. 4. 12:11
컴퓨터공학부 교수님의 일화(약 10년 전)
생물학 교수: 아니 컴퓨터공학이 왜 대학에 있는겁니까
교수님: ?????? 미국 대학에도 다 있는데요????
생물학 교수: 컴공 그거 밖에서 6개월 학원 다닌거랑 다를게 없다는데요, 대학에 있을 필요가 있나요
교수님: 하하 뭐 그렇긴 하죠...
교수님: (속으로) '그러게 뭐가 문제일까..'

 

  이렇듯 옛날(10여년 전)에는 한국 소프트웨어 업계는 쉬운 일들이 대부분이었기에, 복잡하고 어려운 것들을 경시했다. 그러나 이제는 삼성 핸드폰이 대표적이듯이 복잡하고 어려운 것들을 해 나가는, 해야만 하는 시대가 왔다.
  그렇기에 '기초적인' 지식들이 있어야 하고, 그러한 지식들이 있어야만 위에 쌓아 올려가며 어려운 문제들을 해결해 나갈 수 있다. 그 '기초적인' 지식이 무엇이냐 하면

DFS, KMP, 미적분, .....


자료구조와 수학이라는 것이다.

 

옥스포드의 컴퓨터공학 과정

  옥스포드 컴공에는 7개의 전공필수가 있다. 그 중에서 5개가 자료구조나 수학, 알고리즘, 이론에 관한 것이다. 그 중에는 강의 하나가 제목부터 '재귀'로 오직 재귀만을 다루는 과목도 있었다.
이렇듯 기초 of 기초이고 또 매우 중요하다는 것

 

기초적인 추상화다..(기초적인 임플란트다)

  프로그래머는 모든 것이 추상화다. 현실에서의 데이터들이 그대로 오는 경우는 없기 때문이다.
(예) 자율주행에서 얻는 데이터: '저거 도로에요, 저거 사람이에요' 가 아니라 숫자나 기호들로 값이 뽑힌다.
그렇기에 논리적으로 생각하고 논리와 가까워야 한다.