컴퓨터 과학에 관심을 갖기 위해 16-17 세의 어린이들과 어떻게해야합니까?


40

몇 주 안에 대학에서 일종의 '오픈 데이'에 참여할 것입니다. 이 시간의 일환으로, 나는 (동료와 함께) 2 시간 동안 많은 고등학생들과 그들 모두를 담을 수있을만큼 큰 컴퓨터 실습실을 받고 있습니다. 학생들이 컴퓨터 과학 (이상적으로는 물론 일반적으로도)을 수행하도록 장려하기위한 활동 또는 활동 세트 나는 여기서 무엇을해야하는지 절대적으로 상실하고 있으며, 모든 제안을 환영합니다.


나는 교사도 아니고 전문가도 아니지만 레벨 생성, 솔루션 확인, 자동 솔루션 찾기 :- )
Vor

1
2008 년 왕립 교육 기관 크리스마스 강의를 좋아했습니다 . 비슷한 활동 / 데모를 시도 할 수 있습니다.
melhosseiny

답변:


21
  • 문맥없는 문법을 사용하여 그림을 그리도록 할 수 있습니다. 컨텍스트 프리 아트 이것은 또한 이전에 프로그래밍하지 않았으며 숙련 된 프로그래머에게 확장되는 사람들에게도 효과적입니다. 기본 언어는 30 분 안에 설명하기가 쉽습니다.
  • Turtle 그래픽을 사용하여 지오메트리에 대해 배우는 것도 좋습니다. 로고는 어린 이용으로 설계되었으므로 고등학생에게는 문제가 없습니다. YouTube에서 로고 사용하는 어린이에 대한 멋진 동영상이 있습니다.
  • MindStorms 로봇을 손에 넣을 수 있다면 프로그래밍이 재미 있습니다.
  • 로봇이 서로 싸우도록 프로그래밍하거나 가상 머신에서 서로를 덮어 쓰는 어셈블리 프로그램을 프로그래밍하는 다양한 프로그래밍 게임이 있습니다. 주제 , 관련 stackoverflow 질문 에 대한 Wikipedia
  • 어떤 종류의 하드웨어 프로젝트에 대해서도 생각할 수 있습니다. 예를 들어받은 편지함에서 읽지 않은 전자 메일 수에 따라 마이크로 컨트롤러가 LED를 깜박이게하는 경우
  • 그들에게 다른 미로 생성 알고리즘을 구현 하게하고, 미로를 "인간에게 어려움"으로 만드는 기준을 생각해 보자. 시간이 허용되면 알고리즘은 복도뿐만 아니라 방도 포함하도록 확장됩니다.
  • 두 개의 Arduino와 LED를 구입하십시오. 깜박이는 불빛을 프로그램하도록하세요.

1
Khan Academy의 컴퓨터 프로그래밍 튜토리얼에 대한 링크를 목록에 추가 할 수 있습니다. 위의 멋진 / 대화 형 추가 기능입니다. 예 : khanacademy.org/cs/intro-to-animation/830742281
PhD

CFG도 +1-시도하고 적용하기에 좋은 동일한 개념의 다른 버전은 반복 함수 시스템으로 부시 그리기를 시도하고 수행하는 것입니다. 직사각형으로 시작하고 직사각형을 몇 개 더 설정 한 다음 첫 번째 직사각형 (모든 하위 직사각형 포함)의 '내용'을 각 하위 직사각형에 반복하십시오. 비교 목적으로 디지털 버전을 설정할 수 있습니다.
Steven Stadnicki

13

Computer Science Unplugged를 확인하십시오 . 그들의 사이트에서 :

CS Unplugged는 카드, 문자열, 크레용 및 수많은 게임을 사용하는 매력적인 게임과 퍼즐을 통해 컴퓨터 과학을 가르치는 무료 학습 활동 모음입니다.

이 활동은 학생들이 일반적으로 컴퓨터에서 볼 수있는 방해 요소 및 기술적 세부 사항과 분리 된 이진수 , 알고리즘데이터 압축 과 같은 기본 개념을 소개 합니다.

CS Unplugged는 초등학교에서 노인 , 그리고 많은 국가와 배경에서 모든 연령의 사람들에게 적합합니다 . Unplugged는 전 세계에서 15 년 이상, 교실, 과학 센터, 가정 및 공원의 휴가 행사에 사용되었습니다!


1
이것은 좋은 제안이지만 OP가 실제로 컴퓨터 실을 사용하는 것을 원한다고 생각합니다.
András Salamon 2018 년

유효한 포인트. 프로그래밍을 모르는 사람들을위한 robocode 프로젝트가 있어야합니다.
Pål GD

11

내가 아는 대부분의 컴퓨터 과학 학부생들은 프로그램을 배우는 것이 그들의 교육에서 가장 고통스럽고 쇠퇴하는 부분이라고 생각합니다. 그래서 저는 멀리 것 아무것도 자체를 프로그래밍과 관련이있다. 으로 scphantm가 이미 지적, 당신은 아마이 시간이 없습니다.

당신이 찾고있는 것은 두 가지 목표를 충족시키는 2 시간 운동입니다.

  • 고등학교 졸업생들이 2 시간 동안 충분히 관심을 가질 정도로 흥미 롭습니다.
  • 그것은 그들에게 컴퓨터 과학이 무엇인지 엿볼 수있게 해줄 것이며, 그들에게 관심을 갖기를 바랍니다.

첫 번째 목표는 실제로 보여 주려는 내용과는 상당히 독립적이며 훌륭한 교사 / 발표자가되는 것과 더 관련이 있습니다. 예를 들어 청중을 발목으로 묶어 그룹으로 작은 일을 시도하게하고 15 분마다 한숨을 쉬게하는 등의 훌륭한 교훈 연습.

두 번째 목표는 약간 까다로운 부분이며 여기서 가장 잘 작동하는 것은 현재 지식으로 설명 할 수있는 문제를 해결하고 솔루션을 알고리즘으로 설명하는 방법을 보여준 다음 해당 솔루션을 분석하는 방법을 보여주는 것입니다 개선되었습니다.

GPS 내비게이션 시스템으로 알려진 그래프에서 가장 짧은 경로 문제가 좋은 예입니다. 설명이 필요 없습니다. 가장자리 가중치 / 길이가 그려진 작은 맵과 설명 할 때 실제로 알고리즘을 실행하기위한 많은 크레용을 줄 수 있습니다.

그런 다음 당신이 그렇게에 최단 경로를 찾아 것입니다 방법에 대한 논의를 시작할 수 있습니다, 그들 등이 ... 그럼 당신은 기술, 알고리즘으로 공식화 해보자 다 익스트라의 알고리즘을 그들과 노드 색상시키는, 방문 , 모습을 , 그리고 방문하지 않은 세트. 밤. 알고리즘이 있습니다!

O

PNP


9

2 시간 밖에 걸리지 않으면 많은 코딩 작업을 수행 할 수 없습니다. 그 당시에는 구문 학습이 어려울 수 있지만 대신 할 수있는 일이 많이 있습니다.

제안으로, 제어 흐름과 구체적이어야하는 중요성을 가르치십시오.

  1. 수업을 2 명의 "로봇"과 다른 "프로그래머"로 나눕니다.
  2. 간단한 논리, 루핑 등이 필요한 적절한 도전을 생각해보십시오. 아래에 예가 있습니다.
  3. "프로그래머"에게 "로봇"에 제공된 목록 지시 사항을 작성하게하십시오
  4. "로봇"이 지침을 수행하도록하지만, "로봇"에게 지침이 혼란 스러울 경우 "프로그래머"가 중지하고 디버깅 할 때까지 중지, 오류 또는 다른 방식으로 작동 할 수 있음을 알립니다. 플레이 할 기회가 주어지면 고등학생의 의지가 보장됩니다.

예를 들어, 다른 색깔의 볼로 된 통을 다른 곳에 다른 색깔의 종이 조각과 각 로봇 / 프로그래머 쌍에 충분한 작은 버킷을 설치하십시오. 작업은 로봇이 양동이로 공을 채우도록하는 것이지만 그렇게하기 위해서는 특정 종이와 일치하는 공만 가져갈 수 있습니다. 욕조에 해당 색상의 볼이 더 이상 없으면 로봇은 종이를 돌려 보내고 새 것을 수집해야합니다.

이 작업에는 조건부 분기, 반복, 오류 처리 및 절차 적 사고가 필요합니다. 언어 나 활동에 관계없이 프로그래머가 능숙해야하는 모든 것.

이와 같은 것을 두 번 실행하면 "로봇"과 "프로그래머"가 서로 바뀔 수 있습니다. 그 사이에 위의 사고 패턴에 대한 작은 교훈을 주면 그들은 두 번째에 훨씬 더 잘 수행하고 프로그래밍의 큰 사건에 대한 작은 이야기로 마무리합니다. 나치를 물리 치고 달, 인터넷, 당신은 잠재적이고 참여적인 프로그래머의 방을 갖게 될 것입니다!


1
왜 이것을 +10으로 줄 수 없습니까? 이것은 좋은 생각입니다.
Xynariz

@Xynariz 감사합니다! 나는 정말로 작은 그룹으로 몇 번 해왔고, 일반적으로 재미와 좌절감을 느끼게됩니다. 그러나 좌절은 아이들이 이해하지 못하는 컴퓨터가 아니라 잘못 작동하는 "로봇"에 있습니다.

때때로 사람들은 컴퓨터가 당신이 말한 것을 정확하게하는 데 아주 훌륭하다는 것을 이해하지 못하는 것 같습니다. 이것에 관한 CyberChase 에피소드도 있습니다 ... (숨기기)
Xynariz

7

나는 많은 프로그래머들을 훈련시켰다. 당신이 가진 모든 것이 2 시간이라면, 코딩하는 법을 가르치지 않아도됩니다. 컴퓨터 실도 필요하지 않습니다. 제로에서 헬로 월드로 가려면 클래스의 절반을 풀고 2 시간 중 45 시간을 글리치로 처리하고 아무것도하지 않습니다.

프로그래머처럼 생각하는 것을 보여주는 행운이 더있을 것입니다. 그들 각자에게 종이와 펜을주고 책상에서 휴대폰을 들고 전화를하는 방법에 대한 자국어로 프로그램을 작성하라고 지시하십시오. 그들의 답변을 통해 걸으십시오. 소금이 코드에 농담이라면 프로그램을 통해 더 나은 방법과 필요한 세부 사항을 이해하는 방법을 알려줄 수 있습니다. 그런 다음 평범한 일을하기 위해 자신의 말로 프로그램을 작성하도록 요청하십시오. 바지를 입히고 양치질을하고 문을 열면됩니다. 해당 프로그램과 동일하게 수행하십시오.

프로그래머처럼 생각하는 것을 맛보십시오. 그들은 2 시간 안에 파이썬을 가르치려고 노력하는 것보다 확실히 더 많은 것을 얻을 것입니다.


6

Alice를 사용해보십시오 . 3D 애니메이션을위한 IDE 및 API입니다. 그것은 사물에 내장 된 모든 종류의가 (토끼, 외계인, 나무, 건물, ...) 당신은 매우 높은 수준의 방법으로, 초기 화면에 배치 할 수 있음 : 같은 walk(north)(이 캐릭터가 이동하는 동안 팔과 다리를 애니메이션) 및 say("my name is Winky")만화 거품이 문자의 입에서 나올 발생할 수 있습니다.

키보드 및 마우스 이벤트를 연결하여 대화식 작업을 수행 할 수 있습니다.

기본 프로그래밍 언어는 Java이지만 IDE는 표현식의 일부를 편집기 창으로 끌어서 놓는 그래픽 변형을 제공합니다. (구문 오류를 만들 수 없습니다.)

프로그래밍 경험이없는 사람이 불과 몇 시간 만에 흥미로운 것을 할 수 있도록 장면을 모두 미리 설정할 수 있다고 생각합니다.


1
이 방법을 사용하는 것을 망설이고 있습니다. 어린 학생들에게는 효과가 있지만 고등학생들은 유치한 것으로 볼 가능성이 높습니다. 즉, 이것은 2 시간의 제한 시간 내에 무언가 를 완료하는 빠른 방법입니다 ...
Izkata

6

장난감이나 그래픽 언어로도 코딩은 한 시간 만에 끝없이 퍼져있는 것 같습니다. 지옥, 나는 Alice를 다시 집어 들고 2 시간 안에 가치있는 일을 할 수 있을지 확신하지 못한다. 아마 주말이지만 2 시간은 아닙니다.

CS를 끓여서 필수 문제로 해결하는 것이 좋습니다. 문제 해결 및 분석. 그룹을 팀으로 나눕니다. 몇 가지 고급 계산 문제를 설명하는 데 10 분이 걸립니다. 수학이나 CS 배경이 거의없는 사람들에게 쉽게 설명 할 수있는 쉬운 문제 여야합니다. 예를 들면 다음과 같습니다.

  1. 리스트 정렬
  2. 최소한의 스패닝 트리 찾기
  3. 정수의 근사 (근사) 근
  4. 기타

추가로 논의하고 작업을 설명하기 위해 10 분 더 소요하십시오. 각 그룹에는 솔루션을 브레인 스토밍하기위한 하나의 문제가 할당됩니다. 팀은 할당 된 문제에 대한 솔루션 또는 솔루션을 공동으로 파악하는 데 30 분이 걸립니다. 그런 다음 한 시간 동안 전체 그룹의 솔루션을 검토하고 아이들이 작동하는지 여부, 문제를 해결하는 더 빠르고 더 나은 방법이 있는지 등을 파악하도록하십시오.

아이들이 올바른 / 최적의 해결책을 찾지 못하면 괜찮습니다. 그러나 대답을 포기하지 마십시오. 이것은 절대적으로 중요합니다. 아이들이 더 이상 STEM을하지 않는 이유는 교육자들이 아이들에게 모든 것이 이미 이해되었다는 인상을주기 때문입니다. 아이들이 이러한 문제를 해결하고 스스로 성공하거나 실패 할 수 있도록하려면 매우 성숙한 상담자가 필요합니다. 정답을 얻는 것이 요점이 아닙니다. 요점은 아이들에게 흥미로운 문제를주고 컴퓨터 과학에 관한 문제를 아이들에게 보여줍니다 : 문제 해결, 정확성과 효율성을위한 솔루션 평가. 아이들이 자신의 답변을 찾게하면 소유권을 느끼게되고 참여 감을 느끼게됩니다.

물론, 아이들이 정답 / 좋은 / 가장 잘 알려진 답을 얻었는지 물어 보면 진실을 말하십시오. 그러나 학생들의 해결책을 논의한 결과 유기적으로 나오지 않는 한 답을 포기하지 마십시오. 요약:

  1. 아이들이 이해하기는 쉽지만 풍부한 문제를 탐구하도록합니다.
  2. 아이들이 자신의 솔루션을 생각해 내도록하여 아이들이 당면한 문제를 이해할 수 있도록 충분한 도움 만 제공하십시오.
  3. 그룹 환경에서 정확성 / 효율성에 대해 토론하여 그룹에게 솔루션을 설명 할 수있는 기회를 제공하십시오. 카운슬러로서 귀하는 자신이 이익을 얻을 수 있다고 생각하는 한 정확성 / 효율성에 대해 자유롭게 논의 할 수 있습니다.
  4. 어떠한 경우에도 학생이 제공 한 솔루션과 기본적으로 동일한 경우가 아니면 문제에 대한 자신 만의 솔루션을 제시해서는 안됩니다. CS가 사람들이 이미 모든 답을 알아 낸 필드 인 것처럼 보이게하지 마십시오.
  5. 가능하다면 아이들이 무언가를 배운 것처럼 느끼게하지만 여전히 질문이 있습니다 : 그들은 가장 좋은 답을 찾았습니까? 다른 질문도 비슷한 방식으로 해결할 수 있습니까? 다이제스트하기 쉬운 형식으로 결정 불가능한 문제를 제공하여 나중에 작업 할 수 있도록 할 수도 있습니다.

친선 경기에서 팀끼리 서로 경쟁하는 것도 고려할 수 있습니다. 한 쌍의 팀에게 동일한 문제를 제공하고 누가 더 나은 솔루션을 제시하는지 확인하십시오.
Patrick87

1
그런 종류의 경쟁은 수줍은 사람들을 강력하게 낙담시키고 이미 그 물건을 알고있는 사람들의 자아를 강화시킵니다. 이것은 CS의 이미지를 "대단한 사람에게만"으로 강화시킵니다.
adrianN

6

나는 17 살 때부터 16 살 때부터 프로그래밍을 시작했다. 나는 내 이야기를하고 제안을하기보다는 다음과 같이 제안한다. 프로그래밍에 대한 관심은 내가 컴퓨터 기술자를보고있을 때 시작되었다. 비록 500 달러가 내 BSOD를 고치기를 원했지만 비용을 지불하지 않았지만 스스로 고쳤습니다.) 그래서 "명령 프롬프트 언어"를 검색하고 "소스 코드"라는 것이 있다는 것을 알게되었고 그것은 당신이 . C ++이 무엇인지 전혀 몰랐을 때 나는 그것을 들어 본 적이 없다고 생각합니다. 그래서 나는 cpp.com (매우 나쁜 튜토리얼, 당신은 나쁘고 오래된 습관을 배울 것입니다)에 가서 기초를 배우기 시작했습니다. 내 마음이 미쳤고 실제로 내 문제를 일으킨 감염된 바이러스가 c ++로 작성되어 더 관심이 있다는 것을 알게되었습니다. 나중에 읽기, 학습 어셈블리 및 기타 고급 언어를 시작했습니다. 먼저 맬웨어 및 그래픽 프로그래밍에 대해 배우고 싶었습니다.

  1. 이것은 나쁘게 들리지만 내 나이의 많은 사람들이 실제로 프로그래밍의 파괴적인 측면에 관심이 있습니다. 내가 친구에게 c ++로 꽤 잘 말할 때 내 첫 번째 질문은 "바이러스를 만들거나, 등급을 변경하거나 게임을 해킹 할 수 있습니까?"라는 것입니다. 그곳에. 아마도 위험하거나 불법은 아니지만 여전히 흥미로운 악성 코드 라인을 따라 할 수 있습니다. (학교 서버에서 학생의 로그인 정보를 얻을 수도 있습니다.) 바이러스 및 악성 소프트웨어의 작동 방식에 대해 이야기 할 수 있습니다.
  2. 포켓몬 라인을 따라 작은 게임을 개발하고 게임 및 게임 엔진의 작동 방식을 설명하십시오. 많은 사람들은 아마도 이와 같은 많은 2D 게임에서 캐릭터가 실제로 움직이지 않고, 배경이 있고 캐릭터가 단지 애니메이션을 사용하고, 임의의 숫자에 대해 이야기한다는 것을 알고 놀랄 것입니다. 3D 데모도 생각해보십시오.
  3. 코드의 기능 을 설명 하지 말고 프로그램의 내용을 알려주십시오.코드 자체에 대해 너무 많이 이야기하지 않고 자체적으로 수행합니다. 내 경험상 그것은 사람들이 언어의 기본을 이해하지 못하는 경우 사람들의 관심을 잃는 쉬운 방법입니다. 실제로, 나는 누군가가 500 줄의 코드를보고 어떤 코드도 이해하지 못하는 것이 상당히 실망 스러울 수 있기 때문에 소스 코드를 실제로 넣지 않으려 고 노력할 것이다. 또한 당신과 같은 사람이 나와 같은 사람이라면 호기심이 많기 때문에 일련의 질문을 할 것입니다. 즉, 당신은 난수에 대해 이야기하고 있습니다. 그들은 전자 수와 그 난수와 모든 방법에 대해 설명 해야하는 것보다 난수가 무엇인지 그리고 어디에서 왔는지 묻습니다. "모름"처럼.
  4. 레고 마인드 스톰은 훌륭한 아이디어입니다. 긴 경로를 사용하지 않고 주요 언어를 사용하려는 경우 사용할 수있는 블록 스타일 프로그래밍 언어가 제공됩니다. 나는 약 30-40 분 안에 언어를 알아 냈습니다.

  5. 앱을 빠르게 개발하여 과시하고 앱 개발에서 얻을 수있는 $$에 대해 이야기 할 수 있습니다.


4

내가 좋아하는 것 중 일부

  • 프랙탈 생성 . 그들은 깊은 수학과 컴퓨터 그래픽과의 강력한 연계성을 가지고 있으며 자연스럽게 병렬 처리에 적합합니다. 그것은 임의의 규모로 확대 할 때 복잡성과 출현 행동을 설명하며 과학과 자연 현상과 밀접한 관련이 있습니다. 여러 컴퓨터에서 실행되는 병렬 프랙탈 코드를 작성하는 것은 어렵지 않습니다. 한 가지 실험은 각 기계가 처리 한 임의의 회선을 표시하고 (예 : 대기열에서 회선을 처리하는 "슬레이브"기계) 중앙 시스템이 결합 된 결과를 표시하도록하는 것입니다.

  • 레고 로봇 공학 (또는 다른 로봇 공학 키트 (예 : 스탬프 )). mindstorms는 장난감이지만 추상적 인 개념에 대한 실질적인 데모 역할을하는 매우 진보 된 것일 수 있습니다. 그들상에서 실행될 수있는 소프트웨어는 매우 복잡 할 수 있으며, 복잡한 감지-생각 루프 / 알고리즘을 가질 수 있습니다. 좋은 건축 책이 많이 있습니다. 또한 최근 세계 기록을 갱신 한 Rubiks 큐브 솔버 도 인상적 입니다.

  • 라즈베리 파이 는 많은 관심과 사용을 보이는 새로운 저렴한 플랫폼입니다. 리눅스 프로그래밍, 로봇 공학 등을 시연하는 데 사용할 수 있으며 HD 출력 등이 있습니다. 예를 들어 레고 랙이있는 사우스 햄프 턴 라즈베리 파이 슈퍼 컴퓨터 를 참조하십시오 .

  • 다른 답변에서 언급 한 로고 는 오래된 고전입니다. 또 다른 새로운 각도는 게임 프로그래밍입니다. 예를 들어 Scratch ( MIT 에서 개발) 라는 새로운 인기 언어가 있습니다 . 많은 자연 / 고급 CS 주제를 가르 칠 수 있습니다.


2

여기 또 다른 각도. 많은 흥미로운 개방 문제 나 호기심 / 경이 인근의 예 탐사 촉발 수있는 과학적 이해의 국경에서 컴퓨터 과학에서 새로운 기술이있다 테라 인코 그니는 . 문제를 제기 한 다음 학생들에게 솔루션의 파급 효과에 대한 토론에 참여하게하면 상당한 관심 / 영감을 유발할 수 있습니다. [컴퓨터 실의 이용 가능성을 언급 했으므로 이러한 영역과 관련된 실습 컴퓨터 연습을 창의적으로 만들 수도 있습니다.]

이것은 공상 과학적인 느낌을 가질 수 있지만 CS는 다른 분야와 달리 한때 공상 과학이었던 것을 짧은 시간 안에 현실로 바꿉니다. 또한 오늘날의 헤드 라인과 연결되어 논쟁의 여지가 있고시기 적절할 수 있으며, 학생들은 세계 / 사회에서 유비쿼터스 CS가 얼마나 널리 퍼져 있는지, 광범위하게 해석 될 때 그것이 얼마나 중요한지를 파악할 수 있습니다. 여기 몇 가지 큰 것들이 있습니다.

  • 단백질 접힘 문제에 대한 DNA . 정확하게 계산하는 알고리즘이 있습니까?

  • 인공 지능 . 가능합니까? 윤리가 관련되어 있습니까?

  • 로봇 공학 에는 다양한 주요 신흥 분야가 있습니다. 예 : 자율적 인 자동차 / 운전 . 그것은 단기적인 수평선에 있습니다. 이것이 사회에 어떤 영향을 미칠까요? 얼마 전부터 DARPA 컨테스트 의 비디오 가 인상적입니다. Kurzweil의 글에는 많은 것들이 있습니다. 드론 은 거의 공개적으로 논의되지 않는 복잡한 주제이며 점점 더 국내에서 사용될 것입니다. 화성 탐사선은 특별한 기술이며, 이러한 시스템 디버깅해야했다 방법 등 뒤에 놀라운 이야기가 원격으로 interplanetarily 가 실패했을 경우는.

  • 범죄 / 테러를 감지하는 IT 기반 감시 시스템 이 최근 뉴스에 크게 등장했습니다.

  • Higgs boson을 발견 할 수 없었고 "대형 데이터"를 분석하기위한 대형 CS 기반 시스템이 없으면 수퍼 콜 라이더가 전혀 작동하지 않습니다.

  • 무어의 법칙 . 얼마나 계속 될까요? 이미 사회 / 인간에 얼마나 영향을 미쳤습니까?

  • 양자 컴퓨터 . 가능합니까? 그들은 더 빠를 것인가? 그들은 저렴하거나 항상 부실합니까? Dwave 는 화려한 사례 연구이며 Aaronson의 훌륭한 SciAm 기사가 있습니다.

  • Google pagerank 알고리즘 은 현대 컴퓨터 과학의 수십억 달러의 불가사의 중 하나입니다. 연장 되나요? 스팸 필터링은 어떻게 작동합니까? 회사는 이미지 분석 등으로 ​​나아가고있는 것 같습니다.

  • 알고리즘 / 고주파 거래는 이제 대량의 거래량 / 가치를 움직입니다. 좋은가요? 나쁜가요? 증가 / 감소합니까? 앞으로 규제 될 것인가? 어떤 종류의 계산 무기 경쟁이 관련되어 있습니까?

  • 슈퍼 컴퓨터 는 방대하여 놀라운 문제를 해결하고 점점 커지고 있습니다. 한계가 있습니까? 그들은 무엇을 계산하고 앞으로 무엇을 계산할 것인가? 다소 관련, 빅 데이터데이터 마이닝 .

  • 소셜 네트워킹 사이트 는 10 년 미만의 성장에 큰 영향을 미쳤습니다. 그들은 아랍인의 봄점령 벽 성 등 대중적 반란을 불러 일으키고있다 . 그들의 미래는 무엇입니까?


2

나는 그 제안을

  • 컴퓨터 과학 (프로그래밍 또는 보조가 아닌) 에 중점
  • 대부분의 아이들이 알고있는 전제로 시작하고
  • 실제로 시도되고 작동했습니다.

우리는 지뢰 찾기 에 관해 고등학생들과 함께 작은 워크샵을 개최했습니다 . 워크샵은 대략 다음과 같이 진행됩니다.

  1. 게임을 조금 해보자 (대부분 알고 있음).

  2. 우리 방금 뭐 했어? 우리가 해결하려는 문제는 무엇입니까? 일반 규칙을 공식화 할 수 있습니까?

    보통 시간이 걸립니다. 아이들은 문제를 해결하기위한 일반적인 규칙이되도록 입력 및 출력 측면에서 문제를 공식화하는 데 사용되지 않습니다. 전에 프로그래밍 한 사람들은 그 노력에 감사 할 것이다. "스파게티 코드"를 참조하면 도움이 될 수 있습니다. 그럼에도 불구하고 규칙은 한 번에 하나의 셀만 고려하면 대부분 단순합니다.

  3. 규칙 관련 문제를 전시하십시오.

    이 시점에서 지뢰 찾기 시뮬레이터 를 소개하려고합니다 . Bayer, Snyder 및 Chouiery의 작품은 완벽하지는 않지만 신중하게 설계된 시나리오를 전시 할 수 있습니다.

  4. 더 많은 시나리오를 다루도록 규칙 세트를 개선하십시오.

    이것은 일반적으로 학생들이 점점 더 많은 세포를 함께 조사하도록 이끌 것입니다. 또한 정보를 선형 방정식 시스템으로 표현하는 것과 같이 "모두 해결"접근 방식으로 접근 할 수도 있습니다. 사용 가능한 정보를 수학 용어로 표현하려는 경우에 발생합니다. 학생들은 이미 그러한 시스템을 해결하는 방법을 알고 있습니다!

  5. 제한 사항을 참고하십시오.

    첫째, (결정 론적) 솔루션이없는 시나리오가 있습니다. 또한 우리는 개발 된 전략과 무차별 대립을 대비할 수 있습니다. 속도 대 전력을 절충 할 수 있습니까? 방정식-시스템 접근 방식이 나타나면 현실을 통해서만이 문제를 효율적으로 해결할 수 있지만 이항 답이 필요합니다. 엄청난 런타임으로 이어지는 시나리오를 구축하는 것은 그리 어렵지 않습니다 (컴퓨터 대수를 사용하여 설명했습니다).

그룹에 따라이 접근 방식을 통해 컴퓨터 과학의 여러 원리를 자연스럽게 다룰 수 있습니다. 문제 정의, 일반적인 알고리즘 설명, 반복적 인 문제 해결 및 계산 및 복잡성 문제를 모두 해결할 수 있습니다.

학생들의 피드백은 전반적으로 긍정적이었습니다. 그들은 개념에 참여하고 관심을 표명합니다. 학생들이 대부분의 작업을 수행하도록하는 것이 중요하며, 뾰족한 질문을하여 원하는 방향으로 신중하게 처리해야합니다.


1

해야 할 일이 많이 있지만 ... "돈"에서 나오는 것처럼 보이는 한 가지가 있으므로 "P ≠ NP"질문과 7 천년 상을 제시하십시오. 중학교 때 나는 그것에 대해 읽었지만 내가 이해하는 유일한 표기법을 몰랐다 : 큰 상과 질문이있다! 다른 것들은 수학과 컴퓨터 과학의 연결을 제시 할 것입니다 : 방정식 풀기, 컴퓨터를 사용하여 솔루션 확인하기.

내가 제안 할 다른 것들은 Alan 컴퓨터 "컴퓨터 과학의 아버지"를 소개하고 그의 이야기를 들려주는 것입니다. 내가 제안하는 마지막 것은 제로 지식 증명이며 게임은 "왈도는 어디에 있습니까?" 부정 행위 및 암호화 및 사이버 공격없이 플레이.


-2

페이스 북으로 무엇이든하십시오. 그들은 그것을 좋아합니다. 어쩌면 이것은 초보자에게는 어려울 수 있지만, 프로파일이 서로 어떻게 연결되어 있는지 보여주는 연결 그래프를 그릴 수 있습니다. 프로그래밍 언어로 Javascript를 권장합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.