알고리즘 개발 (강의요약)



이 섹션의 활동들은 앞서 패턴찾기에서 배운 컴퓨팅 사고력의 경험 위에서 구축할 수 있습니다. 패턴찾기 경험에 알고리즘 개발하기를 강조한 코드들로 구성되어 있습니다. 알고리즘을 다 완성하지 못했어도 괜찮습니다. 중요한 점은 알고리즘을 개발하는 과정을 보았고 컴퓨팅 사고를 할 때 무엇이 가능한 가를 안 점입니다. 시간이 지날 수록 이런 과정들이 점점 쉬워지고 자연스러워질 것입니다. 그리고 자신의 교육과정에 컴퓨팅 사고력을 적용하려는 교육자들의 웹상 커뮤니티가 있습니다.

타워

하노이 탑으로 더 알려진 이 퍼즐은 컴퓨터를 사용하기 전 오래된 알고리즘의 예시로 자주 등장합니다. 퍼즐로도 재미있지만, 재귀함수의 예나 알고리즘의 효율성의 중요도를 설명하는 예로도 유명합니다. 고리의 수가 증가함에 따라 필요한 단계의 수는 기하급수적으로 증가합니다. 오늘날 인터넷이나 사업 현장에서 사용되는 많은 알고리즘은 초당 수십억명을 처리할 수있어야 합니다. 또한 컴퓨터 과학자는 알고리즘의 복잡성을 줄이면서 질을 향상시키는 방법을 늘 탐색하고 있습니다.



대화로봇

인공지능이 가능할까? 컴퓨터와 대화할 때, 컴퓨터라는 사실을 모른 상태로 대화가 가능할까? 연극에서 연기할 때 다른 사람처럼 위장하기 위해서 얼마나 많은 정보가 필요할까? 이 활동에 사용된 알고리즘은 매우 간단한 논리여서 선정되었다. 컴퓨터과학자들은 우리 인간의 두뇌가 새로운 것을 배울 때 많은 연결망과 관계망을 형성하는 것처럼 자신들이 만든 알고리즘이 그렇게 되도록 훈련하고 있습니다. 이런 알고리즘은 때로는 물건을 식별하거나 음성 명령을 분석하기 위한 특정한 목적을 위해 만들어졌습니다. 앨런 튜링이 만든 지능검사는 알고리즘으로 통과될 것이지만, 현재는 통과하기 어려운 것일까?



계산기

기술과 인터넷은 엄청난 양의 정보를 접근할 수 있게 만들었습니다. 질문에 대한 답은 몇 초면 찾을 수 있습니다. 여러 시간이 걸리는 복잡한 수학 방정식은 단순히 계산기에 입력만 하면 풀립니다. 어떤 사람은 교실에 기술 사용을 금지하지만, 다른 방안이 있습니다. 학생은 교실에서 자신이 사용하는 툴을 만들 수 있어야 합니다. 이 활동에서 계산기를 개선한 알고리즘을 만들 기회를 갖었습니다. 계산기를 사용하게 하는 것은 한 가지 방법이지만, 알고리즘을 개발하는 것은 수학에서 패턴을 이해하는데 도움을 줍니다. 학생들은 방정식을 생각하지 않고 오랫동안 이해하며 얻은 수학 지식은 학생들이 정확하게 생각할 수 있게 해주며, 새로운 문제 해결에 적용될 수 있다.



바운스 볼

과학자는 자신의 가설이 맞기 실험하기 위해 실험실에 종종 간다. 어떤 연구는 기존 실험실에서는 불가능한 어려운 연구가 있다. 가령, 원자입자처럼 매우 작은 물체를 실험한다거나 블랙홀처럼 지구에 존재하지 않는 환경이 필요하다거나 비행기 스트레스 테스트처럼 너무 위험한 연구들이다. 수십년동안 과학자와 엔지니어는 아이디어와 프로토타입을 검사할 모델 및 시뮬레이션을 협력하며 개발해왔다. 이 활동에서 공이 바닥에 튀기는 것을 시뮬레이션했다. 즉, 거북명령을 보다 현실적으로 보이도록 수정했다. 완벽한 시뮬레이션이란 것은 없겠지만, 알고리즘으로서 시뮬레이션은 개선되어져 와서 지구온란화같은 복잡한 현상을 보다 잘 예측할 수 있게 되었다. 기술에 투자하고 시뮬레이션 소프트웨어와 프로그램 언어를 사용하니 지구 어디서든지 과학 연구가 가능하게 된 것이다.



첫번째 섹션에서 여러분 교과에서 알고리즘을 적용할 수 있다고 살폈습니다. 최종 프로젝트에 가기전에 여러분의 학생에게 컴퓨팅 사고력과 알고리즘 만들기 이용해서 더 가르치기 원하는 내용이 있습니까? 아이디어와 주제를 코스 커뮤니티에 공유해 주세요.