튜링랩
튜링랩 로고튜링랩 프로그래밍 학원노트북으로 코딩하는 포메라니안
공지사항

교육내용

[초등학생] 교육 내용

PROGRAMMING · COMPUTER SCIENCE · AI

초등생 교육: 컴퓨팅 사고력 · 논리력 · 블록코딩 · 파이썬


초등학생은 저학년(4학년 이하)과 고학년(5, 6 학년) 그리고 키보드 사용 정도에 따라서 구분할 수 있습니다.
또 프로그램 학습 목적에 따라서 어떤 교육이 필요한지 달라질 수 있습니다.
튜링랩 프로그래밍학원의 초등학생들의 프로그래밍 교육 목표는 학습 목적과 학년에 구분 없이
「컴퓨팅 사고(computational thinking)」 향상에 초점을 맞추고 있습니다.


초등학교 저학년 (주로 3, 4학년)

블록 코딩(Entry, 스크래치)으로 시작

"어떤 방식으로 학습하는가?"를 논외로 한다면, 논리력과 컴퓨팅 사고력을 키우는데, 블록 코딩으로 충분합니다.

강의하는 부엉이

  • 단순히 따라하기, 학생의 수준에 맞지 않고 단순히 재미로만 한다면 사고력 향상에 별 도움이 되지 않습니다.
  • 많은 문제 풀이보다 단지 한 문제에 집중하더라도 스스로 프로그램을 작성하도록 유도하는 것이 중요합니다.
  • 해법을 찾고 문제를 해결했을 때 자존감을 올려주면서, 더 나은 방법이 없는지 다시 사고 하게 하는 것이 중요합니다.

그러면 왜 텍스트 코딩이 필요할까?

  • 키보드에 익숙할 경우, 마우스보다 키보드가 빠릅니다.
    쉽게 말씀드리면 Entry로 세 시간 걸릴 프로그램을 키보드가 능숙한 사람이 파이썬으로 동일한 프로그램을 작성한다면 30분이면 충분합니다(UI가 아닌 경우).
  • 프로그램에는 GUI(그래픽 사용자 인터페이스)가 필요하지 않은 경우도 많습니다.
    사실 GUI를 사용하지 않는 경우가 더 많습니다. 그렇지만 엔트리나 블록코딩은 기본적으로 GUI를 활용하기 때문에 텍스트 코딩에 비해서 할 수 있는 일이 적습니다. 물론 단순한 GUI에서는 텍스트 코딩보다 간단합니다.
  • 즉, 실제 구현에 필요한 시간이 줄어든다는 것은 생각할 시간이 늘어나고 더 편하기 때문에 텍스트 프로그램이 필요한 것 입니다.
  • 블록 코딩이 텍스트 코딩보다 편하다면 진작 텍스트 코딩은 사라지고 있을 겁니다. 그런데, 전문 개발자들은 아무도 블록 코딩을 사용하지 않습니다. 예전에 RAD 툴이라는 많은 도구들이 전문가들용으로 출시되었고, 한 때는 많이 사용되기도 했지만 지금은 거의 사라지고 있는 추세입니다. 즉, 키보드가 마우스보다 편합니다.

초등학교 고학년 (주로 5, 6 학년)

텍스트 코딩(파이썬, C/C++) 시작

  • 사고력과 컴퓨팅 사고 향상에 텍스트 코딩이 더 유리한 것은 아니지만, 프로그래밍을 좋아하는 학생들 중 블록 코딩을 시시하게 느끼는 경우가 많습니다.
  • 단순히 사고력 향상을 넘어서 경쟁 프로그래밍(예: 프로그래밍 경진대회 KOI 등)에 도전해보고 싶다면 이제 텍스트 코딩을 시작해야 합니다.
  • 키보드에 익숙해지면 마우스로 일일이 제어구조를 만드는 것보다 텍스트가 훨씬 편합니다.
    • 타자기가 컴퓨터보다 훨씬 먼저 개발되었다는 사실을 생각해보시면 왜 텍스트 코딩이 블록 코딩보다 편한지 쉽게 이해하실 겁니다.

Python vs. C++

  • 파이썬이 C++보다 많이 쓰입니다.
  • AI 응용프로그램과 연구에도 Python이 더 많이 사용됩니다.
    그러나, AI 라이브러리나 실제 베이스는 C/C++ 또는 Rust로 작성되는 것이 일반적입니다.
  • 피지컬 AI나 ROS(Robot Operating System) 등에서는 C++이 주류입니다.
  • 그러나, C++은 Python에 비해 훨씬 진입장벽이 높습니다.
    익숙해지면 C++이 Python에 비해서 많은 강점이 있고 편해지지만 익숙해질 때까지 많은 시간이 요구됩니다.
  • 꼭, C++을 해야 하는 경우: KOI 등 전국대회 상위권 입상 목표, 프로그래밍 관련 국제대회 입상 목표, 고사양 게임 개발(Unreal 엔진 등 사용), 하드웨어 제어 등

위 목적이 아니면 Python이면 충분합니다. 튜링랩 프로그래밍 학원에서는 초등학생들도 C++을 학습하는 경우도 많습니다. 그렇지만 우리 아이가 힘들어하지 않을지, 꼭 필요한지 잘 생각해보셔야 합니다. 일부 학생들은 충분히 Python을 접한 뒤 C++을 하고 싶어해서, C++을 학습하는 경우들도 있습니다. 본인이 하고 싶은 경우는 충분히 잘 따라 옵니다.

프로그래밍하는 팬더


GUI 프로그램을 활용한 사고력 향상 및 문제 접근

  • 프로그래밍 언어는 컴퓨터가 이해할 수 있도록 사람의 생각을 표현하는 도구에 불과합니다.
  • 프로그래밍 언어를 능숙하게 다룬다고, 문제를 능숙하게 해결한다는 것은 아닙니다. 위대한 대문호들이 언어 문법 전문가가 아닌 것과 같은 이유입니다.
  • 이 단계에서는 실제 다양한 문제들을 GUI (Graphic User Interface) 환경에서 시각적 정보를 사용해서 아이디어를 표현하고, 사고력 훈련을 할 수 있습니다.
    • 텍스트 프로그래밍만 하다 보면 흥미를 잃거나 지루해질 수 있기 때문에 다양한 과학 시뮬레이션이나 수학적 사고를 화면으로 옮겨서 사고 할 수 있습니다.

이산 수학, 자료구조, 알고리즘

  • 이왕 시작한 프로그래밍, 대회까지 도전해보고 싶은 학생들의 필수 코스 입니다.
  • 이산 수학은 프로그래밍에서 필요한 필수 수학으로 일반 수학과 크게 다른 건 아니며, 일반 수학에서 컴퓨팅에 반드시 필요한 부분을 선별해 둔 수학이라 생각하시면 됩니다.
    • 이산 수학에서 다루는 분야는 "집합, 논리(부울대수), 명제, 확률 등" 입니다.
    • 이산 수학에서는 「수학적 지식 + 프로그램 구현」을 동시에 학습하게 됩니다. 이 부분이 일반 수학 교과와 차이점입니다.

  • 자료구조는 컴퓨터에서 데이터를 효과적으로 저장하는 법을 배우는 분야입니다.
    • "어떻게 자료를 저장했는가?"에 따라서 문제를 해결하기 위한 알고리즘들이 달라지기 때문입니다.
    • 즉, 자료구조에서는 사용 목적에 맞는 데이터 저장 방식을 학습하며, 학습한 모든 방법들을 프로그램으로 직접 만들어 보게 됩니다.

  • 알고리즘은 문제를 해결하기 위한 절차를 의미합니다.
    • 자료구조로 표현한 데이터를 필요에 맞게 처리하는 방법을 배우게 됩니다.
    • 쉽게 말씀드리면, 뒤섞여 있는 값들을 크기대로 정렬하는 방법 등이 있습니다.
      • 일반 값이면 쉽게 가능한데, 저장된 값이 한 점이라면 어떤 값(x와 y 중)을 기준으로 정렬할 것인지, 또 거리에 따라 정렬한다면 어떻게 할 것인지 등을 고민하고, 해결하는 분야 입니다. 사실 알고리즘을 잘 다루는 것은 모든 일(컴퓨터 영역 뿐만 아니라)을 잘 처리한다는 의미입니다. 일의 순서를 결정하는 것은 프로그래밍에 한정된 것이 아니니까요.

프로그램 문제 풀이

  • 이 과정은 실제 대회 준비반이라 생각하시면 됩니다.

  • 참가 및 단순한 수상이 목적일 경우 주 1~2회 정도로 최소 6개월 이상의 훈련 기간이 필요합니다.

  • 만일 더 높은 목표를 가진 학생이라면 훨씬 많은 훈련 시간이 필요합니다.

  • 실제 전국대회 대상, 금상, 은상을 수상한 학생들은 주 4회 이상의 시간을 투자하고 있습니다.

    • 그러나, 특별한 목적이 있는 것이 아니면 권장하지는 않습니다.

    • 그만한 시간을 투자한다면 다른 것들을 놓칠 수 있기 때문입니다.


다시 강조하자면, 초등학생을 위한 프로그래밍의 목적은 컴퓨팅 사고 향상, 논리력 향상 그리고 생각하는 방법 숙달에 있습니다.

목록으로