코딩 교육을 어떻게 해야 하는가?

가장 불완전한 알고리즘인 자연어가 바이브 코딩으로 재생산된다.

by루달리

[문제편] 나는 코딩 교육을 어떻게 해야 하는가?


[제안편] 알고리즘 설계에 집중하도록 하는 것이 정보 교육이 되어야 하지 않을까요?

정보교육에서 중요한 개념이 있습니다.

바로 알고리즘입니다.

알고리즘은 코딩의 핵심입니다.


아마 당신이 개발자라면 알고리즘이 없는 코딩은 코딩이라고 생각하지 않을 것입니다.

이 알고리즘 능력을 가르치는 것이 정보 교육의 핵심입니다.


그래서 정보교과서에 반드시 나오는 내용이 있습니다.

코딩을 한 번도 해본 적이 없는 아이들에게 코딩의 개념을 설명하기 위해 라면 끓이기, 자판기에서 물건 사기, 지하철로 이동하기와 같은 간단한 알고리즘을 우선 설명합니다.


이때, 다양한 알고리즘 표현 방법 3가지를 다음 순으로 제시합니다.

자연어 -> 의사코드 -> 순서도

자연어는 사람이 일상적으로 사용하는 말과 문장으로 알고리즘을 표현하는 방법입니다.


예를 들어, 두 수 중 큰 수를 찾는 문제라면:

첫 번째 수와 두 번째 수를 입력하고 수를 비교하여 큰 수를 출력한다


학생들이 쉽게 이해할 수 있으나 사람마다 표현이 달라질 수 있고 조건이나 반복이 복잡해지면 모호해질 수 있습니다. 그래서 이를 좀 더 명확히 하기 위해 의사 코드를 사용합니다.


의사코드는 프로그래밍 언어처럼 보이지만 실제 프로그래밍 언어의 문법에 얽매이지 않고 알고리즘의 논리를 글과 간단한 수식으로 표현하는 방법입니다.


방법 1 :

① 첫 번째 수와 두 번째 수를 입력

② 첫 번째 수가 두 번째 수보다 큰지 비교

③ 첫 번째 수가 더 크면 첫 번째 수를 출력

④ 그렇지 않으면 두 번째 수를 출력


방법 2 :

A, B 입력

IF A > B

THEN A 출력

ELSE B 출력


위 방법 1과 방법 2처럼 꼭 이래야 한다는 규칙은 없습니다.

중요한 것은 컴퓨터가 어떤 일을 해야 하는지를 프로그래밍 언어 없이 표현하는 것입니다.


이를 바탕으로 순서도를 그릴 수 있습니다.

순서도는 그 논리가 어떻게 흘러가는가를 그림으로 나타내는 것입니다.

image.png두 수 중 큰 수를 찾는 알고리즘



여기까지 완성하고 나면 이를 실제적인 프로그래밍 언어인 C나 Python으로 구현하도록 가르칩니다.

최종 목적은 프로그래밍 언어를 작성할 수 있도록 하는 것입니다.


여기까지 가르치고 나면 프로그래밍 언어를 작성하고 오류를 잡고 프로그램이 잘 돌아가는지 확인하면서 문제해결 능력을 키우는 것이 정보 알고리즘 교육의 핵심입니다.


그런데, 생성형 AI의 등장으로 "프로그래밍해 줘~" 하고, 딸깍! 하면 코딩이 완성됩니다.

아이들에게 알고리즘의 중요성을 아무리 설명해도 아이들은 AI에게 코딩을 맡겨버리고 생각하기를 멈추려 합니다.


지금까지는 1페이지로 다루는 알고리즘의 다양한 표현은 빠르게 넘어가고 실제 프로그래밍 언어를 가르쳐야지라는 급한 마음이었습니다. 그런데 지금 이 시대에 다양한 알고리즘의 중요성을 재발견하고 있습니다.

이제 코딩은 AI가 하니 정보 교육에서 중요하게 해야 할 일은 알고리즘 설계가 아닐까? 이를 하나하나 제대로 가르치는 게 중요하다는 사실을 깨닫습니다.


심지어 프로그래밍 언어에서 가장 불완전한 자연어는 지금 바이브 코딩이라 불리고 있습니다.

그리고 이 바이브 코딩을 잘해야 한다고 말하고 있고, 바이브 코딩을 어떻게 하면 잘할 수 있는지 모두들 배우고 있습니다. 바이브 코딩을 잘하기 위해 프롬프트 엔지니어링 기법을 연구하고 있습니다.


여기서 유레카를 외쳐봅니다.


자연어로 바이브코딩
프롬프트 엔지니어링으로 의사코드로 표현
순서도로 그림으로 도식화한 후에
AI와 협업하여 코딩


그리고 여기서 끝내는 것이 아니라

AI가 해준 코딩에 불필요한 코드는 없는지 살펴보도록 하여 if문과 else문을 감싸고 있는 불필요한 코드를 지우도록 지도합니다.


image.pngAI가 짜준 코드에서 불필요한 { }를 삭제합니다.


이렇게 교육한다면 단순히 바이브 코딩을 통해 AI가 짠 코드를 그대로 사용하는 것이 아니라 어떻게 AI와 협업해야 하는지 배울 수 있게 됩니다.


자연어에서 의사코드를 만들고, 순서도를 그리는 과정을 하나하나 설계하면서 논리적인 사고력을 키우고 AI와의 협업을 통해 코딩을 쉽게 접근할 수 있도록 진입 장벽을 낮추어 주는것이 정보 교육의 방향이라 여겨집니다.





카지노 게임의 이전글정보교사가 바라보는 바이브 코딩