권정인 교수의 <br>'컴퓨팅 사고와 SW코딩’

권정인 교수의
'컴퓨팅 사고와 SW코딩’

  • 366호
  • 기사입력 2017.03.02
  • 취재 김태경 기자
  • 편집 최재영 기자
  • 조회수 8948

우리 학교는 작년부터 ‘소프트웨어기초’영역을 신설하여 신입생을 대상으로 1학기에는 ‘컴퓨팅 사고와 SW코딩’을, 2학기에는 ‘문제해결과 알고리즘’을 필수교양으로 수강하게 했다. 16학번 학생들은 입학하자마자 갑자기 컴퓨팅 사고를 배우고 소프트웨어 코딩도 배워야한다니 적잖이 당황했을 것이다. 이렇다 할 소프트웨어 교육을 받지 못했던 학생들에게 ‘컴퓨팅 사고와 SW코딩’이라는 개념은 들어보지도 못 했고 2016년부터 신설된 강의라 조언을 구할 선배도 없었다. 곧 입학할 17학번 학생들도 마찬가지로 이 과목에 대해서 부담을 느끼고 있을 것이다. 하지만 그렇게 걱정할 필요 없다. 이 강의는 ‘컴퓨팅 사고와 SW코딩’이라는 이름이 주는 느낌만큼 거창하지 않다. 이번 ‘수업속으로’에서 ‘컴퓨팅 사고와 SW코딩’을 함께 알아보고 막연한 두려움을 떨쳐내 보자.

컴퓨팅 사고(Computational thinking)라고 하면 뭔가 대단한 느낌이 강하지만 전혀 그렇지 않다. 컴퓨팅 사고란 컴퓨팅의 기본개념과 원리를 바탕으로 복잡한 문제를 효율적으로 해결하기 위한 논리화되고 절차화된 사고능력이다. 한마디로 문제해결을 위해 컴퓨터 과학의 개념이 베이스가 된 논리·절차적 사고다. 일상생활에서 발생하는 문제를 해결할 때도 결국 우리는 컴퓨팅 사고를 하고 있다. 컴퓨팅 사고라는 용어가 낯설어서 그렇지 어렵지 않다. 강의에서 컴퓨터 과학의 기본 개념과 원리를 바탕으로 소프트웨어의 중요성과 기본적인 특징에 대해서 배운다. 더하여 컴퓨팅 사고력의 주요개념인 데이터 수집, 데이터 분석, 데이터 표현, 문제 분해, 추상화, 알고리즘 및 절차, 자동화 등에 대해서도 집중적으로 배운다. 개념적인 부분은 교수가 이론 강의에서 다룬다. 교재는 따로 없으며 교안은 매주 아이캠퍼스에 업데이트된다.

이론 강의에서 배운 개념을 활용한 SW코딩은 실습 강의에서 다뤄진다. 강의는 조교들이 진행하며 교수는 각 분반을 돌아다니며 강의 진행 상황을 확인한다. ‘컴퓨팅 사고’가 주는 느낌처럼 ‘SW코딩’도 어렵지 않다. 코딩이라고 하면 대표적인 컴퓨터 언어인 C, C+, Java 등이 떠오르기 때문이다. 그러나 그렇게 전문적인 언어는 이 강의에서 다루지 않는다. 강의 계획서에 따르면 이 과목은 컴퓨터과학과 학습자별 전공 분야의 융합을 목적으로 하고 있으며 전공분야의 문제이해 및 해결과정에 컴퓨팅 사고력 기반의 문제해결과정을 활용하는 것이 목표다. 이 강의는 컴퓨팅 사고력 신장이 목표이지 전문적인 소프트웨어 코딩이 목표가 아니다. 따라서 프로그래밍 입문자인 학생들을 고려하여 ‘엔트리’라는 블록기반 교육용 프로그래밍 언어를 활용한다. SW코딩은 컴퓨팅 사고력 활용을 위한 도구로써 사용되는 느낌이다. 실습 시간마다 배운 것을 활용한 과제를 준다. 실습 시간 내에 제출하면 되지만 시간 내에 다 하지 못하면 당일 자정까지 제출해도 된다. 어렵다면 조교의 도움을 받으면 되서 부담 되지 않을 것이다.

출석은 결석 1회시 1점, 지각·조퇴 1회시 0.5점이 감점되며, 평소학습(실습실 수업) 20%, 과제 20%, 팀 프로젝트 10%, 중간고사 25%, 기말고사 25%이다.

출석은 이론시간에는 지정좌석제를 통해, 실습시간에는 호명이나 실습과제의 제출을 통해 출결관리가 이루어진다. 이론시간 때의 출결은 부담이 없지만 실습시간에는 정해진 시간 내에 실습과제를 제출해야한다는 부담이 있다. 그러나 과제의 난이도가 어렵지 않으며 어려워도 실습 조교들의 도움을 받으면 되서 걱정할 필요는 없다.

평소학습 20%는 실습실 수업에서의 학습 태도를 뜻한다. 앞서 실습시간의 출결은 실습과제의 제출을 통해서 이루어진다고 언급했는데 이것은 학습 태도에도 반영된다. 따라서 수업마다 발생하는 실습 과제를 성실히만 한다면 20%를 모두 가져갈 수 있다. 실습 시간에 출석하지 못했다고 과제도 해야 된다. 강의를 같이 듣는 사람들에게 부탁해 해당 수업의 실습 과제는 반드시 제출해야한다. 그렇지 않으면 출석 점수도 감점되고 평소학습 영역에서도 감점된다.

과제 20%로 엔트리 실습 활동에서 발생한다. 실습 시간의 출석과 평소학습에 활용되는 과제 이외에 교수가 중요하다고 생각하는 부분에서 과제가 별도로 발생하며 이것이 20%로 반영된다. 보통 실습 활동에서 배웠던 것을 활용, 응용한 과제라서 실습 시간에도 집중하기 바란다. 실습 시간만 제대로 따라가면 과제는 어렵지 않아서 20%를 모두 챙겨갈 수 있다. 과제도 2~3번 정도라 부담되지 않을 것이다.

팀 프로젝트 10%는 러닝페어(Learning Fair)로 이루어진다. 러닝페어는 우리 학교 SW교육원(SSEN)이 SW교육의 흥미를 고취하고 컴퓨팅 사고와 SW코딩 교과목 수강생들의 협업 기회를 증대시키기 위한 일종의 전시회이다. 실습 시간에 배운 엔트리를 활용하여 실생활의 문제를 해결하는 자신만의 프로그램을 만드는 것이다. 제안서도 제출하고 프로그램을 만들어야해서 앞선 실습 과제들 보다 힘들 수 있지만 혼자 하는 것이 아니라 팀원들과 부담을 나눌 수 있다. 교수에게 최소한의 성의만 보여주면 감점 하지 않으므로 부담 갖지 않기를 바란다.

중간고사와 기말고사는 각각 25%이다. 평소학습과 과제, 팀 프로젝트 부분에서는 변별력이 없어 시험은 학점을 결정하는 중요한 부분이라 할 수 있다. 강의가 이론과 실습으로 이루어진 것처럼 시험에서도 이론과 실습 모두 출제된다. 이론에서는 보통 개념이나 절차·단계를 서술하고 설명하는 문제가 많다. 따라서 개념을 탄탄하게 잡아놓고 절차·단계는 기계적으로 암기하는 것을 추천한다. 실습에서는 블록형 프로그래밍 언어인 엔트리를 활용한 빈칸 뚫기, 순서 배열 등의 문제가 출제된다. 실습은 혼자 따로 시간 내서 공부하거나 암기하는 영역이 아니다. 실습 강의에서 배운 것을 응용한 문제가 출제된다. 실습 강의를 성실히 잘 따라갔다면 어렵지 않을 것이다. 실습 강의도 놓치지 않고 집중하기 바란다.

‘컴퓨팅 사고와 SW코딩’ 강의는 전교생을 대상으로 여러 분반으로 이루어져 있으며 여러 명의 교수가 담당하고 있다. 평가방법의 큰 틀은 같지만 비율은 분반마다 달라서 말 그대로 조언의 느낌으로만 봐 주면 좋겠다.

“이걸 내가 왜 배워야 하는 거지?”라는 생각을 버리길 바란다. ‘컴퓨팅 사고와 SW코딩’는 직권 배정된 강의라서 강제로 배운다고 느낄 것이다. 직권 배정이라는 강제성과 ‘컴퓨팅 사고와 SW코딩’이라는 생소한 영역은 16학번 학생들에게 반감을 불러 일으켰다. 아마 17번 학생들도 그럴 것이다. 그러나 컴퓨팅 사고는 창의적 문제해결능력과 융합으로 가는 시작점이며 SW 중심의 정보화 사회에 필수적이다. 일종의 거부할 수 없는 시대적 흐름이다. 우리가 꼭 배워야하는 것이다. 무조건적인 반감을 품고 강의를 부정적으로 바라보지 않았으면 좋겠다. 왜 배워야 하는지 모르면 공부하기도 싫다. 결국 좋은 성적도 받지 못하고 강의에서 얻어가는 것도 없을 것이다. 신설된 지 얼마 안 된 강의라서 체계적이지 못한 부분이 있겠지만 너그러이 봐주길 바란다. 열린 마음으로 강의를 들으면 재미도 느낄 수 있다. 배우는 것도 많고 자연스럽게 좋은 학점도 기대할 수 있다. ‘컴퓨팅 사고와 SW코딩’이 앞으로 학생들의 삶에 변화를 일으키는 강의로 남았으면 좋겠다.