고등학교 TCS 교육-기존 프로그램


16

나는 새로운 TCS 고등학교 프로그램을 가르치라는 제안을 받았는데, 커리큘럼을 구성해야합니다. 이에 대한 의견과 제안을 듣고 싶습니다.

첫째, TCS 프로그램이 성공적으로 (또는 성공적으로) 가르쳐 진 고등학교에 대해 아는 사람이 있습니까?

이 아이디어는 우수 학생을위한 3 주 프로그램 (10-12-12 학년, 16-18 세), 매주 약 8 시간이며, 이는 요구가 많거나 요구되는 것을 의미합니다. 표준 "컴퓨터"프로그램과 달리이 프로그램은 프로그래밍에 중점을 두지 말고 CS의 선택된 주제 (주로 TCS)에 중점을 두어야합니다. 지금까지 우리가 염두에두고 있던 주제는 다음과 같습니다.

  • 점근 분석
  • 기본 데이터 구조 및 알고리즘 (목록, 배열)
  • 욕심 많은 알고리즘 대 동적 프로그래밍의 데모로서의 그래프 알고리즘.
  • 다른 알고리즘 (예 : 확률 론적)
  • 계산 능력-TM, 축소, 결정 가능성의 개념.
  • 복잡성-NP, P, PSPACE 및 NL 완전성.
  • 오토마타 이론

기본적으로 이것은 CS에서 B.Sc의 처음 2 년의 TCS 부분을 다룹니다. 그러나이 학생들은이 자료의 대부분에 필요한 수학적 기초가 부족하다는 점을 명심해야합니다. 특히 세트 이론, 조합론, 확률 및 모듈 식 인공 지능과 같은 것은 고등학교에서 가르치지 않습니다 (불행히도).

요약하고 정확한 질문을하려면 :

  1. 어디에서나 비슷한 프로그램을 알고 있습니까?
  2. 프로그램을 흥미롭고 중요하고 직접적으로 관련시키면서 (예 : 그룹 이론이 중요하고 흥미롭지 만 충분히 관련이없는) 위의 주제 대신에 / 추가로 배울 수 있고 생각해야 할 구체적 / 일반적인 주제에 대한 제안이 있습니까? 소요되는 시간을 정당화하기 위해)
  3. 요즘 정말 뜨거운 주제이기 때문에 어떤 형태의 기계 학습을 소개하게되어 기뻤습니다. 측정 집중 이론과 같은 도구없이 기계 학습을 제공 할 수있는 방법에 대한 아이디어는 환영합니다.

2
마지막에 오토마타 이론을 일종의 사후 생각으로 나열하는 것 같습니다. 저는 오토마타 이론을 중심적이고 통일 된 주제로 만드는 것을지지합니다. 특정 수학적 배경없이 공식적인 수학적 추론을 학생들에게 소개 할 수 있습니다. 그것은 기초적이지만 증명하기에 비교적 간단한 날카로운 무조건 이론을 가지고있다. 내 경험으로는 첫 번째 이론 과정에서 학부생들에게 가르치기가 어렵지만 HS에 더주의를 기울여야하지만 기계 학습에 직접 연결할 수 있습니다 .
Artem Kaznatcheev

1
전에도들은 적이 없다! "선발 된"학생? 그것은 또한 아마도 고급을 의미합니까? TCS 또는 온라인 블로그 [많은 좋은 블로그] 에서 인기있는 과학 서적을 사용해보십시오 . 튜링 머신, 다른 주요 / 관심 영역을 양자 컴퓨팅합니다. 수학이 무겁지 않고 수학적인 방법이 아닌 개념적인 방법으로 수행되면이 방법을 사용할 수 있다고 생각하십시오. 또한이 사이트는 edu 질문에 많이 등장합니다 : cs unplugged . 행운을 빕니다!
vzn

2
나는 당신이 언급 한 수학적 기술을 가르치는데 시간을 할애하는 것이 최선인지 궁금합니다 (예를 들어, 확률) ... 이것은 잠재적으로 더 고급 주제를 다루는 데 도움이 될 것입니다. .
usul

1
@vzn-그렇습니다. 이들은 고급 (심히 말하면-재능있는) 학생들입니다.
Shaull

1
@vzn 그것은 매우 흥미로운 제안입니다. 어쨌든 TCS는 아직 대중 문화의 일부가 아닙니다. 즉, 호기심 많은 학생들조차도 P 대 NP와 같은 질문을 알지 못합니다. 그러나 우리는 현재 CS 학생들에게 제안을 요청하고 그들이 무엇을 생각하는지 보게 될 것입니다. 내 생각에는 암호화가 중심이 될 것입니다.
Shaull

답변:


8

많은 국가에서 IOI 팀을 위해 여름 학교를 조직합니다 (대략 16 세 이하의 고등학생으로 구성). 우리가이란에서 가지고 있었던 것은 다음과 같은 과정을 가졌습니다.

  • 프로그램 작성,
  • 데이터 구조 및 알고리즘
  • 조합론
  • 그래프 이론.

저는 ACM의 컴퓨터 과학 교사 협회 (Computer Science Teachers Association)가 교육 과정 자료 페이지 에 K12 교육 과정 을 가지고 있다고 생각 합니다.


프로그래밍 반드시 커리큘럼의 일부 여야 한다고 생각 합니다 . 파이썬은 배우기에 좋은 첫 번째 언어가되어야합니다.

응용 프로그램으로 접근 가능한 주제를 다루고 싶을 수도 있습니다. 멋진 것을 만드는 기쁨은 관심에 큰 영향을 줄 수 있습니다. 코스타 에있는 Andrew Ng의 ML 과정 은 재능있는 학생들이 이용할 수 있어야 한다고 생각 합니다.

당신이 고려하고 싶을 비표준 주제는 조합 게임 이론이지만, 16 세에게는 그리 흥미롭지 않을 수도 있지만 (경험이 없습니다) 경험이 적은 어린 학생들에게는 꽤 잘 작동합니다.

나는 개인적으로 중심과 연결 주제가 알고리즘을 중심으로해야한다고 생각합니다. 중심 주제로서 그것이 자동 이론보다 더 잘 작동 할 것이라고 생각합니다. 아마도 알고리즘 관점 (Touring machines, automata 등은 아닙니다)이 컴퓨터 과학 본질입니다.


프로그래밍 부분에는 표준 CS 프로그램이 적용됩니다. 이것들은 추가 주제입니다. 그런 여름 학교 웹 사이트에 대한 링크가 있습니까? 알고리즘에 중점을 둔다는 점은 알고리즘이 CS의 핵심이라는 데 동의하지만 컴퓨팅과 복잡성은 컴퓨터 과학 본질 이라고 생각 합니다. 영리한 알고리즘보다는 우리가 해결할 수없는 것들이 있다는 사실에 훨씬 감명을 받았습니다. 그러나 두 가지 모두 다룰 것입니다.
Shaull

어떤 식 으로든 튜링 머신은 모두 알고리즘에 관한 것 입니다. 또한 루비파이썬 과 비슷한 훌륭한 옵션 입니다. 같은 서브 j에서 개발을 배우는 또 다른 훌륭한 옵션 은 여러 가지 이유로 자바 스크립트 입니다. 예를 들어 브라우저에서의 확산, 많은 공개 / 샘플 코드, 넓은 기능, 높은 사용량 등
vzn

1
@Shaull, 그들은 사이트 ( Young Scholars Club )를 가지고 있지만 페르시아어이며 여름 학교에서 다루는 내용에 대해서는 많이 포함하지 않습니다.
Kaveh

1
@vzn, 나는 당신이 고등학생들에게 TCS를 가르치는 데 많은 경험이 있다고 생각하지 않으며 나는 당신의 의견에 관심이 없다는 것을 매우 명확하게 설명했습니다 . 내 답변 트롤링을 중지하십시오.
Kaveh

케이, PLZ 내 bkg을 추측하지 않으며 같은 예의를 할 것입니다. 코멘트는 기본적으로 당신의 의견 을 지지 하는 것입니다 ... 메타에 대한 주제처럼 들립니다 = (
vzn

5

흥미롭게도 기계 학습이 독창적 이라고 주장하는 사람있습니다.컴퓨터 과학 주제 중 고등학생에게 가르치는 것은 아마도 기본 수학이 중요한 도전을 이해할만큼 충분히 이해할 수있는 소수의 하위 분야 중 하나 일 것입니다. 이 주장에 동의하지 않습니다. 기본 알고리즘 (검색, 정렬 등)을 퍼즐로 표현할 수 있으며 상태를 매우 간단하게 표현할 수 있지만 "기본적으로 동일한 수의 연산으로 곱셈을 수행 할 수 있습니다" 더하기 ", 또는 선형 시간으로 정수 정렬 또는 팩토링 (소수점 개념은 선택된 고등학생 그룹에게는 새로운 것이 아니라고 가정합니다). 반면 통계와 확률 이론에 대한 경험이 없으면 많은 머신 러닝을 이해하기가 어려울 것입니다. 그렇지만,

교육 프로그램의 관점 에서 Drexel의 Essinger와 Rosen 이 더 자세히 설명 합니다.

이것들 외에도, 나는 학습 이론에 대한 더 높은 수준의 아이디어를 스케치하려고 시도 할 수 있다고 생각합니다.

  • 기본 분류 문제는 무엇입니까
  • 개념 수업이란 무엇이며 개념을 배우는 것은 무엇을 의미합니까?
  • 지수 샘플링 복잡성이 적은 무제한 개념 클래스에서 개념을 배우기를 원하지 않는 이유 (인수 계산에 대한 소개)
  • VC 치수 란?

또 다른 제안은 회로를 도입하고 Shannon의 하한에 대한 스케치를 시도하는 것입니다. 학생들이 얼마나 편안하게 세는지에 따라 다릅니다. 이것이 너무 무거 우면 학생들이 회로 자체를 믿음으로 세는 동안 논쟁을하는 것이 여전히 도움이 될 수 있습니다. "문제가 너무 많고 작은 회로가 너무 적기 때문에 대부분의 문제에는 큰 회로가 필요하다"는 생각이 듭니다. 이 아이디어는 복잡하고 중요합니다.


두 제안 모두 매우 좋습니다. 감사! 고등학교의 경우 VC 차원이 무엇인지 배우는 데 약 3 개월이 걸릴 수 있다고 생각합니다. 그러나 특히 생각이 이미 있었기 때문에 고려할 가치가 있습니다.
Shaull

나는 개념을 배우는 것이 무엇을 의미하는지 이해하고 태양이 얼기 전에 임의로 복잡한 것을 배울 수 없다는 모호한 생각을 갖는 것이 승리라고 생각합니다.
사쇼 니콜 로프

3

여기에 한 가지 유망한 방향이 있습니다. AP / NSF는 최근 새로운 고등학교 고급 배치 CS 프로그램 이니셔티브를 발표했습니다. 표준화 된 수업 계획, 대학 인증 등과 같은 프로그램을 사용하면 많은 이점이 있습니다.

현재 개발 중이며 2016 년을 준비 중입니다. 임시 코스 강의 계획서 및 자료는 온라인으로 제공됩니다. (학술 전문가에게는이 시점에서 "집합 지능"유형 협업을 통해 미래의 콘텐츠에 영향을 줄 수있는 가능성이있을 수 있습니다.)

이 대학위원회의 고급 배치 프로그램 (Advanced Placement Program)은 목요일에 7 년 만에 처음으로 새로운 컴퓨터 과학 프로그램을 수업에 추가 할 계획이라고 밝혔다. 이 움직임은 미국 경제를 세계적으로 경쟁력을 갖기위한 국가의 추진 속에서 과학 분야에서 경력을 쌓기 위해 학생들을 훈련시키는 것에 대한 관심 증가를 반영합니다.

새로운 프로그램, AP 컴퓨터 과학 원리, 컴퓨팅의 "창조적 인 측면"에 집중하고 의해 부분적으로 지원됩니다 $ 국립 과학 재단 (National Science Foundation)에서 520 만 부여합니다. 연방 기관은 과학, 기술, 공학 및 수학 또는 STEM 분야의 교육을 개선하기위한 노력의 일환으로 2016 년까지 전국의 같은 수의 고등학교에서 추가로 10,000 명의 컴퓨터 과학 교사를 양성하는 것을 목표로합니다. 대학위원회는 대한의 칩 것이다 $ 교사 지원 및 장비의 350 만.

기존 프로그램을 AP Computer Science A라고하며 새 프로그램을 AP Computer Science Principles라고합니다. 기존 수업은 수년 동안 진행되어 왔으며 교과 과정을 개발하는 교사를위한 모델로도 유용합니다.



3
또한 Baker Franke와 본인은 SIGCSE '14에서 BOF (Birds-of-A-Pather) 세션에 대한 제안서를 제출하여 CS 원칙 커리큘럼에서 이론의 주제에 액세스 할 수있는 방법을 논의했습니다.
rahulmehta95

@ rahulmehta95-내가 읽을 수있는 제안에 대한 링크가 있습니까?
Shaull

2
여기 있습니다 : cs.ucls.uchicago.edu/~rahulmehta/papers/BOF-Theory.pdf . 도움이 되었기를 바랍니다!
rahulmehta95

2

내가 최근에 쫓아 온 아이디어는 고등학생들에게 문제 사이의 감소에 대한 개념을 가르치는 방법입니다. 3-SAT와 같은 문제가 "어려운 것"이라는 사실에 대해 머리를 감는 것은 매우 어렵 기 때문에 복잡성에 대해 소개했을 때 가장 흥미롭지 만 가장 어려운 주제 중 하나라는 것을 알았습니다. 정점 표지로.

내가 생각 해낸 예는 다음과 같이 VC (Vertex Cover)와 IND-SET (Independent Set) 사이의 축소입니다.

"당신은 박물관의 감독이며 복도를 지키기 위해 보안을 고용해야합니다. 복도의 교차로에 배치 될 때 경비원은 그와 인접한 모든 복도를 주시 할 수 있습니다. 필요한 최소 경비원 수는 얼마입니까? 박물관 전체를 순찰 하는가? "

"조금 후, 일부 어린이들은 박물관에서 숨바꼭질 게임을하기로 결정합니다. 그들의 목표는 다른 어린이가 볼 수 없도록 숨기는 것입니다. 그러나 경비원들은 복도, 그래서 그들은 교차로에서 "숨기기"로 강등됩니다. 서로 보지 않고 박물관에서 숨길 수있는 가장 많은 어린이는 무엇입니까? "

주요 목표는 학생들이 축소 표시의 중심에있는 다음 정리를 공식화하고 증명하는 것입니다. VIND-SET;

정리 : 들어=(V,이자형), 에스V 독립 세트입니다 V에스 정점 표지 (여기서 설정 차이를 나타냅니다).

제가 VC & IND-SET을 선택한 이유 는 문제가 밀접하게 관련되어 있음을보기가 어렵지 않기 때문입니다 . 독립적 인 세트가있을 때마다에스버텍스 커버를 유도합니다. V에스.


나는 (매우 훌륭한) 예제의 동기를 이해하지만 HS에서는 훨씬 직관적 인 Turing 축소로 시작할 것이라고 생각합니다. 또한 매개 변수 변경뿐만 아니라 입력을 실제로 조작 해야하는 문제부터 시작하겠습니다. 예를 들어나는이자형나는에스이자형더 관련이 있습니다.
Shaull

줄어드는 한, 보편적 인 튜링 머신이 있다는 증거는 고등학생이 갈 수있는 방법 중 하나 일 것입니다. 는 변환 tseitin ?
vzn
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.