8-14 세 연령에 접근 가능한 이론적 CS 개념


34

이 질문은 일반적인 질문이 아닌 것 같지만이 청중에게 의미있는 방식으로 명확하게 전달 된 자료를 보았는지 궁금합니다.




나는 종종이 나이의 어린이들에게 고전적인 폰 노이만 퍼즐을 말합니다.
arnab

답변:



21

람다 미적분학

미적분 을 배우는 재미있는 방법 :λ

...이 게임은 형식화되지 않은 람다 미적분을 나타냅니다. 배고픈 악어는 람다 추상화이며, 오래된 악어는 괄호이며, 알은 변수입니다. 식이 규칙은 베타 감소에 해당합니다. 색상 규칙은 (과도하게 신중한) 알파 변환에 해당합니다. 나이 규칙에 따르면 한 쌍의 괄호에 단일 용어가 포함되어 있으면 괄호를 제거 할 수 있습니다 ....

비디오 링크


7
+1 @Pratik Deoghare : 재미있는 답변이지만, 적어도 댓글에서 링크를 클릭하고 해당 페이지의 내용을 탐색하여 답변을 찾을 필요없이 답변이 왜 관련되는지 설명 할 수 있습니다.
blunders

6
클릭 하고 읽는 것이 얼마나 어려운 가요? 한 입 크기의 모든 것이 정말로 필요합니까?
Andrej Bauer

7
이것은 끔찍하게 뒤얽힌 것 같다 ..
Izkata

15
@Andrej Bauer : 그렇습니다. 실제로 답변에 대한 SE 요청은 관련성을 요약하고 질문에 대한 응답으로 자료에 연결되지 않습니다.
blunders

11
나는 중간에 끔찍하게 혼란스러워서 규칙을 여러 번 다시 읽어야했습니다. 8 살짜리 아이가 이것에 관심을 가질 방법은 없습니다.
BlueRaja-대니 Pflughoeft

8

내 경험상, 조합론, 그래프 이론, 프로그래밍, 알고리즘 및 유사한 주제의 기본 주제를 가르치는 것은 어렵지 않습니다.

IOI 대회 및 전국 대회 에서 다루는 주제를 찾아 볼 수 있습니다 . 초창기부터 IOI 대회와 관련된 여름 학교와 워크샵이 있습니다.

이러한 워크샵에서 제가 가장 좋아하는 주제는 조합 게임 이론 입니다. 관객과 게임을함으로써 동기를 부여하기 쉽기 때문입니다.

ACM의 K-12 CS 커리큘럼 자료 , 특히 K-12에 대한 모델 커리큘럼 의 11 페이지와 12 페이지를 확인하십시오 .


6

몇 가지 아이디어. 컴퓨터 과학에 관심이있는 아이들을 위해 고품질이지만 저렴한 옵션이 폭발적으로 증가한 것 같습니다. 과학 기술 공학 수학 교육이라고 불리는 STEM과의 강력한 연계에 주목하십시오. (A가 알고리즘을 나타내는 새로운 키워드 STEAM으로 CS 측이 강조되거나 옹호 될 수 있다고 생각했습니다.)

  • 부울 논리 개념을 사용하여 수학 연산을 나타냅니다. 이진수를 십진수로 변환, 십진수를 이진수로 변환, EE에서 캐리를 사용하는 다단계 가산기와 같은 것들. CNF 또는 DNF에서 임의의 기능을 구축합니다. 어린 아이조차도 AND, OR, NOT으로 기능 완성의 개념을 이해할 수 있습니다. 저렴한 마이크로 컨트롤러를 포함한 이와 같은 라디오 for 키트. 예를 들어 기본 스탬프 키트를 참조하십시오 . 이를 위해 일부 자유 / 오픈 소스 회로 시뮬레이터가 있습니다. 불행히도 나는 지금까지 구성 요소 라이브러리와 함께 배포 된 것을 찾을 수 없었습니다. logisim 은 하나의 인기있는 것입니다.

  • Crazy Machines 라는 PC / ps3 / etc를 포함한 다른 시스템에서 실행되는이 멋진 게임이 있습니다. 이것은 소프트웨어의 물리 시뮬레이션을 이해하고 아이가 상호 작용하는 구성 요소 및 연쇄 반응 시스템을 생각하게하는 데 사용할 수 있습니다. 새로운 ps3 버전에는 스위치와 게이트를 포함한 많은 전기 및 로직 구성 요소가 있습니다.

  • 로봇 공학. 특히 로봇 공학 에 대한 레고 마인드 스톰을 시도하십시오 . 루프, 조건부, 서브 루틴과 같은 것을 허용하는 정교한 소프트웨어. 서브 루틴은 그래픽 블록에 포함되어 있습니다. 즉, 수년 전에는 최첨단 (현재는 장난감)이었던 시각적 프로그래밍 시스템입니다. 영감을 얻기 위해 YouTube의 최신 큐브 브레이커 II 와 같은 루빅스 큐브 로봇 솔버 비디오가 많이 있습니다. 다니엘레 베네 데 틀리 ( Daniele Benedettelli)의 레고 마인드 스톰 nxt 사고 로봇과 같은 하나 이상의 디자인은 널리 이용 가능한 책에 있습니다 . 또한 최근에 저는이 자유도 공압 로봇 핸드를 보았습니다 . 최초의 로봇 경쟁 리그 도 참조하십시오 .

  • 간단한 것들에 대한 기본 코드 작성. 예를 들어 정렬. 다양한 정렬 알고리즘에 대한 실증적 연구를 수행하고 결과를보고 / 그래프합니다 (예 : 입력 크기를 늘리기위한 버블 정렬 vs qsort의 성능 그래프 표시-삽입 정렬에 대해서는이 위키피디아 페이지의 애니메이션 참조 ). 애니메이션 정렬. 깔끔한 그래픽 아날로그는 정수 또는 문자열 대신 카드 데크를 정렬하는 것입니다. 또한 코드로 그림을 그리는 것과 같은 많은 그래픽이나 기하학적 작업은 훌륭한 연습입니다.

  • 게임 프로그래밍. 이것은 훌륭한 게임에서 할 수 있습니다. 예를 들어 Little Big Planet 에는 복잡한 내장 구성 시스템 및 구성 요소를 사용하여 어린이가 실제로 게임을 만들 수있는 정교한 하위 시스템이 있습니다. 이런 식으로 상호 작용 / 긴급 현상을 연구 할 수도 있습니다. 인터넷에 업로드하여 공유 할 수 있습니다. 이 목적을위한 다른 언어를 scratch 라고 합니다. 효능에 대한 많은 학문적 연구를 통해 Papert의 고전적인 것은 Logo입니다.

  • 튜링 머신 시뮬레이터 및 빌딩 프로그램 사용. 몇 가지가 있습니다. 그들은 일부 프로그램과 함께 제공됩니다. 그래픽이 많을수록 좋습니다. 일부는 교수가 수업을 위해 작성했습니다. 여기에 하나는 자바 스크립트로 작성되었습니다 . 실제로이 분야에서 가장 좋은 것들을 알고 싶습니다.


6

가르치는 사람과 해당 범위의 영역에 따라 다릅니다.

12-14 세의 WANTS는 거의 모든 것을 처리 할 수 ​​있어야하지만, 자신의 시간에 가져와야하므로 복잡한 개념을 젊은이 (또는 대부분의 사람)에게 밀어 붙일 수는 없습니다.

나는이 시점에서 (나이 그룹을 목표로하고 매우 영감을 줄 것 같음) iWoz를 듣고 있습니다. 그 나이까지 그는 꽤 진보 된 회로를 모으고 있었지만 그의 아버지는 질문에 대해서만 대답했지만 결코 그에게 손을 대지 않았습니다. 그가 준비하지 않은 새로운 개념)

또는 그는 완전히 무관심하고 당신이 그것에 대해 할 수있는 일이 없습니다.

아이들은 정말 간단한 것에 깊은 인상을받을 수 있습니다. 만약 당신이 어떤 게임을 발견했다면 그가 좋아하고 그를 재창조하도록 도와 주었을 때 (아주 매우 피상적이지만 여전히 그래픽 적으로 비슷한 수준 일지라도) 당신은 정말로 그를 이끌 수있을 것입니다.

또는 기존의 오픈 소스 게임을 찾은 경우 더 나은 방법으로 게임을 플레이 한 다음 약간 수정하는 방법을 보여 주면 흥분 할 수 있습니다. (수정은 항상 시작하는 가장 좋은 방법 인 것 같습니다)


+1 @Bill K : "이 시점에서 iWoz를 듣고 있습니다"라고 말할 때, 그의 책의 오디오 버전 또는 다른 것을 의미합니까? 콘텐츠를 지불한다고해도 링크는 의미가 있습니다.
blunders

1
죄송합니다, iWoz는 자서전입니다. Audible에 있으며 기술에 관심이있는 십대에게 완벽한 것 같습니다. 느리게 진행하지만 그가 만든 다른 것들과 학습 과정에 대해 상당히 자세히 설명합니다. 이상하게도 나는 항상 이상에서 Wozniak에 훨씬 더 가깝게 느끼고 실제로 직업의 성격을 싫어하지만, Jobs 전기가 놀랍도록 강력하고 통찰력이 있음을 발견했지만, 나는 iWoz를 대위법으로 듣고 있습니다.
Bill K

5

실제로 2 학년과 3 학년 (목표 연령 그룹)이 1 명이지만 대부분 4 학년, 5 학년을 포함하는 여름 캠프를 가르쳤습니다. 캠프는 일주일 내내 진행되었으며, XNA에게 포토샵과 함께 if, else if 그리고 간단한 진술에 대한 기초를 보여주었습니다. XNA의 문제는 일주일이 끝날 때까지 프로그램을 약간 도와야한다는 것입니다. 우리가 진행 한 다른 캠프에는 레고 로봇 공학과 GameMaker가 포함되어 있습니다.


+1 @ Suiko6272 : 컴퓨터 과학, 컴퓨터 공학 및 소프트웨어 공학이 다르지만 관련있는 주제라고 생각하는 것이 가장 중요합니다. 이론적 CS와 순전히 관련된 개념에 관심이 있었을 것입니다. 컴퓨터 공학, 컴퓨터 공학 및 소프트웨어 공학의 차이점을 가르치기위한 부분입니다.
blunders


2

나는 Planarity 가 좋은 게임 이라고 생각 합니다. 평면 그래프에 대한 아이디어를 제공하고 그래프 이론의 기본 개념을 소개합니다 (노드 및 에지로 만든 그래프 및 노드의 정도, 평면 그래프는 무엇입니까 ...).


1

계산 난도의 개념을 설명하기 위해 곱셈을 언급 한 사람이 아무도 없다는 것은 놀라운 일입니다. 우리는 곱셈에 대한 표준 교과서 빠른 알고리즘을 가지고 있기 때문에 곱셈이 쉬우 며, 알려진 빠른 알고리즘이없고 가장 잘 알려진 알고리즘이 철저한 검색보다 현저히 빠르지 않기 때문에 주요 요인을 찾는 역기능이 어렵습니다.


@Saeed, 우선 테스트에 대해 언급 했습니까?!
Mohammad Al-Turkistany

내 실수를 미안하다, 나는 잘못 읽었다. (나는 "소수점을 찾는 중 ..."을 읽었다. 사실 역순으로 나는 소수에 대해 이야기하고 싶다고 생각했다.
Saeed

0

CS에서 이론에 대해 생각하고 문제 자체를 해결하는 젊은이들에게 좋은 문제의 원천은 "컴퓨터 과학 분리" http://csunplugged.org/ series입니다. 우리는 학교에 가서 아이들과 함께 활동을하거나 Uni를 방문하여 아이들과 함께합니다.

몇 년 동안 진행되어 왔으며 여러 언어로 번역되었습니다. 기사는 세션을 실행하는 방법, 필요한 자료 및 이전에이를 실행 한 사람들을 구성하는 팁에 대한 정보를 제공합니다.

추천!


2
네. 가스 퍼 서지 답변을 참조하십시오.
Jeffε

-1

2+기음


2
프랙탈은 멋지지만 실제로는 "이론적 CS의 개념"이 아닙니다.
Jeffε

아직도 TCS 주제의 공식 목록을 기다리는 여기에서, 나는 그것을 광범위하게 정의하며 이것은 spolsky와 같은 많은 다른 사람들에 의해 지원됩니다 . 나에게 프랙탈은 경험적 연구 에 매우 적합하다 . 많은 엘리트 CS 연구원들은 많은 중요한 논문에서 그것들을 연구했습니다 (죄송합니다. 목록이나 설문 조사를하지 마십시오, 아마도 Wolfram 일 것입니다). 그것의 정당한 논쟁을 추측하지만, 그것의 기원으로 돌아가는 오래된 토론.
vzn

2
"이론적 컴퓨터 과학"에 대한 합리적인 정의 는 FAQ 의 첫 번째 섹션을 참조하십시오 . (또한 Joel은 이론적 인 컴퓨터 과학을 넘어 사이트의 범위를 확장 할 것을 주장하면서 커뮤니티는 동의하지 않았습니다.)
Jeffε

메타 토론을 추측하지만 spolskys 게시물을 다르게 해석합니다. 그는 컴퓨터 과학의 많은 표준 분야를 열거했으며, 그 분야마다 이론적 인 측면이 있습니다. 프랙탈에 대해 물어보고 무슨 일이 일어나는지보고
vzn

1
동의한다; 이것은 메타에서 더 잘 논의됩니다.
Jeffε
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.