‘프로그래밍 실습을 비대면으로?’
학생들의 모니터를 보면서 프로그래밍 에러를 잡아주고 알고리즘을 설명해주었던 대면교육에 익숙한 교수자에게는 막막한 문제였다. 그러나 2020년 2학기에 ‘컴퓨팅 기초: 처음 만나는 컴퓨팅’ 교과목을 비대면으로 진행해 보면서 “어쩌면 프로그래밍 실습은 비대면 교육에 잘 맞는 교과목이 아닐까”라는 생각이 들 만큼 긍정적인 면을 많이 발견할 수 있었다. Blended learning 방식(이론은 동영상 녹화 강의, 실습은 Zoom 강의)으로 진행한 컴퓨팅 비대면 교육의 솔루션을 공유하고 남아있는 과제에 대해 생각해보고자 한다.
프로그래밍 실습 환경
비대면으로 프로그래밍 실습에 참여하기 위해서는 개인노트북 혹은 데스크탑에서 인터넷 연결이 가능한 환경이 갖추어져 있으면 된다. 그간 학교가 제공해 왔던 장비와 환경을 학생들 스스로 준비해야 한다는 부담은 있다. 그러나 대면 수업 시 학생들이 무선 Wi-Fi에 동시접속하면서 연결이 지연되어 아깝게 흘려보냈던 시간을 이제 온전히 실습문제 푸는 데 쓸 수 있다는 작은 기쁨으로 수업을 시작할 수 있다.:D
프로그래밍 실습 환경은 브라우저 기반 파이썬 코딩을 가능하도록 해주는 구글 클라우드 서비스의 한 종류인 구글 코랩(colab)를 활용하였다. 구글 코랩은 프로그래밍 초보자들이 배우기 쉬운 언어인 파이썬을 이용해 프로그램을 작성해보고 그 결과를 즉시 확인할 수 있는 편리한 인터페이스를 제공한다. 구글 코랩의 장점 가운데 하나는 프로그래밍 소스코드와 서식 있는 텍스트를 이미지, HTML, LaTeX 등과 함께 하나의 문서로 통합할 수 있다는 것이다. 학생들은 동영상 녹화강의를 시청할 때나 Zoom 실습 강의에 참여하면서 작성한 코드와 함께, 설명 및 주요 핵심의 메모를 하나의 파일에 관리할 수 있다. 또한 목차를 만들어 필요할 때 각 주차별 풀었던 소스코드와 메모를 바로 찾아볼 수 있다. 한 학기가 마무리 될 때쯤 목차를 통해 자신이 다뤄 본 여러 가지 프로그램들을 떠올리면 뿌듯한 성취감을 느낄 것 같다.
<소스코드와 함께 텍스트 작성>
<목차를 활용한 주차별 소스코드 관리>
소그룹 및 튜터 활용
행복하게도 이 교과목은 비전공자를 대상으로 하는 컴퓨팅 기초 교과목으로 학생 10명당 튜터 1명의 밀착지도가 가능하도록 대폭적인 지원을 받았다. Zoom 수업시간 위주로 튜터 제도를 활용하였다. Zoom 수업에서 소그룹 기능을 활용하여 학생들을 소그룹으로 나누고, 각 그룹마다 튜터를 배정하여 학생들의 실습 코드를 모니터링하고 피드백 하도록 하였다. 이때 교수자는 이 그룹에서 저 그룹으로 이동하면서 실습에 대한 팁을 주고 진도를 조절하며 보충설명을 해줄 수 있었다. 튜터를 활용하지 않더라도 소그룹으로 나누어서 진행하면 학생들이 조금 더 편하게 질의응답에 참여한다. 또한 수강생 간 인터액션을 통해 다른 학생이 작성한 소스코드를 같이 공유하면서 사고전환이 가능해지고 생각의 범위를 넓힐 수 있다. 이런 면에서 소그룹 활동을 적극적으로 추천한다.
소스코드 공유
비대면으로 실습을 진행하고자 했을 때 가장 큰 걱정은 학생들의 소스코드를 봐야 어느 부분에서 에러가 난 것인지 어느 부분이 잘못 동작하고 있는지 확인할 수 있는데 비대면 상황에서는 학생들의 모니터를 보기 어렵다는 것이었다. 이러한 걱정을 말끔히 씻어준 것이 파일 공유 기능이다. 구글 코랩의 가장 큰 장점 중 하나는 파일 공유가 쉽고 Zoom 수업시간에 학생들의 소스코드를 바로 확인하고 피드백을 줄 수 있다는 것이다. 소스코드 파일을 공유하면 구글 드라이브의 공유문서함을 통해 파일을 확인할 수 있고 코랩으로 즉시 연결하여 열어보고 실행시킬 수 있다. 학생들은 작성한 소스코드를 교수자 및 튜터에게 공유하고 스스로 해결할 수 없는 에러가 발생하거나 원하는 대로 결과가 나오지 않았을 때 무엇이 문제인지 확인을 요청한다. 교수자 또는 튜터는 즉시 공유된 소스코드 파일을 열어 확인해보고 피드백을 줄 수 있다. 간혹 동시에 소스코드 파일을 열고 작업을 할 때 몇 초의 지연이 발생하여 느낌상 그 시간이 길다고 느껴질 수는 있다. 그러나 오프라인에서 학생들 의자 뒤를 비집고 들어가 모니터를 보면서 피드백을 주기까지의 시간보다는 확실히 짧다. 또한 수업 이후에도 소스코드를 언제든지 확인할 수 있다. 댓글기능으로 피드백을 줄 수 있다는 것도 장점 중 하나다. 소스코드 공유를 통해 학생들과 실시간으로 소통하며 질문에 바로 답변하여 학생들의 만족도를 높일 수 있었던 것 같다.
<소스코드 공유 목록 일부>
<소스코드에 댓글달기 기능>
여전히 남아있는 평가의 난항
타 분야 실습에 비해 프로그래밍 실습은 비대면 교육에 잘 맞다고 느꼈다. 그럼에도 불구하고 여전히 편치 않는 문제가 남아있다. 바로 평가방법이다. 비대면으로 공정한 평가를 하는 것은 어려운 일이다. 그래서 학생들은 비대면 평가에 대해 굉장히 민감하게 반응한다. ‘컴퓨팅 기초’ 교과목은 S/U 학점을 부여하기 때문에 학생들이 좀 더 마음 편하게 수업에 임할 수 있다. 설문조사에 의하면, S/U 방식이 아니었다면 31.7%가 학점에 대한 부담감으로 강좌를 수강하지 않았을 것이라고 응답했다.
<학점평가 설문조사 결과>
S/U 평가에서는 어느 수준만 통과하면 S 학점이 나간다. 학생들의 기초 코딩 실력과 사고력 향상을 평가하기에 적절한 그 ‘어느 수준’의 기준을 찾기가 쉽지 않다. 시험은 개인프로젝트와 팀프로젝트로 대신한다. 검색만 잘하면 얼마든지 소스코드를 찾을 수 있는 환경에서 이러한 과제 방식은 평가의 기준이 되기보다는 경험의 기회로 보는 게 적절하다. 그래도 학점은 부여해야하기 때문에 매주 나가는 실습문제를 수업외의 시간을 들여서라도 모두 풀었는지, 수업에 성실히 참여했는지, 과제의 유사성 검사까지 줄자로 재듯 검사하고 확인한다. 학생과 교수자 모두 워크로드가 많아질 수밖에 없다. 정교한 평가기준과 방법을 마련하는 것이 비대면 교육의 큰 과제이다.
글쓴이: 변해선 교수, 서울대 기초교육원(컴퓨팅)