새로운 언어를 배운다는것
어떤 면에서, 컴퓨터를 프로그래밍하는 것을 배우는 것은 새로운 언어를 배우는 것과 비슷하다. 새로운 기호와 용어를 익혀야 하며, 이 기호는 컴퓨터에 무엇을 해야 하는지 지시하기 위해 올바르게 구성되어야 합니다. 컴퓨터 코드는 또한 다른 프로그래머들이 그것을 읽고 이해할 수 있을 만큼 명확해야 한다.
이러한 유사성에도 불구하고, MIT 신경과학자들은 컴퓨터 코드를 읽는 것이 언어 처리에 관여하는 뇌의 영역을 활성화시키지 않는다는 것을 발견했다. 대신 다중 수요망이라는 분산 네트워크를 활성화해 수학 문제 해결이나 크로스워드 퍼즐 등 복잡한 인지 과제에도 모집한다.
그러나 컴퓨터 코드를 읽으면 다중 수요 네트워크가 활성화되지만, 코딩이 수학이나 논리 문제보다 네트워크의 다른 부분에 더 많이 의존하는 것으로 보여 코딩이 수학의 인지적 요구를 정밀하게 복제하지는 않는다는 것을 시사한다.
"컴퓨터 코드를 이해하는 것은 그 자체로 보입니다. 이것은 언어와 같지 않고, 수학과 논리와 같지 않습니다," 라고 MIT 대학원생이자 연구의 주요 저자인 안나 이바노바가 말했습니다.
프레드릭 A.와 캐롤 J. 미들턴 신경과학 부교수이자 맥거번 뇌연구소의 일원인 에벨리나 페도렌코는 이 논문의 수석 저자이다. MIT의 컴퓨터 과학 및 인공지능 연구소와 터프츠 대학의 연구원들도 이 연구에 참여했다.
언어와 인식
페도렌코 연구의 주요 초점은 언어와 다른 인지 기능 사이의 관계이다. 특히 그녀는 브로카 부위와 좌뇌의 다른 부위가 포함된 뇌의 언어 네트워크에 다른 기능이 의존하느냐는 문제를 연구해 왔다. 이전 연구에서, 그녀의 연구실은 음악과 수학이 이 언어 네트워크를 활성화시키는 것으로 보이지 않는다는 것을 보여주었다.
"여기서 우리는 언어와 컴퓨터 프로그래밍의 관계를 탐구하는데 관심이 있었습니다. 부분적으로 컴퓨터 프로그래밍은 매우 새로운 발명품이기 때문에 우리는 우리를 훌륭한 프로그래머로 만드는 어떠한 유선 연결 장치도 있을 수 없다는 것을 알고 있습니다,"라고 이바노바는 말합니다.
뇌가 코드를 배우는 방법에 대해 두 가지 학파가 있다고 그녀는 말한다. 프로그래밍을 잘하기 위해서는 수학을 잘해야 한다는 주장이 있다. 다른 하나는 코딩과 언어 사이의 유사성 때문에 언어 능력이 더 관련될 수 있다는 것을 시사한다. 이 문제를 밝히기 위해, 연구원들은 컴퓨터 코드를 읽는 동안 뇌 활동 패턴이 언어와 관련된 뇌 활동과 중복될 수 있는지를 연구하기 시작했다.
연구원들이 이번 연구에서 중점을 둔 두 가지 프로그래밍 언어는 파이썬과 5세 이상 어린이를 위해 고안된 시각적 프로그래밍 언어인 ScratchJr의 가독성으로 알려져 있다. 이 연구의 주제는 모두 그들이 시험받고 있는 언어에 능숙한 젊은이들이다. 프로그래머들이 기능자기공명(fMRI) 스캐너에 누워 있는 동안, 연구원들은 그들에게 코드 조각들을 보여주고 코드가 어떤 동작을 만들어낼지 예측해 보라고 했다.
연구원들은 뇌의 언어 영역에서 코드에 대한 반응을 거의 보이지 않았다. 대신, 그들은 코딩 작업이 주로 소위 다중 수요 네트워크를 활성화시킨다는 것을 발견했다. 뇌의 전두엽과 두정엽 전체에 걸쳐 활동이 확산되는 이 네트워크는 일반적으로 많은 정보를 한 번에 염두에 두어야 하는 작업에 모집되며, 광범위한 정신 작업을 수행할 수 있는 우리의 능력을 책임진다.
이바노바는 "인식적으로 어려운 것은 무엇이든 할 수 있다"며 "그것은 여러분을 어렵게 만든다"고 말했다.
이전 연구에서는 수학과 논리 문제가 주로 좌뇌의 다중 수요 영역에 의존하는 것처럼 보이는 반면, 공간 탐색을 수반하는 작업은 좌뇌보다 우뇌를 활성화시키는 것으로 나타났다. MIT 팀은 컴퓨터 코드를 판독하면 다중 요구 네트워크의 좌우 양쪽이 모두 활성화되는 것으로 나타났으며 ScratchJr은 오른쪽을 왼쪽보다 약간 더 활성화시켰다. 이 발견은 수학과 코딩이 동일한 뇌 메커니즘에 의존한다는 가설과 배치된다.
경험의 영향
연구원들은 프로그래밍에만 전념하는 것으로 보이는 어떤 지역도 식별하지 못했지만, 코딩 경험이 훨씬 많은 사람들에게서 그러한 전문적인 뇌 활동이 발전할 수도 있다고 말한다.
페도렌코는 "특정 언어로 코딩하는 데 30년 또는 40년을 보낸 전문 프로그래머를 고용하면 전문화 또는 다중 수요 시스템의 일부에 대한 결정화를 볼 수 있다"고 말했다.
코딩에 익숙하고 효율적으로 이런 작업을 할 수 있지만 상대적으로 제한된 경험을 한 사람들의 경우 아직 전문성이 보이지 않는 것 같다"고 말했다.
존스홉킨스대 연구팀은 eLife의 같은 호에 실린 동행 논문에서 코드 문제를 해결하면 언어 영역이 아닌 다중 수요 네트워크가 활성화된다고 보고하기도 했다.
이 연구결과는 코딩이 수학 기반 기술 또는 언어 기반 기술로 가르쳐져야 하는지에 대한 결정적인 해답이 없다는 것을 암시한다. 부분적으로, 이는 프로그래밍을 배우는 것이 언어 및 다중 수요 시스템 둘 다에 영향을 미칠 수 있기 때문이라고 연구원들은 말합니다. 한 번 배우면 프로그래밍이 언어 영역에 의존하지 않을지라도 말입니다.
이바노바는 "양 진영에서 수학과 함께, 언어와 함께 해야 한다는 주장이 있었다"고 말했다. "하지만 컴퓨터 과학 교육자들은 코드를 가장 효과적으로 가르치기 위해 그들 자신의 접근 방식을 개발해야 할 것으로 보입니다."
이 연구는 국립과학재단, MIT 뇌 인지과학부, 맥거번 뇌연구소의 자금 지원을 받았다.