● 태장고등학교 정보 교사
● 한국교원대학교 컴퓨터교육과 박사 과정 수료
● 영재교육원/영재반 정보 분야 교육과정 기획·분석·강의
● C 언어 기초 100제 시리즈 설계
● 중학교 정보 교과서, 고등학교 정보 교과서, 프로그래밍 교과서 집필
● 코드업과 함께 하는 C 언어 & 문제 해결 및 파이썬 & 문제 해결 집필
프로그래밍은 사람과 컴퓨터가 대화하는 과정입니다. 프로그래밍을 배워서 컴퓨터와 대화를 할 수 있게 된다면 여러분은 매우 특별한 능력을 갖추게 됩니다. 매우 빠르고 정확하게 계산(computing)할 수 있는 컴퓨터의 능력을 이용할 수 있기 때문입니다. 프로그래밍을 통해 우리 주변의 많은 문제를 해결할 수 있습니다.
많은 학생이 초등학교, 중학교, 고등학교 정보 수업을 통해 프로그래밍을 배우고 있습니다. 그러나 초등학교와 중학교에서 배우는 교육용 프로그래밍 언어로는 자기 생각을 완전히 표현하기에 한계가 있습니다. 고등학교에서 배우는 파이썬, C 언어 등의 텍스트 기반 프로그래밍 언어를 배워야 다양한 생각을 자유롭게 표현할 수 있습니다.
프로그래밍의 기초를 학습한 다음, 일상의 문제를 해결하기 위해 자기 생각을 절차(순서, 과정, 단계, 차례)로 구상하여 알고리즘을 설계하고 프로그래밍을 통해 구현하는 방법을 배워야 합니다. 이것은 프로그래밍 언어를 배우는 기초 과정과는 다른 것이므로 또 다른 학습이 필요합니다. 바로 ‘문제를 해결하는 방법’이죠.
우리나라는 물론, 전 세계적으로 프로그래밍을 통해 문제를 해결하는 능력을 겨루는 대회들이 있습니다. 이러한 대회에 참가하거나 기출 문제를 풀어봄으로써 ‘프로그래밍을 통해 문제를 해결하는 능력’을 함양할 수 있습니다.
우리나라 정보 선생님들이 주관하는 SFPC(School Friends Programming Challenge)는 학교(School)에서 친구들(Friends)과 함께 참여할 수 있는 프로그래밍 챌린지(Programming Challenge)입니다. 상장, 경쟁, 시상 등을 위해 참여하는 다른 대회(Competition)와 다르게 도전(Challenge)을 통해 문제 해결 경험을 쌓는 챌린지입니다. 정보 수업에서 배운 텍스트 프로그래밍 내용만으로도 충분히 해결할 수 있는 문제들이 출제되므로 누구라도 도전할 수 있는 것이 특징입니다.
SFPC 기출 문제들은 각각 2~3가지 버전으로 구성되어 있습니다. 첫 번째 버전은 입력 데이터의 양이 적어서 ‘손과 머리로’ 해결한 후 출력문만 이용하면 해결할 수 있습니다. 첫 번째 버전의 문제를 해결하기 위해서는 프로그래밍 실력보다는 ‘문제 분석을 위한 추상화와 알고리즘 설계 능력’이 중요합니다.
두세 번째 버전은 입력 데이터의 양이 크기 때문에 손과 머리로 해결하기는 어렵습니다. 이럴 때는 컴퓨터의 빠르고 정확한 계산 능력을 이용해야 합니다. 따라서 더 효율적인 알고리즘을 설계하고 프로그래밍을 통해 구현해야 해결할 수 있습니다. 두세 번째 버전의 문제를 해결하기 위해서는 첫 번째 문제를 정확하게 해결할 수 있어야 합니다.
학교에서 친구들과 함께 ‘생각하고, 소통하고, 협력하며 코딩’하세요! 프로그래밍을 배워야 하는 이유를 스스로 찾고, 친구들과 함께 여러분의 미래를 준비할 수 있을 것입니다.
대한민국의 모든 정보 선생님이 응원하겠습니다.