프로그래밍은 창의적이고 논리적인 사고력을 키우는 매우 효과적인 방법이다. 예를 들어 아래 그림과 같이 *을 이용하여 삼각형을 출력하는 프로그램을 작성한다고 하자. 그리고 구현시 제한 조건은 "*"와 줄바꿈 문자 "\n"만을 사용해서 출력하는 것이라고 하자. 나중에 이에 관하여 설명하겠지만, 이를 구현하는 방법은 최소한 5가지 이상 존재한다. * *** ***** ******* ********* 이 문제를 풀기 위해 가장 먼저 할일은 문제를 정의하는 것이고, 두번째 할일은 내가 이문제를 풀기 위해 가지고 있는 툴이 무었인지, 즉 어떤 기반 지식들을 가지고 있는지 아는 것이다. 따라서, 프로그래머들은 자신의 지식과 경험을 툴 (tool)로 사용하여 정의한 문제 (problem)를 풀어서 해결책 (soluti..