Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ 팁&트릭
[59] 시스템 프로그래밍을 하기 위해서 공부해야 하는 수학 종류들..
경선->건강 [rudtjsj] 22572 읽음    2005-08-13 10:09
제가 예전에 '엠파스 지식거래소'에 올렸던 질문 중에서..

Q : 시스템 프로그래밍을 하려면 수학중에 어떤종류를 공부해야 하나요? 가 있었습니다.

답변이 유용하다고 생각되어 '팁 & 트릭'에 글을 올리게 되었습니다.



그에 대한 답변으로...

A : 어느정도만..하면될듯.

시스템 프로그래밍은 고급 프로그래밍입니다..
어느 레벨이상의 지식이 있어야 프로그래밍이 가능하죠..
해당 지식에는..여러가지가 있겠지만..
일반적으로 수학적 능력이 많이 필요합니다.

수학적 능력은 다시 이산적(연산)능력과 논리적 능력으로 나뉠텐데요..
제가 해본 경험으로는 이산적 능력은 어느정도의 방정식과 통계학의 개념만 있으면 별 문제없이 진행이 되는것 같습니다..
이산적 능력이 필요한 이유는 보다 효율적이고 체계적으로 논리적 능력을 키우기 위해서 필요한데요..
논리적 능력을 키우기 위해서 배우는 분야로는..

자료구조, 알고리즘 등이 있습니다.

자료구조란...말그대로 어떠한 문제와 관련된 여러 자료들을 해당 문제의 성격에 맞도록 구성하는 여러 방법들에 대하여 공부하는 것입니다. 배열(순차리스트), 연결리스트, 트리, 그래프, HASH...등등 여러가지의 구조로 자료를 구성할 수 있죠..
간단한 예를 들면 학급의 출석부를 구성하려면...보통 학급은 50명, 40명 이렇게 규모가 일정하게 정해져 있으므로...배열을 사용하여 처리하면 쉽게 명단을 삽입, 삭제, 조회할 수 있겠죠...
하지만 결석자 명부를 구성할려면, 일단 결석자의 규모는 불규칙하죠..(평상시에는 한,두명이다가, 전염병이 돌면 몇십명씩 결석하므로..) 일정한 크기의 배열로 처리한다면 공간의 낭비가 있죠..또한 매일 매일 명단이 추가되고, 삽입, 삭제가 빈번하게 발생하기 때문에..배열보다는 연결리스트를 사용하여 결석자가 발생하면 그때그때마다 명단을 추가하면 보다 효율적인 시스템 운영이 가능하겠죠.

이렇듯 자료구조는 수학적 지식보다는 해당 문제에 대한 논리적 추론적 분석 능력을 키우는게 보다 중요합나디.

알고리즘은 해당 문제 X를 해결하기위하여 자료구조를 만들었으면 이제 문제를 처리하기 위한 방법을 주욱 나열한 것입니다. 따라서 X를 해결하기위한 알고리즘은 수십가지가 있을수 있습니다.
그중 가장 효율적인 방법의 알고리즘이 최적의 알고리즘이라고 할수 있죠..

컴퓨터가 발명되기 이전부터 많은 수학자들이 여러 문제를 이산화한후...해당 문제를 해결하기 위한 알고리즘을 많이 만들었습니다. 때문에..요즘은 많은 수학적 지식이 없어도 기존의 수학자들이 만들어놓은 최적의 알고리즘을 사용만 하기때문에...그리 많은 수학적 지식은 필요가 없죠...대신 해당 문제를 보다 빨리 이해하고 구현하기위해서는 어느정도의 이산수학 능력이 필요합니다.

말이 엉뚱한곳으로 샜는데..

결론부터 말하자면 수학적 능력보다는 논리적 능력을 키우는게 중요하며...이를 위해서 자료구조, 알고리즘 관련 공부를 하시는게 프로그래머로서는 보다 좋은 선택일 겁니다.

허나 수학적 능력도 어느정도 필요하므로, 이산수학, 통계학(행렬, Vector)등을 공부하시면 많은 도움이 될듯 싶네요..

그럼 이만
--------------------------------------------------------------------------------------------------

이라는 답변이었습니다.

제가 관심있어 하는 부분이기에 혹시 시스템 프로그래밍에 관심있는 분이시라면
참고해도 좋을 듯 합니다.

여기 회원님들 중 윗글의 내용이 수정되어야 한다고 생각하시는 분은 구체적으로 답글 달아주시면
고맙겠습니다. (추가되어야 할 내용도 포함입니당~ )

+ -

관련 글 리스트
59 시스템 프로그래밍을 하기 위해서 공부해야 하는 수학 종류들.. 경선->건강 22572 2005/08/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.