アプローチ可能な8〜14歳の理論CSの概念


34

ありふれた質問ではないと思いますが、この聴衆に有意義な方法で対処するために作成された資料を誰かが見たことがあるのではないかと考えています。




私はよくこの年齢の子供たちに古典的なフォン・ノイマンのパズルを話します:70%の確率で頭を回す偏ったコインを考えると、偏りのないビットを見つける方法は何ですか?
arnab

回答:



21

ラムダ計算

計算を学ぶための楽しい方法:λ

...このゲームは型付けされていないラムダ計算を表します。空腹のワニはラムダ抽象化であり、古いワニは括弧であり、卵は変数です。摂食ルールはベータ削減に対応しています。色の規則は、(慎重すぎる)アルファ変換に対応しています。古い時代のルールでは、括弧のペアに単一の用語が含まれている場合、括弧を削除できると述べています。

ビデオリンク


7
+1 @Pratik Deoghare:興味深い回答ですが、少なくともコメントで、リンクをクリックしてそのページのコンテンツを掘り下げて回答を見つける必要なく、回答が関連する理由を説明することができます。
失策

6
クリックして読むのはどれだけ難しいですか?私たちは本当にすべてを一口サイズのピースで必要としますか?
アンドレイバウアー

7
これは恐ろしく複雑なようです
。– Izkata

15
@Andrej Bauer:はい、実際、SEは回答に関連性を要約するよう要求し、質問への回答として素材にリンクするだけではありません。
失策

11
私は途中で恐ろしく混乱し、数回ルールを読み直さなければなりませんでした。8歳の子供がこれに注意を向ける方法はありません。
BlueRaja-ダニーPflughoeft

8

私の経験では、組み合わせ論、グラフ理論、プログラミング、アルゴリズムなどの基本的なトピックを教えることは難しくありません。

IOI大会や全国大会で取り上げられているトピックを調べることもできます。IOI競技に関連するサマースクールやワークショップはかなり早い段階から始まります。

このようなワークショップでの私の個人的なお気に入りのトピックは、観客とゲームをプレイすることで動機付けが簡単なので、組み合わせゲーム理論です。

また、ACMのK-12 CS カリキュラムリソース、特にK-12のモデルカリキュラムの 11ページと12ページも確認してください。


6

いくつかのアイデア。私には、コンピュータサイエンスに興味のある子供向けの高品質で低コストのオプションが爆発的に増えているようです。科学技術工学数学教育と呼ばれるSTEMとの強いつながりに注意してください。(AがAlgorithmicsを表す新しいキーワードSTEAMを使用して、CS側を強調/提唱できると考えていました。)

  • ブール演算の概念を試して、数学演算を表現してください。2進数から10進数への変換、10進数から2進数への変換、EEからのキャリーを含む多段加算器など。CNFまたはDNFから任意の関数を構築します。若い子供でも、AND、OR、NOTを使用して機能的完全性の概念を理解できます。このような安価なマイクロコントローラを含むもののためのいくつかのラジオシャックキット。たとえば、基本的なスタンプキットを参照してくださいこの目的のために、いくつかの無料/オープンソースの回路シミュレータがあります。残念ながら、これまでコンポーネントのライブラリで配布されているものを見つけることができませんでした。logisimは人気のあるものの1つです。

  • Crazy Machinesと呼ばれるPC / ps3 / etcを含むさまざまなシステムで実行されるこのクールなゲームがありますこれは、ソフトウェアの物理シミュレーションを理解し、相互作用するコンポーネントと連鎖反応のシステムを子供に考えさせるために使用できます。新しいps3バージョンには、スイッチやゲートを含む電気およびロジックコンポーネントが多数あります。

  • ロボット工学。特にレゴマインドストームロボット工学を試してください。ループ、条件、サブルーチンなどを許可する洗練されたソフトウェア。サブルーチンはグラフィカルブロックに含まれています。つまり、そのビジュアルプログラミングシステムは、数年前は非常に最先端でした(現在はおもちゃ)。インスピレーションを得るために、YouTubeには、この最先端のone cubestormer IIなど、多くのルービックキューブロボットソルバービデオがあります。少なくとも1つのデザインは、広く利用可能な本に収められています。たとえば、Daniele Benedettelliによるlego mindstorms nxt thinking robotsなどです。また、最近、この多くの自由度の空気圧ロボットハンドを見ました。First Robotics Competition Leagueも参照してください。

  • いくつかの簡単なものの基本的なコードを書く。ソートなど。さまざまなソートアルゴリズムの経験的研究を行い、結果を監視/グラフ化します(たとえば、入力サイズを増やすためにバブルソートとqsortのパフォーマンスをグラフ化します。たとえば、このWikipediaページの挿入ソートのアニメーションを参照してください)。アニメーションを並べ替えます。きちんとしたグラフィカルなアナログは、整数や文字列の代わりにカードのデッキをソートすることです。また、多くのグラフィックスや、コードで図を描くなどの幾何学的な操作も優れた演習です。

  • ゲームプログラミング。これはいくつかの優れたゲームで実行できます。たとえば、リトルビッグプラネットには、複雑な組み込みの構築システムとコンポーネントを使用して、子供が実際に独自のゲームを作成できる洗練されたサブシステムがいくつかあります。この方法で相互作用/発生現象を研究することさえできます。インターネットにアップロードして共有できます。この目的のための別の言語はスクラッチと呼ばれます。その有効性について多くの学術的研究を行っているPapertの古典的なものはLogoです

  • チューリングマシンシミュレータを使用し、プログラムを構築します。いくつかあります。彼らはいくつかのプログラムが付属しています。グラフィカルであるほど良い。教授がクラスのために書いたものもあります。これはjavascriptで書かれたものです。実際にこの分野で最高のものを知りたい[そのための別の質問かもしれない]


6

あなたが教えている人とその範囲のエリアに依存します。

WANTSはほとんど何でも処理できるはずの12〜14歳ですが、彼は自分の時間でそれを引き出す必要があります。複雑な概念を若者(またはほとんどの人)にプッシュすることはできません。

私はこの時点でiWozを聴いています(その年齢層をターゲットにしているようで、非常にインスピレーションを与えるでしょう)、その年齢までに彼はいくつかの非常に高度な回路を組み立てていましたが、彼の父は質問に答えただけで、彼を決して手渡しませんでした彼が準備ができていなかった新しい概念)

または、彼は完全に無関心であり、あなたがそれについてできることは何もない。

しかし、子供たちはシンプルなものに本当に感心することができます。彼が好きなゲームを見つけて、彼がそれを再現するのを手伝った場合(非常に表面的でありながらグラフィカルに類似したレベルであっても)、あなたは本当に彼を成功させるかもしれません。

または、さらに良いことに、彼が好むかもしれない既存のオープンソースゲームを見つけたら、彼にそれをプレイさせ、彼を興奮させるために少し修正を加える方法を彼に見せてください。(変更は常に始めるための最良の方法のようです)


+1 @Bill K:「この時点でiWozを聴いています」と言うとき、彼の本の音声版、または他の何かを意味しますか?リンクは、たとえコンテンツを支払うためであっても、あなたが意味するものへの参照を提供するためだけに良いでしょう。
失策

1
申し訳ありませんが、iWozは彼の自伝です-Audibleに載っており、テクノロジーに興味のある10代にぴったりのようです-彼は遅くなりますが、彼が作成したさまざまなものと学習プロセスについてかなり詳細になります。不思議なことに、私は常に理想でウォズニアックにずっと近く感じ、実際にジョブズの性格を嫌っていましたが、ジョブズの伝記は驚くほど説得力があり洞察力があり、iWozを対位法として聞いています。
ビルK

5

実際には、2年生と3年生(対象年齢グループ)が1人いましたが、4年生、5年生を主に含むサマーキャンプを教えました。キャンプは1週間で、XNAにif、if、if、photoshopの簡単な説明の基本を教えました。XNAの問題は、私が彼らが週末までプログラムするのをかなり助けなければならなかったことでした。私たちが行った他のキャンプには、レゴロボット工学とGameMakerが含まれていました。


+1 @ Suiko6272:私の主なことは、コンピューターサイエンス、コンピューターエンジニアリング、およびソフトウェアエンジニアリングを異なる、しかし関連するトピックとして見ていることだと思います。理論的なCSに純粋に関連する概念に興味があったと思います。コンピューターサイエンス、コンピューターエンジニアリング、ソフトウェアエンジニアリングの違いを教えることもあります。
失策


2

平面性は良いゲームだと思います。平面グラフに関するいくつかのアイデアを提供し、グラフ理論の基本概念を紹介します(ノードとエッジで作られたグラフ、ノードの度合い、平面グラフとは...)


1

計算の難しさの概念を説明するために乗算を使用することについて誰も言及しなかったことは驚くべきことです。乗算のための標準的な教科書の高速アルゴリズムがあるため、乗算は簡単であると述べていますが、素数因子を見つける逆関数は、既知の高速アルゴリズムがなく、最もよく知られているアルゴリズムは網羅的検索よりも大幅に高速ではないため困難です


@Saeed、私は素数性テストについて言及しましたか?!
モハマドアルトルコ

申し訳ありませんが、私は読み間違えました(「素数を見つける...」と読みました。実際、逆に素数について話したいと思ったので、このバイアスであなたの文章を読みました)。
サイード

0

若者にCSの理論について考えさせ、問題自体を解決させるための良いソースは、「Computer Science Unplugged」http://csunplugged.org/シリーズです。私たちは学校に行って子供たちと一緒に活動したり、子供たちが私たちと一緒にユニに来たりします。

それは何年も続いており、多くの言語に翻訳されています---そして記事はセッションの実行方法、必要な資料、それらを実行した人からのヒントに関する情報を提供します。

強くお勧めします!


2
うん。Serge Gaspersの回答を参照してください。
ジェフ

-1

zz2+c


2
フラクタルはクールですが、実際には「理論的なCSの概念」ではありません。
ジェフ

ここでTCSトピックの公式リストを待っていますが、私はそれを広く定義します。これは他の多くの人、たとえばspolskyでもサポートされています。私にとってフラクタルは経験的研究に非常に適合しています。多くのエリートCS研究者は多くの重要な論文でそれらを研究してきました(リストや調査はありません。恐らく何よりもWolframでしょう)。その正当な議論を推測するものの、その起源に戻る古い議論。
vzn

2
「理論的コンピューターサイエンス」の合理的な定義については、よくある質問の最初のセクションをご覧ください。(また、ジョエルは理論的なコンピューターサイエンスを超えてサイトの範囲を拡大することを主張していました。コミュニティは同意しませんでした。)
ジェフ

メタディスカッションだと思いますが、私はスポルスキーの投稿を別の方法で解釈します。彼はコンピュータサイエンスの多くの標準領域をリストし、それらの領域のすべてに理論的な側面があります。フラクタルについて尋ねると何が起こるかを見ると考えて
-vzn

1
同意する; これについては、メタで詳しく説明しています。
ジェフ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.