1.2 주제

1.2.1 강의에서 얻을 수 있는 것

이 책은 컴퓨팅 사고력 또는 프로그래밍 기초를 다루는 강좌에서 사용할 수 있다. 그런 강의에서 이 책을 사용할 경우 다음의 내용들을 참고하길 바란다. 모든 사람은 이 강의를 완수할 수 있다. 수업에 따라 실습과 연습문제를 할당받으며, 일부는 수업시간에 완료하며 남은 것은 과제로 완료한다. 실습과 연습문제는 작은 문제들로 구성되며, 모두 적절한 시간과 노력으로 해결할 수 있다. 수업시간에 집중하여 활동하며 과제는 적시에 해결하는 것이 중요하다. 진도에 뒤떨어질 경우 배움의 완료는 어렵게 될 것이다.
수업을 진행하며 프로젝트를 수행한다. 프로젝트는 수업에서 배운 지식을 견고하게 하며 획득한 기술을 실전에서 활용하는 과정이다. 프로젝트 주제의 선정, 설계, 구체화, 프레젠테이션과 같은 주요 역할을 수행할 것이다. 프로젝트는 학기 말 4~5주의 대부분의 시간에 수행된다. 예측되는 프로젝트의 범위는 개발의 시간과 일치한다. 느리지만 지속적인 작업은 프로젝트의 성공을 위한 주요 전략이다.


당신은 정기적으로 내면의 반성적 사고(Reflection)을 기록할 것을 권고받는다. 이러한 주기적인 활동은 제시되는 질문에 대한 자기성찰적인 대답을 하는 것이다. 물론 질문의 대답에 대한 옳고 그름은 평가하지 않는다. 그러나 종종 뻔하거나 무관심한 대답이 존재한다. 우리는 학습에서 얻어지는 인식, 판단, 경험을 명료하게 표현한 대답의 가치를 높게 평가한다. 반성적 사고는 어렵다. 상황에 대해 "무엇"을 하였는가 뿐만 아니라 잘 풀렸을 때 "왜"라는 이유를 생각해야 되기 때문이다. 예를 들어, "...아이디어에 막혀 있습니다"라는 반성적 기술은 그 자체로도 가치를 가지지만 "...왜냐하면 이 부분에서 어떻게 동작하는지 모르기 때문입니다"라는 기술이 추가되어 더 완전성을 가지게 된다. 반성적 기술은 가장 가치있는 피드백의 형태이며, 강의의 질을 향상시키기 위해 필요하다.


끈질지게 하라. 기본 개념은 강의에서 3번 반복된다. 개념을 처음 볼 때에 그것을 이해하는 능력을 얻게 될 것이다. 하지만, 해당 개념에 대해 일부는 놓칠 수 있다. 개념에 대한 학습은 다시 돌아와 학습하면 되기 때문에 문제가 되지 않는다. 강의의 목표는 단지 아이디어를 즉각적으로 얻게 하는 것이 아니라, 점진적으로 이해하게 하는 것이다. 강의의 끝에 다다르는 것이 성공의 척도가 될 것이다.

 

1.2.2 조별(Cohort) 학습

할당된 조에서 활동적이고 열성적인 구성원이 되는 것은 학습에 큰 영향을 미친다. 각 조는 다른 전공을 가지는 4~5명의 학생으로 구성된다. 조별 학습은 2가지 목적를 갖는다.

  • 첫째, 서로 다른 학제의 관점이 모이는 토론이 가능하도록 한다. 예를 들어, 강의에서 개념에 대한 이해는 생물학도와 역사학도가 서로 다를 수 있다. 조 내에서 다른 관점을 공유하는 것은 구성원의 학습 경험을 풍요롭게 할 것이다.
  • 둘째, 구성원 사이의 동료 학습을 지원한다. 각 조의 구성원은 동일한 언어, 도구, 기술을 학습한다. 조의 구성원 끼리 도움을 주고 받는 것이 권장된다. 물론, 당신은 조별 활동에서 동료 학습의 의무를 회피할 수 있다. 하지만 다른 사람이 어려음을 겪을 때 도와주지 않는다면, 어려움을 겪은 당신을 도와주기 기대하기 어려울 것이다. 조별 활동에 대해 성적을 매기지는 않는다. 당신이 얻거나 잃을 수 있는 기회이며, 귀중한 자원이다.

집단에서 활동하는 개인은 집단활동의 효율성을 촉진하거나 저해하도록 행동할 수 있다. 한 조직의 성패를 결정짓는 것은 건설적인 조별 활동과 망치는 조별 활동이다. 집단에서 작업할 때 나타나는 긍정적인 행동과 부정적인 행동을 본 경험이 있을 것이다. 각 조별로 이러한 유형의 행동에 대한 논의를 진행하고 조 구성원간의 기여의 필요성에 대한 고려를 하여 규약을 결정하여 문서화하고 구성원 간 동의를 구하는 것을 요청받는다. 조별 규약은 조 구성원들이 상호작용하고 서로 지원하는 방법에 대한 지침을 제공한다.

 

1.2.3 여러가지 언어와 동일한 개념

컴퓨팅적 사고는 컴퓨테이션을 적용하는 적절한 기술의 학습과 병행하여야만 얻을 수 있는 생각의 방법이다. 컴퓨테이션 기술의 학습은 응용프로그램(Computations)의 활용과 작성을 필요로 한다. 응용프로그램은 프로그래밍 언어로 작성된다. 이 책에서는 세 가지 프로그래밍 언어와 각 언어를 지원하고 수행하는 도구들을 다룬다.
세 가지 다른 언어를 다루지만, 그 기반에는 동일한 개념이 들어 있다. 각 언어는 어떻게 추상화가 수행되며, 각 언어로 기술되는 알고리즘이 어떻게 조작되는지에 초점을 맞춘다. 핵심 언어 요소는 연산(calculation), 제어(sequence), 선택(decision), 반복(iteration)과 함수(function) 이다.
이 책에서 다루는 세 가지 프로그래밍 언어는 다음과 같다.

  • NetLogo : 컴퓨팅적 모델링 언어 및 시스템
  • Blockly : GUI 기반의 시각화되고 안전한 프로그래밍 환경
  • 파이썬 : 대중적인 텍스트 기반 프로그래밍 언어

각각의 언어는 서로 다른 역할을 수행한다.
NetLogo는 추상화와 알고리즘의 기본적인 컴퓨팅 개념을 학습하기 위해 사용된다. NetLogo는 다양한 지식 분야에 대한 100종 이상의 모델 라이브러리를 가지고 있다. 각자 전공과 연관된 모델을 선택할 것이다. NetLogo를 통해서 컴퓨테이션의 내부 구조를 볼 수 있도록 한다.


Blockly는 간단한 프로그램을 작성할 때 사용된다. Blockly는 시각화 혹은 그래픽 프로그래밍 언어로 이름과 같이 블록을 만들고 조합하여 알고리즘을 작성한다. Blockly처럼 프로그램의 구문을 블록과 같이 만들어 블록을 끼어 맞추듯이 쉽게 프로그래밍을 할 수 있도록 지원하는 언어를 블록형 프로그래밍 언어라고 한다. 이런 프로그래밍 언어에서 스크래치(Scratch), 코두(Kodu), 엔트리(Entry) 등이 있다. 각 블록은 컴퓨테이션 요소의 (일부)를 나타낸다. 직소퍼즐과 같이 블록은 형상이 서로 맞아야만 연결이 되며, 이를 통해 잘못된 컴퓨테이셔널 구문의 작성을 방지하게 된다.


파이썬은 강의에서 프로젝트를 구현할때 사용한다. 파이썬은 소프트웨어 공학자가 실제로 응용 프로그램을 구축할 때 사용하는 범용 프로그래밍 언어이다. 프로젝트를 완수하기 위해 필요한 파이썬의 핵심 요소에 한정하여 학습을 진행한다. 파이썬으로 만들 수 있는 것은 이 강의에서 다루는 것보다 훨씬 많이 존재한다.

 

1.2.4 빅데이터

우리는 데이터에 뒤덮여 있다. WWW(World Wide Web)은 사람과 자동화된 소스로부터 생성되는 데이터가 쉽게 공유되도록 만들었다. 개인은 소셜 네트워크, 사진, 비디오 공유 사이트를 통해 거대한 양의 데이터를 생성하고 공유한다. 인간의 활동은 그 각각이 데이터로 취급되며, 정부와 기관에서 수집하고 저장되고 있다. 예를 들면, 금융 거래 기록, 상품 운반 내역, 온라인 미디어 사용 로그, 주식 시장 정보, 다양한 서비스 영역의 문서 등이 포함된다. 예로는 금융 거래의 기록을 포함, 제품의 이동에 대해보고, 서비스의 제공에서 온라인 매체, 주식 시장 정보, 및 문서에 대한 액세스의 이력. 이러한 데이터를 분석하면 도시계획, 규제, 마케팅 등의 영역에서 시민과 고객으로 하여금 보다 나은 서비스를 누릴 수 있도록 할 수 있다. 전자 의료 기록은 병원의 신뢰도와 약물의 성능을 평가하는 중요한 가치를 지니는 데이터의 저장소이다. 지상과 우주의 과학 장비들은 해양, 대기, 또 다른 세상에 대한 관측 데이터를 준다. 교통 카메라, 건물 센서, GPS 데이터 등 그 종류는 끝이 없다.


산처럼 쌓인 데이터를 이용해 중요한 질문에 대답하기 위해 "빅 데이터" 응용 프로그램이 각광받기 시작했다. 이러한 어플리케이션은 데이터 저장 비용의 하락, 컴퓨팅 프로세스 성능의 비약, 네트워크 속도의 향상으로 실체화 가능했다. 빅 데이터를 정의하기 위해 일반적으로 세 가지 특성을 이야기 한다.

  • 양(Volume) : 데이터의 크기가 매우 크며, 테라바이트(terabyte) 이상이 되기도 한다. 아마존과 같은 온라인 상거래 업체가 보유한 데이터는 빅 데이터의 양적 측면을 보여준다.
  • 속도(Velocity) : 데이터가 매우 높은 속도로 쌓이며, 신속히 처리해야 한다. 주식 시장 거래 데이터는 이러한 종류의 데이터의 일례이다.
  • 다양성(Variety) : 다양한 조직으로 부터 다른 형식, 다른 종류의 데이터가 모아지게 된다. 텍스트, x-ray 사진, 코딩된 의료 검사, 처방 정보 등이 포함된 환자의 의료 기록이 이러한 특성을 보여준다.

이 강의에서 우리는 프로젝트 단계에서 빅 데이터를 사용한다. 빅 데이터 목록을 통해 당신의 전공과 관련있는 자료원을 선택할 수 있다. 전공 분야의 흥미로운 질문에 답을 하기 위해 다양한 자료원을 활용할 수 있을 것이다.

 

1.2.5 사회적 의미

인류의 발명품이 그렇듯, 빅 데이터의 컴퓨팅 모델과 응용 프로그램은 막대한 이익을 줄 수도 있으나, 개인 혹은 집단에 피해를 주는 위해성을 모두 가지고 있다. 정보의 민주화는 이집트 타히르 광장의 시위를 도우기도 하며, 때론 사이버 왕따라는 개인적 피해를 유발하기도 한다. 스마트 폰의 편의성과 기능은 때때로 정부 기관의 감시 용도로 사용되기도 한다.
이 강의에서 우리는 컴퓨팅 및 정보 기술에 관련된 윤리적 행동의 역할과 기본 개념을 얻게 될 것이다. 전문성 실무에 활용하는 것에 그치지 않고, 기술 사회의 시민으로서 우리의 권리와 의무에 대한 이해를 가능하게 한다.

One thought on “1.2 주제

Leave a Reply

Your email address will not be published. Required fields are marked *

*