수학,
Level of Abstraction,

no name
4 min readNov 8, 2018

( v.0.1, 여기서 말하는 Abstraction은 수학에서 말하는 것과 다른 개념이다. 컴퓨터 공학)

수학을 어떻게 공부하고 어떻게 자신의 연구나 학업 그리고 사업에 활용할 것인가?

이것은 단순히 학생들이 시험을 잘 보기 위해서 공부하는 것과 다른 질문이다.

수학은 많은 공학적 혁신의 기초가 된다. 그러나 반대로 깊은 수학 이론이나 자세한 증명 등은 수학자들이 전유물이지 공학자나 엔지니어 기업가들에게 필요한 것은 아니다.

그래서 수학공부도 투입한 시간과 노력 대비 경제적이어야 하고 효과적이어야 한다.

그렇다고 해서 수학을 기초 지식도 없이 전자제품 사다 쓰듯이 쓸 수는 없다.

그래서 수학에 컴퓨터 공학에서 쓰이는 Level of Abstraction의 개념을 도입하고자 한다.

컴퓨터는 깊은 레벨의 물리적 계층 부터 응용프로그램 계층까지 여러 단계의 Level of Abstraction이 적용되어 있다.

사용자들은 버튼만 눌러서 사용할 수 있는 응용프로그램을 편하게 사용하지만 그것을 개발하는 단계는 아주 복잡하고 자세한 물리계층부터 기계언어 어셈블리어 그리고 C 언어처럼 로우레벨 언어에서 Python 같이 쉽게 코딩할 수 있는 하이레벨언어까지 여러 계층으로 되어 있다.

응용 프로그램을 사용하는 사용자들이 이런 자세한 계층을 알 필요가 없듯이 하이레벨 언어 개발자들은 특별한 경우를 제외하고 로우레벨을 알 필요가 없다. 그런 경우에는 로우레벨 엔지니어 개발자들의 도움을 받으면 된다.

또 로우레벨(low level)의 어려움과 디테일은 모듈화되어 상위레벨(higher level)에 제공되기 때문에 상위레벨 엔지니어들은 그것의 input output 입력 출력만 잘 알고 이용하된 된다.

컴퓨터 공학에서 객체지향 프로그래밍 처럼 모듈화된 프레임워크를 사용하듯이 수학 공식을 모듈 또는 라이브러리 함수처럼 이해하고 사용하는 것이다. 이 경우에는 모듈안의 세부 내용을 알 필요가 없다.

이런 컴퓨터 공학의 Level of Abstraction 접근 방법을 수학 공부에도 사용하면 수학공부도 투입한 시간과 노력 대비 경제적 효과적으로 할 수 있다.

하위 레벨과 모듈의 세부사항을 알 필요가 있는 경우나 그런 것이 필요한 사람들은 좀더 하위 레벨까지 공부하는 것이다.

특히 컴퓨터와 인터넷 그리고 MATLAB나 Python R Anaconda tensor flow 등의 package가 잘 보급되어 있는 상황에서는 이런 접근 방법은 더 효과적이다.

또 다른 접근 방법은 수학을 역사적인 발전 방향을 따라서 공부하는 것이다.

이것은 마치 컴퓨터 프로그램 코드를 이해할 때 프로그램의 이전 버전을 모르고는 알 수 없듯이 깃 허브에 코드의 버전을 관리하듯 수학도 이전에 어떤 이론(버전, 모듈)이 발전했고 그것을 이용해서 새로운 이론(버전, 모듈)이 나왔는지를 따라가다 보면 최신버전(현재의 교과서 textbook)만 보는 것보다 훨씬 쉽게 이해가 되기 때문이다.

‘수학공부에 conceptual modeling 기법을’ 은 다음에…

[사진출처]
https://medium.com/@twitu/a-dive-down-the-levels-of-abstraction-227c96c7933c

Feature-Oriented Domain Analysis (FODA) Feasibility Study
https://resources.sei.cmu.edu/library/asset-view.cfm?assetid=11231

--

--

no name

Founder & Chief Visionary Officer Startup Central, Serial Entrepreneur, Entrepreneurial Philosopher, MS in Software Engineering