324

元の質問

私は現在、弟にプログラムを教えることに従事しています。彼は全くの初心者ですが、とても頭がいいです。(そして彼は実際に学びたいと思っています)。私たちのセッションのいくつかが細部に行き詰まっていることに気づきました、そして私は私があまり組織化されていないと感じています。(しかし、この投稿への回答は大いに役立ちました。

彼に効果的に教えるために私は何をより良くすることができますか?概念ごとに実行するために使用できる論理的な順序はありますか?後でまで避けるべき複雑さはありますか?

私たちが使用している言語はPythonですが、どの言語でもアドバイスを歓迎します。


助ける方法

あなたが良いものを持っているなら、あなたの答えに以下を追加してください:

  • 初心者向けの演習とプロジェクトのアイデア
  • 初心者を教えるためのリソース
  • スクリーンキャスト/ブログ投稿/無料の電子書籍
  • 初心者に適した本を印刷する

確認できるように、リソースへのリンクを記載して説明してください。私は間違いなくこれらのアイデアのいくつかを使用していることをみんなに知ってもらいたいです。あなたの提出物はこの投稿に集約されます。


初心者を教えるためのオンラインリソース:


初心者を教えるための推奨プリントブック

4

86 に答える 86

118

私は何人かの初心者(コードを書いたことはない)プログラマーと一緒に仕事をしなければなりませんでした、そして私は今秋高校生と放課後のワークショップをするでしょう。これは私がドキュメントに持っている最も近いものです。まだ作業中ですが、お役に立てば幸いです。

1)FizzBu​​zz。コマンドラインプログラムから始めます。いくつかの楽しいゲームやツールを非常にすばやく作成でき、最初にGUIツールを学習しなくても、すべての言語機能を非常にすばやく学習できます。これらの初期のアプリは、機能させるために実際のデバッグツールを使用する必要がないほど単純である必要があります。

FizzBu​​zzのようなものが他に何もないとしても良いプロジェクトです。最初のいくつかのアプリは、DB、ファイルシステム、構成などを処理する必要はありません。これらはほとんどの人を混乱させる概念であり、構文と基本的なフレームワーク機能を学習しているだけでは、それほど複雑にする必要はありません。

いくつかのプロジェクト:

  • 「こんにちは世界」
  • 私の誕生年を取り、私の年齢を計算します(ちょうど(今-そして)月の修正はありません)。(単純な数学、入力、出力)
  • 方向(上、下、左、右)を尋ねてから、ユーザーに運命を伝えます(穴に落ちる、ケーキを見つけるなど)。(ブール論理)
  • FizzBu​​zzですが、1秒に1回カウントします。(ループ、タイマー、その他のロジック)
  • 年齢にもよりますが、ある間隔でユーザーをランダムな侮辱と呼ぶアプリが本当に好きな人もいます。(ループ、配列、タイマー、および間隔をランダムにした場合はランダム)

2)シンプルなプロジェクト言語機能を十分に理解したら、プロジェクトを開始できます(シンプルで楽しいゲームが効果的です)。最初のプロジェクトを6〜12時間以内に完了できるようにする必要があります。早い段階で設計するために時間を費やさないでください。たとえそれがひどい場合でも、彼らにそれを設計させてください。バラバラになったら、何が起こったのか、なぜ失敗したのかを話し、別のトピックを選んでやり直してください。

ここから、ツールのデバッグ機能の導入を開始します。コードを読んで問題を確認できたとしても、ツールの使用方法を教えてから、どのように問題を確認できるかを示す必要があります。これは、デバッグツールを教えることと、ツールなしでエラーを識別する方法を教えることの2つの目的を果たします。

プロジェクトが機能するようになったら、それを使用してリファクタリングツールを導入できます。その後、計画していなかったいくつかの単純な機能を使用してプロジェクトを拡張できれば、それは良いことです。これは通常、リファクタリングと重要なデバッグを意味します。これは、最初に半分まともなコードを作成する人はほとんどいないためです。

いくつかのプロジェクト:

3)実際のプロジェクト実際のプロジェクトを開始します。これには時間がかかる場合があります。適切なソース管理を使用し、スケジュールを立てることをポイントにします。このプロジェクトを実際のプロジェクトのように実行します。ツールを扱う必要のある優れた経験は他にありません。

明らかに、あなたは一人一人のためにこれを調整する必要があります。私が見つけた最も重要なことは、最初のシンプルなアプリでさえ、その人が興味を持っているものに適用できるようにすることです。

いくつかのプロジェクト:

  • テトリス
  • テキストファイルベースのブログエンジン
  • より高度なロボット工学の仕事
于 2008-08-06T06:00:28.740 に答える
30

あなたはアリスを使ってみることができます。これは、入門プログラミングクラスで使用するために設計された3Dプログラムです。

新しいプログラマーにとっての2つの最大の障害は、多くの場合、次のとおりです。

  • 構文エラー
  • モチベーション(不自然ではなく、意味のある楽しいものを書く)

アリスはドラッグアンドドロップインターフェイスを使用してプログラムを構築し、構文エラーの可能性を回避します。Aliceを使用すると、3Dワールドを構築し、コードコントロール(単純な)3Dキャラクターとアニメーションを使用できます。これは通常、リンクリストを実装するよりもはるかに興味深いものです。

経験豊富なプログラマーは、アリスをおもちゃとして見下し、コードの行をドラッグアンドドロップすることを嘲笑するかもしれませんが、調査によると、このアプローチは機能します。

免責事項:私はアリスに取り組みました。

于 2008-08-06T05:29:49.240 に答える
28

基本的な概念を理解するには、Logo (別名亀) をお勧めします。すぐにグラフィカルなフィードバックを提供する優れたサンドボックスを提供し、ループ、変数、関数、条件などをデモレートできます。このページは優れたチュートリアルを提供します。

ロゴの後、Python または Ruby に移動します。プログラミングを教える目的で発明された ABC に基づいているため、Python をお勧めします。

プログラミングを教えるとき、単純なプロジェクト、次に複雑なプロジェクトという EHaskins の提案を支持しなければなりません。学習する最善の方法は、明確な結果と測定可能なマイルストーンから始めることです。レッスンの集中力を維持し、学生がスキルを構築し、さらにそれらのスキルを構築することを可能にし、学生に友達に見せびらかす何かを与えます. 自分の仕事のために何かを示す力を過小評価しないでください。

理論的には、Python はほとんど何でもできるので、Python を使い続けることができます。これは、オブジェクト指向プログラミングと (ほとんどの) アルゴリズムを教えるのに適した手段です。コマンド ラインのようにインタラクティブ モードで Python を実行して、その動作を確認したり、スクリプト全体を一度に実行したりできます。その場で解釈されたスクリプトを実行したり、バイナリにコンパイルしたりできます。機能を拡張するための何千ものモジュールがあります。Windows にバンドルされているようなグラフィカルな電卓を作成することも、IRC クライアントを作成することもできます。

XKCDは、Python の能力をもう少しよく説明しています。

その後、C# や Java に移行できますが、Python がまだ提供していない機能はあまり提供されていません。これらの利点は、C スタイルの構文を使用していることです。これは、多くの (あえて言えば、ほとんどの) 言語で使用されています。メモリ管理についてはまだ心配する必要はありませんが、言語インタープリターの負担が少なくなり、より自由になることに慣れることができます。Python では、空白とインデントが強制されます。これは、ほとんどの場合は適切ですが、常にそうとは限りません。C# と Java では、厳密に型指定されたまま、独自の空白を管理できます。

そこから、標準は C または C++ になります。これらの言語の自由はほとんど実存的です。あなたは今、あなた自身のメモリ管理を担当しています。あなたを助けるガベージコレクションはありません。これは、非常に高度なアルゴリズム (マージソートやクイックソートなど) を教える場所です。ここで、「セグメンテーション違反」が呪いの言葉である理由を学びます。これは、Linux カーネルのソース コードをダウンロードし、Abyss を見つめる場所です。文字列操作用の循環バッファーとスタックを作成することから始めます。次に、上に向かって作業します。

于 2008-08-20T21:09:00.913 に答える
15

優れたPythonコースは、MITのPythonを使用したプログラミング入門です。それはすべてオンラインで無料であり、それを理解するためにMITのuberstudentである必要はありません。

[ジャスティンスタンダード]を編集

このコースでは、この無料のオンラインブックを使用します。コンピューター科学者のように考える方法
私は間違いなく非常に便利だと思っています。

于 2008-08-06T05:47:05.553 に答える
12

Python の Turtle グラフィックスから始めます。

Python に標準装備されているタートル グラフィックスを使用します。視覚的でシンプルなため、この環境を使用して、構文に深く入り込む前に、反復やプロシージャー呼び出しなどの多くのプログラミング概念を導入できます。Python での次の対話型セッションを検討してください。

>>> from turtle import *
>>> setup()
>>> title("turtle test")
>>> clear()
>>>
>>> #DRAW A SQUARE
>>> down()        #pen down
>>> forward(50)   #move forward 50 units
>>> right(90)     #turn right 90 degrees
>>> forward(50)
>>> right(90)
>>> forward(50)
>>> right(90)
>>> forward(50)
>>>
>>> #INTRODUCE ITERATION TO SIMPLIFY SQUARE CODE
>>> clear()
>>> for i in range(4):
        forward(50)
        right(90)
>>>
>>> #INTRODUCE PROCEDURES   
>>> def square(length):
        down()
        for i in range(4):
            forward(length)
            right(90)
>>>
>>> #HAVE STUDENTS PREDICT WHAT THIS WILL DRAW
>>> for i in range(50):
        up()
        left(90)
        forward(25)
        square(i)
>>>
>>> #NOW HAVE THE STUDENTS WRITE CODE TO DRAW
>>> #A SQUARE 'TUNNEL' (I.E. CONCENTRIC SQUARES
>>> #GETTING SMALLER AND SMALLER).
>>>
>>> #AFTER THAT, MAKE THE TUNNEL ROTATE BY HAVING
>>> #EACH SUCCESSIVE SQUARE TILTED

最後の 2 つの課題を達成しようとすると、何度も失敗することになりますが、失敗は視覚的に興味深いものであり、期待どおりに描画されなかった理由を理解しようとすると、すぐに学習します。

于 2009-02-25T21:00:08.037 に答える
12

Python パッケージVPython -- 普通の人のための 3D プログラミング (ビデオ チュートリアル)。

コード例:

from visual import *

floor = box (pos=(0,0,0), length=4, height=0.5, width=4, color=color.blue)
ball = sphere (pos=(0,4,0), radius=1, color=color.red)
ball.velocity = vector(0,-1,0)
dt = 0.01

while 1:
    rate (100)
    ball.pos = ball.pos + ball.velocity*dt
    if ball.y < ball.radius:
        ball.velocity.y = -ball.velocity.y
    else:
        ball.velocity.y = ball.velocity.y - 9.8*dt

VPython 跳ねるボール http://vpython.org/bounce.gif

于 2008-09-08T18:26:28.447 に答える
11

重要なことは、その人が解決したい問題を抱えている必要があるということです。書きたいプログラム (そして、「次の Quake を書きたい!」 ではなく、賢明で明確に定義されたプログラム) がなければ、プログラミングを学ぶことはできません。 . つまり、本を読んで言語の構文とセマンティクスを大まかに理解することはできますが、作成したいプログラムを作成するまでは、イラクサを理解することはできません。

その推進力が存在する場合、他のすべてはほんの些細なことです。

于 2008-08-22T10:35:35.553 に答える
8

ここで誰かがこれについて言及しているかどうかはまだわかりませんが、Zed ShawLearn Python the Hard Wayをチェックしてみてください。

お役に立てれば

于 2010-10-19T00:42:21.437 に答える
7

http://tryruby.hobix.com/">Ruby を試す (ブラウザで)

于 2008-08-06T16:37:38.703 に答える
5

これは私の弟が学んだ素晴らしい本です:

http://pine.fm/LearnToProgram/

もちろん、最も重要なことは、本を読み終えた直後に、ある種の実際の便利なプログラムを開始することです。

于 2008-08-07T05:33:05.440 に答える
4

彼が興味を持っているのなら、マイナーな詳細は良い部分ではありませんか?Pythonを使用すると、混乱がなくなるようにGUIがすでに切断されています。プロジェクトやゲームなどを選んで実装してみませんか。従来のhi-lo数値推測ゲームは、コマンドラインから20〜30行のコード(もちろん言語によって異なります)で簡単に実装でき、変数、条件、ループ、およびユーザー入力を提供します。

于 2008-08-06T05:08:37.020 に答える
4

私は彼に大量のコードを書かせたいと思います。あなたたちがすることすべてに彼を運転させて、質問に答えることができるようにしてください.

信じられないかもしれませんが、数か月間大量のくだらないコードを書いた後、彼はアイデアを理解し始め、より良いプログラムを書き始めるでしょう。その時点で、詳細 (メモリなど) に行き詰まり、一般的な設計原則について話すこともできます。

偉大な芸術家と凡庸な芸術家の違いは、彼らが練習するたびに、どんなに小さなことでも何かを改善するということだと聞いたことがあります。お兄さんに練習させれば、キーボードに座るたびに上達するでしょう。

編集:[ジャスティンスタンダード]

Esteban さん、これは最近のコーディング ホラーの投稿を思い起こさせますが、私あなたが正しいと思います。しかし、彼の実践を導く方法を見つけることは、それでも価値があると思います。間違いありません。彼には、できる限り多くのコードを書いてもらいたいのです。それが、私がサンプル プロジェクトを求める理由の 1 つです。

于 2008-08-09T01:37:07.920 に答える
2

まず、他の人と同じように、HelloWorldプログラムから始めます。シンプルで、プログラムのレイアウトの基本的な感覚を与えてくれます。あなたが最初にプログラミングしたとき、そしていくつかの概念がどれほど難しかったかを思い出してみてください-簡単に始めてください。

Hello Worldの後、いくつかの基本的な変数の作成、算術、ブール論理、およびif/elseステートメントに進みます。古いプログラミング教科書をお持ちの場合は、初期の例をいくつかチェックして、それらを実行してもらいます。一度にたくさん紹介しようとしないでください。そうしないと、圧倒されて混乱します。

于 2008-08-06T05:13:15.763 に答える
2

弟にプログラムを教える際に非常に注意しなければならないことは、弟があなたに過度に依存しないようにすることです。多くの場合、私が他の人を助けていることに気付いたとき、彼らは私を彼らのすべての質問に対する答えの本だと考え始め、答えを見つけるために実験する代わりに、彼らは単に私に尋ねます。多くの場合、最高の教師は実験であり、あなたの兄弟が「文字列に2を追加するとどうなりますか?」のような質問をするたびに。あなたは彼にそれを試してみて自分の目で確かめるように言うべきです。また、誰かに概念を伝えることができない場合は、各セグメントを個別に見て、それを1つずつ説明できるサンプルコードを確認すると役立つことに気付きました。ちなみに、プログラミングに不慣れな人は、オブジェクト指向プログラミングのアイデアに問題を抱えていることがよくあります。

于 2008-08-06T05:18:46.657 に答える
2

私は以前プログラミングを教えていましたが、あなたの兄弟は、彼が学びたいと思っているほとんどの生徒よりも1つの大きな利点があります:)

あなたがCと一緒に行くことにした場合、友人は、古い世代の人々が基本的なタイプインとして覚えているようなプログラムを持っているサイトを持っています。それらのより複雑なものはncursesを使用しますが、これは教材としての使用をいくらか否定しますが、それらのいくつかは小さなものであり、教えられることなく負荷を学ぶことができます。

個人的には、PythonとRubyが素晴らしい第一言語になると思います。

編集: 一晩で表示される初心者のプログラミング割り当てのリストは、まさにあなたが探しているものかもしれません。

于 2008-08-06T06:07:51.003 に答える
2

楽しくしてください!

驚くべきことに、 Kojoを試してみるとScalaが最も簡単かもしれません

于 2010-03-19T13:44:53.010 に答える
2

無料の電子書籍を何冊か読んだ後、プログラミングを学ぶのに最適な本は O'Reily Press から出版されている Head First Programming であることがわかりました。言語として Python を使用し、最初から作業するプログラムを提供します。それらはすべて「Hello World」よりも興味深いものです。私が費やしたお金の価値は十分にあり、少し出回っているので、Ebay や Amazon でより安価な中古のコピーを見つけることができるかもしれません.

于 2011-01-03T01:54:43.940 に答える
2

Python は素晴らしいアイデアだと思います。私は彼に自分で行ういくつかの基本的な割り当てを与え、彼が遭遇した行き止まりはおそらくグーグルに旅行することで解決できるだろうと彼に伝えます. 少なくとも私にとっては、自分で問題を解決することは、誰かが私に解決策を教えてくれるよりも常にうまくいきました.

いくつかの可能なプロジェクト (順不同):

  • コインフリップシミュレーター。ユーザーがコイントスの試行回数を入力できるようにします。それを実行し、表または裏のパーセンテージとともに結果を表示します。

  • ユーザー入力を受け取り、ユーザーが実行したい変換の種類を選択するメニューを備えた温度コンバーターを作成します。変換を選択して実行すると、メイン メニューに戻ります。

    これは、同じ考えを持つ拡張コンバーターの例です: http://pastebin.org/6541

  • 数値入力を受け取り、それが変換される文字の等級を表示するプログラムを作成します。最終的には、if および elif ステートメントに対して入力を評価して、適合する場所を見つけます。

  • いくつかの複数の選択肢を通過する簡単なクイズを作成するか、空白の質問に記入してください。最後に、ユーザーが行った方法が表示されます。彼は好きな質問を選ぶことができます。

  • いくつかの (おそらく大きい) 数のペニーを入力し、それをより大きな金額に変換します。たとえば、149 ペニー = 1 ドル、1 四半期、2 ダイム、4 ペニーです。

  • 単純なリスト マネージャーを作成します。リストを追加/削除し、それらのリストにエントリを追加/削除できます。クリスマス リスト マネージャーの例を次に示します: http://pastebin.org/6543

  • 入力された数値が (2D 配列を使用して) 魔方陣を形成するかどうかをビルドしてテストするプログラムを作成します。ここにいくつかのサンプル コードがありますが、ユーザーが四角形を構築するという観点からどこにいるかを示すために、実際には各ステップで四角形を出力する必要があります: http://pastebin.org/6544

また、xTurtle や別のグラフィックス モジュールを使用していくつかのことを行い、物事を混ぜ合わせて退屈させないようにすることもお勧めします。もちろん、これは非常に実践的なプログラミングであり、多くの人が実際に Python を使用するスクリプト作成ではありませんが、私が提供した例は、私が Python を使用して学習していたときからほぼそのまま引用されており、私にとってはうまくいきました。幸運を!

于 2009-08-04T22:20:23.637 に答える
2

それは本当にあなたの兄弟の学習スタイルに依存します. 多くの人は、手を汚してただそれに取り掛かることでより速く学び、進歩して知識を構築するにつれて概念と全体像を結晶化します.

私は、全体像から始めて、核心にドリルダウンすることを好みます。私が最初に知りたかったのは、オブジェクト指向のゴブルディグック、クラスとインスタンスなどについて、すべてがどのように適合するかということでした。構文を学ぶ前に、基礎となる概念と少しの理論を知りたいです。20 年前に BASIC でいくつかのゲームを書いたことがありますが、それ以降はほとんど何もしていないので、少し有利でした。

おそらく、全体的なミッション ステートメントから始めて、次に計画やフローチャートを作成し、実際にコードを記述する前に (最終的に使用する構文に合わせて) いくつかの疑似コードを詳しく説明することで、生産プロセスをシャドーイングすると便利です。

ここでの黄金律は、生徒の学習スタイルを見極めることです。

于 2008-08-06T10:44:54.297 に答える
2

お兄さんが iTunes にアクセスできる場合は、ニューサウスウェールズ大学で Richard Buckland が行ったコンピュータ サイエンス入門コースのビデオ講義をダウンロードできます。彼は魅力的なインストラクターであり、コンピューティングと C 言語の基礎をカバーしています。他に何もない場合は、バックグラウンドでビデオを再生するように兄弟に伝えてください。浸透によっていくつかの概念が浸透する可能性があります。:)

COMP1917 ハイアー コンピューティング - 2008 セッション 1 http://deimos3.apple.com/WebObjects/Core.woa/Browse/unsw.edu.au.1504975442.01504975444

リンクが機能しない場合は、パスを次に示します。

ホーム -> iTunes U --> エンジニアリング --> COMP1917 Higher Computing - 2008 セッション 1

于 2008-08-20T21:54:17.840 に答える
2

パイソンチャレンジ

于 2010-12-08T16:58:37.297 に答える
2

Python の学習に適したウィキブックがあります。

ウィキブックが他の言語でどのようになっているのかはわかりませんが、2007 年 2 月のようにウィキブックから個人的に python を学びました。

追伸 -ウィキブックに慣れていない場合、基本的にウィキペディア版のブック オーサリングです。説明するのはちょっと難しいですが、そこにある本をいくつかチェックすると、それがどのように機能するかがわかります

于 2008-08-26T03:39:08.407 に答える
2

お兄さんがパズルが好きなら、Python Challengeをお勧めします。1対1のチュートリアルで正式な教育ツールとして使用することはありませんが、一緒にいないときに自分自身に挑戦して楽しむために彼ができることです.

于 2010-04-07T00:35:21.363 に答える
1

私のプロジェクト、PythonTurtleをお勧めします。

概要:

PythonTurtleは、Pythonを学習するための最も低いしきい値の方法を提供するよう努めています。学生はインタラクティブなPythonシェル(IDLE開発環境と同様)をコマンドし、Python関数を使用して画面に表示されているカメを動かします。図解されたヘルプ画面は、カメを動かす方法を示しながら、Pythonプログラミングの基本を学生に紹介します。

次のようになります。

代替テキストhttp://www.pythonturtle.com/screenshot.gif

于 2009-08-04T21:42:17.317 に答える
1

いくつかのスクリーンキャストも見ることをお勧めします-それらは通常、言語ではなく特定のテクノロジーのコンテキストで作成されますが、Pythonコードが表示されている場合は、それで十分です:)。重要なのは、それらは何人かの優れたプログラマーによって作成されており、優れたプログラマーのプログラムがいかに優れているかを見守っていることです。あなたとあなたの兄弟は、いくつかのペアプログラミングも行うことができます。それはさらに良い考えかもしれません。なぜあなたがこのように何かをするのか、そのようにしないのかを説明することを忘れないでください。プログラミングを学ぶ最良の方法は、良い例から、悪い例を見ないようにすることだと思います。

于 2008-08-09T08:17:05.883 に答える
1

チャールズ・ペッツォルドの著書「コード-コンピューターのハードウェアとソフトウェアの隠された言語」を、コンピューターのしくみの優れた一般的な紹介としてお勧めします。

この本(382ページ)にはたくさんの情報があり、初心者でも読むのに時間がかかるかもしれませんが、それだけの価値はあります。Petzoldは、単純なコード、リレー、メモリ、CPUからオペレーティングシステムやGUIに至るまで、コンピューターとプログラミングのコアコンセプトの多くを非常に明確で楽しい方法で説明しています。読者は、コードを書くときに舞台裏で実際に何が起こっているのかをよく理解できます。

私が最初にプログラムを学んだとき、それがあったらいいのにと思います!

于 2008-08-23T18:14:19.297 に答える
1

いくつかの簡単なコードを1行ずつコピーし、進行中に読んで解釈してもらいます。彼らはすぐにそれを解決するでしょう。Acornマガジンのコードスニペットを使用して、AcornElectronでプログラミングを開始しました。6歳のときはプログラミングのことを知らなかったのですが、以前はテキストをコピーしていましたが、徐々に違う言葉の意味を学びました。

于 2008-08-11T12:23:24.247 に答える
1

言語固有ではなく、プログラミングの基本を教えたい場合は、MITで作成されたScratchというアプリケーションがあります。それは人々がプログラミングスキルを開発するのを助けるように設計されています。ユーザーがスクラッチプロジェクトを作成すると、条件やループなどの作成方法を学びます。また、スクラッチプロジェクトのコミュニティもあり、プロジェクトをダウンロードできます。これにより、他の人のプログラムを調べて、それらがどのように構築されたかを確認できます。

于 2008-08-06T07:15:53.953 に答える
1

コメントをざっと読んだところ、www.CodeBetter.comのFoundationsofProgrammingについて誰も言及していないようです。少し基礎が必要ですが、それは確かに学習プロセスの次のステップになる可能性があります。

于 2008-09-10T00:29:18.847 に答える
1

彼が興味を持っていれば、私はゲームなどに集中することを心配しません。私は、あなたが投げようとしていた「自分自身にxを教えて」という初心者の本を手に取って、それを彼に渡して、彼に苦労させたいと思います。たぶん、後でそれについて話し、それから別のことをします。その後、私は彼とプログラムをペアにして、彼が読んだ本がどれほど浅くて足が不自由であるかを彼が学ぶことができるようにしました。それから私は彼に彼自身のために何かをコーディングさせ始めました。ソフトボールの統計や彼が関与するものを追跡するためのウェブサイト。私にとって、それは当時のワインのデータベースでした。

その後、本物の本やドメインデザインなどから始めます。

于 2008-09-08T17:40:52.427 に答える
1

スタンフォード大学による非常に優れたビデオ紹介コース(事前の知識は必要ありません):

プログラミング方法論

すべてのプログラマーが知っておくべき優れた「方法論」といくつかのJavaプログラミングを教えてくれます。

于 2008-09-20T22:23:18.907 に答える
1

本:子供、親、祖父母のためのJavaプログラミング(PDF)

私はその本を使って学ぶことについて個人的な経験はありませんが、それはすぐに目に見えるものを生み出すことになり、構文上のちっぽけな詳細にあまり時間をかけないので、それは素晴らしいようです。ここの誰かがその本を使ってみましたか?

于 2009-02-14T13:47:20.020 に答える
1

これはばかげているように聞こえるかもしれませんが、なぜあなたはあなたの兄弟にプログラムを教えようとしているのですか?

多くの場合、最良の学習環境は、熱心な初心者(サンプルプログラム)、十分なリソース(google / tutorials / books)、および必要に応じてガイダンスを提供できる知識豊富なアドバイスソースによって達成できる目標で構成されます。

あなたは間違いなく最初の2つの提案を手伝うことができますが、最後はあなたの主な役割です。

于 2008-08-13T06:10:25.183 に答える
1

最初はたくさんのことが私をつまずかせましたが、それは単純なメカニズムにすぎませんでした。コンセプト、私はすぐに取りました。しかし、閉じ中括弧を逃しますか?重要なプログラムでは、実行が簡単で、デバッグが難しいことがよくあります。

ですから、私の謙虚なアドバイスは次のとおりです。基本を過小評価しないでください(良いタイピングなど)。それは改善され、ばかげているように聞こえますが、コード構造の完全な「スケルトン」を入力して入力するという単純な手法に出くわしたとき、学習プロセスの早い段階で非常に悲しみを和らげました。

Pythonの「if」ステートメントの場合、次のように開始します。

if  :

C / C ++ / C#/ Javaの場合:

if () 
{

}

Pascal / Delphiの場合:

If () Then
Begin

End

次に、開始トークンと終了トークンの間に入力します。これがしっかりした習慣になると、考えずにそれを行うと、より多くの脳が解放されて楽しいことをすることができます。投稿するのにそれほど派手なアドバイスではないことは認めますが、私が個人的に見たアドバイスは非常に役立ちます。

編集:[ジャスティンスタンダード]

ウィング、あなたの貢献に感謝します。あなたが言ったことに関連して、私が兄がPythonスコープの構文を覚えるのを助けるために試みたのは、コロンがあるたびに次の行をインデントする必要があり、彼がインデントする必要があると思うときはいつでも、前の行を終了するコロンがある方がよいでしょう。

于 2008-08-16T00:46:31.483 に答える
1

すでにたくさんの素晴らしい答えがありますが、まったくの初心者には、HacketyHackを心からお勧めします。これは、特に新しいプログラマーが実験できるBASIC / LOGO / Pascalのような環境を提供するために、不当に多作なwhy_the_lucky_stiffによって作成されました。これは、基本的に、いくつかの優れたライブラリ(フラッシュビデオ、IM、Webサーバー)とインタラクティブなレッスンを備えた洗練されたRubyIDEです。楽しくて便利なことをするレッスンを選んだので、プログラミングに適しています。「Hello、world」はすぐには印象に残っていないかもしれませんが、20分でカスタムIMクライアントを作成すると、誰かが学習を続けるように刺激することができます。楽しむ!

于 2008-08-11T04:30:31.143 に答える
1

Academic Earthは、一流大学の無料のコンピュータサイエンスコースへのリンクを提供しています。彼らはコンピュータサイエンスの始まりに向けたセクションを持っています。最初のコースで教えられる言語はさまざまです。

  • MIT-コンピュータサイエンスとプログラミング入門-Python
  • スタンフォード-コンピュータサイエンスI:プログラミング方法論-Java
  • ハーバード大学-コンピュータサイエンス入門I-C(主な焦点)、他にもいくつか(SQL、PHP、LISP、アセンブラなど)が散りばめられています。
  • バークレー校-LISP言語の方言
于 2010-04-17T12:33:32.757 に答える
1

Codeという本があります。誰が書いたのかは覚えていませんが、私たち (プログラマー) が知っていて、私たちが話している相手も知っていると思っている多くの基本事項について説明しています。バイナリをカウントする方法からプロセッサの動作まですべて。プログラミング言語を扱ったものは何もありませんが (私が覚えている限り)、かなり良い入門書です。私はまた、コンピューターのために物事を効果的にプログラムできるようにするには、コンピューターがどのように機能するかを知っている必要があると信じている学校の出身であることも認めます。

于 2008-08-19T14:52:48.043 に答える
1

Project Eulerには興味深い数学の問題が数多く含まれており、初心者のプログラマーが経験を積むための優れた資料となる可能性があります。問題は簡単に始まり、次第に難しくなり、Web にはさまざまなプログラミング言語のサンプル ソリューションがあふれています。

于 2008-08-22T20:27:05.803 に答える
1

フローチャートやPDL(Program Design Language)を使って、言語にとらわれない方法で問題を解決する方法を学ぶことで教えられました。その数週間後、私は自分が書いた PDL を言語に変換する方法を学びました。私は言語に縛られることなく問題を解決するためにプログラミングに多くの年月を費やしてきたので、そのように学べたことをうれしく思います。私が使用する言語は常に実装の詳細であり、設計の一部ではありません。

問題を基本的なステップに分解して解決することは、重要なスキルです。プログラミングができる人とできない人の違いの1つだと思います。

言語の概念の順序にどのように取り組むかについては、プロジェクトを念頭に置いて、必要に応じて概念に取り組むことを決定するのが最も簡単な方法だと思います。これにより、興味のあることに必要なときにそれらを適用できます。言語を学ぶときは、いくつかの単純なプロジェクトを念頭に置いて、いくつかの段階的に複雑なプロジェクトを考えておくとよいでしょう。それらを決定することは、必要な概念とその順序を計画するのに役立ちます。

于 2008-08-09T02:23:54.160 に答える
1

彼が基本を習得したら、良い練習としてハノイの塔をお勧めします。木製のおもちゃがある場合は、まずそれから始めることをお勧めします。彼に問題を自分で解決してもらい、彼の方法を体系的に説明してもらいます。再帰が作用する場所を彼に示してください。移動の数がディスクの数にどのように依存するかを彼に説明してください. 次に、選択した言語で一連の動きを出力するプログラムを彼に書かせます。

于 2008-09-19T11:43:53.803 に答える
1

Why's (Poignant) Guide to Ruby online のコピーを探してみてください。元のサイトはオフラインですが、そこにはいくつかのミラーがあると確信しています. これは典型的なプログラミング ガイドではありません。それはあなたの友人に合うかもしれない新しい言語を学ぶことにユニークな(そして面白い)ひねりを加えます. 言うまでもなく、Ruby は学習に最適な言語です。

于 2009-08-26T15:22:35.967 に答える
1

彼が基本 (変数、ループなど) を習得したら、彼が興味を持っている特定の何かを見つけ、それを実現するために必要なことを学ぶのを手伝うべきだと思います。私は、自分が興味を持っていることであれば、何かをする傾向があり、やる気があることを知っています. また、いくつかのより困難な問題に彼が苦労するようにしてください。自分でそれを理解した瞬間ほど満足できるものはありません.

于 2008-08-07T22:12:54.220 に答える
1

Robert Read は、初心者が役立つプログラミングの問題を幅広くカバーする便利なガイドHow to be a Programmerを書きました。

于 2008-08-09T16:28:05.737 に答える
1

Python は、新しい開発者が簡単に習得できます。メモリ管理と型定義の詳細に巻き込まれることはありません。Dive Into Pythonは、Python プログラミングの優れた初心者向けガイドです。妹がプログラミングを学びたいと思ったとき、私は彼女がとても読みやすく理解しやすいと感じた「Head Start」シリーズの本を紹介しました。誰かと一緒に使う辞書がないので、誰かに教え始めるのは難しいと思います. まず、彼に数冊の本またはチュートリアルを読んでもらい、質問をしてもらいます。そこから、プロジェクトを割り当てて採点できます。プログラミングを教えるのが難しいと感じているのは、15 年近くいじり回してプログラミングを学んだからです。

于 2008-08-22T14:09:28.643 に答える
1

Accelerated C++という本と同様のアプローチを取ることをお勧めします。この本では、単純なプログラムを作成するのに一般的に役立つ C++ の一部をカバーしています。プログラミングを始めたばかりの人にとっては、少しの労力で何かを見せることが、彼らの興味を引き続ける良い方法だと思います。Python の基礎をカバーしたら、座って彼に言語を試してもらう必要があります。

今学期の私の大学の科目の 1 つで、彼らは問題に基づく学習 (PBL) と呼ばれるアプローチを採用しました。このアプローチでは、講義を使用して、問題に対するさまざまなアプローチについて学生を刺激します。あなたの兄弟は熱心なので、あなたも同様のアプローチを取るべきです。彼に取り組む小さなプロジェクトを設定し、彼が自分でそれを理解できるようにします。その後、彼が終わったら、彼のアプローチを見て、さまざまな方法と比較対照することができます.

彼を正しい方向に導くための適切な量の助けを与えることができれば、彼は大丈夫なはずです. 彼にいくつかの良いウェブサイトや本を提供することも良い考えです.

また、最初の段階では IDE から離れることをお勧めします。コマンド ラインとテキスト エディターを使用すると、コードのコンパイル/アセンブルに関連するプロセスをより深く理解できます。

少しでもお役に立てば幸いです。:)

于 2008-08-13T09:29:29.290 に答える
1

これはどうでしょうか。Nat Torkington による次世代のハッカーのスポーンです。

于 2008-08-18T15:24:16.577 に答える
1

あなたの兄弟にとって何が最善かはわかりませんが、私はPythonから始めたことを知っています. 私は幼い頃からさまざまなゲームをプレイしており、自分でゲームを作りたいと思っていたので、叔父がpygameライブラリを使って Python を紹介してくれました。多くのチュートリアルがあり、すべてが簡単になります (私の意見では、openGL よりもはるかに簡単です)。これ2 次元に限定されていますが、とにかく単純なものから始める必要があります。

私の叔父は、当時興味を持っていたので python を勧めましたが、今ではかなりの知識を持っているので、習得が容易で、直感的 (またはプログラミング言語が得られるのと同じくらい直感的) で、シンプル (ただし単純ではありません) であるため、私はそれをお勧めします。 .

個人的には、プログラミングの基礎を学ぶだけでも、当時は卑猥でつまらなかったのですが、やっていくうちにかなりの熱意が湧いてきました。ただ学ぶためではなく、何かを作るために学びたかったのです。

于 2008-08-26T19:12:37.413 に答える
1

彼に次の質問をすることから始めます

次に、彼の答えに合う一連のアクティビティを選択し、それらを実行できる言語を選択します。シンプルな (または単純化可能な) スクリプト環境 (Applescript、Ruby、任意のシェル (Ksh、Bash、または .bat ファイルなど) など) であればなおさらです。

理由は次のとおりです。

  1. 彼が結果に興味を持っているなら、フィボナッチのうさぎを数えさせている場合よりも、彼のやる気が上がるでしょう。
  2. 気に入った結果が得られた場合、彼はおそらく、あなたが作成したアクティビティのバリエーションを考え出すでしょう。
  3. あなたが彼に教えているのなら、彼は(まだ)真面目なキャリアを追求していません。後で「産業用強度」言語に切り替える時間は常にあります。
于 2008-08-28T23:59:23.527 に答える
1

若い人たちに教えるための良いリソースは、無料の eBook "Invent your own games with Python" です。

http://pythonbook.coffeeghost.net/book1/IYOCGwP_book1.pdf

于 2008-09-01T13:21:44.107 に答える
1

Python は、始めるには本当に素晴らしい言語だと思います: :-)

http://www.pythonchallenge.com/を試すことをお勧めします

それは小さな冒険のように構築されており、すべての解決策はあなたを新しい素晴らしい問題に結びつけます.

問題を解決した後、素敵なフォーラムにアクセスして、コードについて話したり、他の人が作成したものを見たりすることができます。

于 2009-07-08T09:57:21.460 に答える
0

このスレッドは、初心者(> 100行のコード)プログラマーとして非常に役立ちます。

私が経験したことに基づいて、「Hello World」を終了し、変数と「if / else」ステートメントに移動すると、構文が多すぎます。それらをどうするかわからない。

ですから、興味深い単純なプロジェクトで、私は再び興味を引くかもしれません。ここにはかなりの数のプロジェクト提案があります。

ここで質問できますか?

Autohotkeyのようなスクリプト言語を最初に学ぶ方が良いですか?

編集:[ジャスティンスタンダード]

Autohotkeyのようなマクロベースの何かを学ぶことは最小限しか役に立たないと思います。最初に「実際の」プログラミング言語を学んでみてください。(ほとんどの人によると)始めるのに最も簡単なのはpythonrubyです。私はPythonが好きですが、どちらも非常に単純です。どの言語から始めるかという質問に答える完全なstackoverflowの投稿もあります。

于 2008-08-14T01:30:02.410 に答える
0

まず第一に、すでにいくつかの素晴らしい答えがあったと思うので、私はあまり重複しないように努めます。

  • 彼らにたくさんのコードを書かせ、脳のジュースを流し続けるために彼らに質問をさせ続けます。
  • 彼らが彼らの含意にぶつかるか、彼らが尋ねるまで、私は本当に詳細な情報にとらわれてはいけないと言うでしょう。

私が確実にする最大のポイントの1つは、フレームワークのコアコンセプトを理解していることだと思います。あなたがPythonで作業していることは知っていますが(私にはわかりません)、たとえば、ASP.NETを使用して、モデルの背後にあるページ/コードを人々に理解させることは実際の課題ですが、理解することが重要です。例として、最近フォーラムで「データアクセスコードを「cs」ファイルまたは「aspx」ファイルのどこに置くか」について質問がありました。

ですから、ほとんどの場合、彼らに道を案内させ、必要な場所で彼らをサポートするためにそこにいて、興味を維持するためにさらに質問を促します。ファンダメンタルズが落ちていることを確認し、歩く前に走らせないでください。

幸運を!

于 2008-08-09T06:52:29.203 に答える
0

私は実際には、より少ない指示でより単純な言語を選ぶことを主張します。ジェフと同じように、私は自宅でBASICについて個人的に学びました。このように、オブジェクト指向プログラミングのようなより複雑な問題を掘り下げる必要はなく、必要がなければ手順さえも掘り下げる必要はありません。彼が単純な制御フローを処理できるようになったら、もう少し複雑ですが、単純な機能だけに移ります。

たぶん、2つの数値を追加するだけの非常に単純なプログラムから始めて、分岐が必要なものに成長し、入力を読み取ってそれに応答し、次にある種のループを作成して、それらをすべて組み合わせ始めます。少し始めて、上に向かって進んでください。彼が基本を理解できるまで、大きなプロジェクトを行わないでください(そうしないと、非常に困難で、途中で諦める可能性があります)。彼がBASICまたはあなたが選んだものをマスターしたら、もっと複雑なことに移りましょう。

ちょうど私の0.02ドル

于 2008-08-06T05:16:25.757 に答える
0

ここでは「群衆の知恵」が働いていると思います。ほとんどの人はどのようにしてプログラミングの方法を学びましたか?多くの人が、他の人のプログラム、通常はBASICでプレイしたいゲームをコピーすることによってそうしたと主張しています。

多分そのルートは彼と一緒に働くでしょうか?

于 2008-08-06T06:20:28.077 に答える
0

私は最初にほとんどすべての言語で使用される非常に基本的なことを教えることをお勧めしますが、言語なしでそうすることをお勧めします。すべての基本概念If-ElseIf-Else、ループ、クラス、変数タイプ、構造などの概要を説明します。ほとんどの言語の基盤となるすべてのもの。次に、ブール値、比較、および複雑なAND ORステートメントを実際に理解して、より複雑なステートメントの結果がどうなるかを理解します。

このようにすることで、彼はプログラミングの概念を理解し、言語に足を踏み入れるのがはるかに簡単になります。そこから、言語、その機能、および構文の複雑な詳細を学ぶだけです。

于 2008-08-11T12:30:33.997 に答える
0

小さくて取得可能な目標を持つことは、スキルを学ぶための最も優れた方法の1つです。プログラミングも例外ではありません。Pythonは、習得が容易で、クリーンでありながら高度なことを実行できるため、最初から優れた言語です。Pythonはあなたの想像力によってのみ制限されます。

誰かに本当に興味を持ってもらう1つの方法は、1時間かそこらでできる小さなプロジェクトを彼らに与えることです。私が最初にPythonを学び始めたとき、私はコードゴルフをしていました。彼らには、プログラミングの基本を教えるのに役立つ多くの小さな課題があります。1日の課題の1つを解決してから、学んだ概念を試してみることをお勧めします。プログラムの学習を楽しくする必要があります。そうしないと、興味がすぐに失われます。

于 2008-09-07T20:25:02.913 に答える
0

C /C++から始めることをお勧めします。私はそれが他のほぼすべての言語の良い基盤であると思います。また、BASICのさまざまなバージョンは、せいぜいかなり危険であり、実際のプログラミングと実際の相関関係はありません。

于 2008-08-07T05:35:26.933 に答える
0

Leacに同意します。退屈していると、実際にScratchで遊ぶことがあります。これは、コードを視覚的に見るのに非常に楽しい方法です。

それがどのように機能するか、彼らはあなたが積み重ねることができるたくさんの「ブロック」(これらはレゴのように見えます)をあなたに与えます。そして、これらのブロックを積み重ね、キャンバス(スプライト、グラフィックを配置する場所)と対話することで、ゲーム、映画、スライドショーを作成できます...それは本当に興味深いものです。

完了したら、Scratchアプリケーション用のYouTube風のポータルであるScratchWebサイトに直接アップロードできます。それだけでなく、Webサイトで提出物をダウンロードして、他のScratchアプリケーションから学習または拡張することができます。

于 2008-08-06T17:32:33.680 に答える
0

私のお気に入りの「コーディングの学習を開始する」プロジェクトは、ゆっくりと開始できるため、Game SnakesまたはTronです(現在の「ワームの位置」を格納する変数、ワームが1つの「ピース」より長い場合にワームの位置を格納する配列、ワームを動かすためのループ、ユーザーがワームの方向を変更できるようにするためのif / switch、...)。また、長期的にはプロジェクトにさらに多くのものを含めることができます。たとえば、オブジェクト指向プログラミング(1つのワームは1つのオブジェクトであり、同時に2つのワームを持つ可能性があります)と継承(「Snakes」から「Tron」に移行) "またはその逆で、ワームの動作がわずかに変化します)。

開始するには、 MicrosoftのXNAを使用することをお勧めします。私の経験では、画面に何かが表示されていれば、プログラミングを開始する方がはるかに楽しいです。XNAを使用すると、画面上で何かを動かすのが非常に簡単になります。色を変更するなどして、小さな変更を加えて別の外観を得るのは非常に簡単です。そのため、彼は自分の行動が効果を発揮していることを確認できます->成功の印象。成功は楽しいものであり、それは学び続けるための大きな動機です。

于 2008-08-11T12:59:16.687 に答える
0

補足的な教訓的な資料として、 「 ComputerScienceUnplugged 」をお勧めします。

于 2008-10-11T23:32:32.673 に答える
0

私の個人的な経験は、Logo Writer(ある意味でScratchに進化しました)を使用して初歩的に始まりました。私は小さな子供であり、コンピューターは今日ほど素晴らしいものではありませんでしたが、当分の間、私が持っていなかった場所に行きました。そんな前に…そういう風にビジネスに夢中になったと思います…そんな素朴さとかっこよさから、一生頭に浮かんだのは第一印象だったと言えます。それがプログラミングを教えることの基本を教えるべき方法です...魔法を切望する単純なプロセス。

最初のCS101に戻って、そこからテキーラサンライズ(適切な成分でいつでも繰り返すことができ、同じ出力が得られるステップバイステップのプロセス)を構築することによって、アルゴリズムが何であるかという概念から始めました。スキームを使用して基本的な数学関数に移り(EHaskinsが言っていたように...小さく始めてから構築します)、そこからループ、ブール論理、構造の概念に移り、オブジェクトの概念といくつかのシミュレーション実行に組み込みます。 。

このアプローチの良い点の1つは、言語が目標ではなく、プログラミングの概念と基本を学習するプロセスの単なるツールであったことです(演算子、関数などが数学にあるように)。

プログラミングの基本を学び、基盤を作成するIMHOは、おそらくあなたが兄弟に教えることができる最高のことです。目標がカバーされたら、Pythonのようなより一般的な使用言語に移り、アーキテクチャやデザインパターンなどのより高度な概念を教えることができます(プロセスでそれらを自然にすることで、彼は早い段階から優れた実践に慣れ、プロセスの一部としてそれらを見ることができます)...私たちは温水を再発明することにはほど遠いですが、常に火を作ることから始めなければなりません。

そこから空が限界です!

于 2008-08-16T15:56:38.293 に答える
0

ジェイソン・プラットのアリスに関する以前の投稿に誰かが添付できるいくつかの追加情報...具体的には、ストーリーテリングアリスのバリアント.

提示された研究は中学生の女の子を対象としていますが、Caitlin Kelleherによって書かれたホワイト ペーパーが興味深いかもしれません。

于 2008-09-06T15:30:16.827 に答える
0

Microsoft Small Basicは、初心者向けの「楽しい」学習環境を目的とした無料の .NET ベースのプログラミング環境です。この言語は VB.NET のサブセットであり、Logo 言語でおなじみの「Turtle」オブジェクトも含まれています。この Web サイトには、ステップバイステップのチュートリアルが含まれています。

于 2008-11-18T01:40:35.640 に答える
0

プログラミングを学びたいからプログラミングを学ぶことは、何かをしたいからプログラミングを学ぶほど良いものではないと思います。弟がやりたいと思っていることを見つけたら、Google に任せれば兄はやってくれるでしょう。そして、彼はあなたが正しい道を進んでいるかどうかを確認するためにあなたを連れて行きます.

抽象的にプログラミングを教えることの最大の問題の 1 つは、学習者が感情的に没頭できる現実世界のコンテキストがないことだと思います。それをすること。私の場合、大学でコンピューター サイエンスを学び、そこで Pascal と COBOL を学び、それ以前は自宅で BASIC を学びましたが、90 年代に自営業の Web デザイナーになり、クライアントは Web サイトに機能を必要としており、デザインよりも機能に対して約 10 倍多く支払うことを厭いませんでした。テーブルに食べ物を置くことは、非常にモチベーションの高いものです。

そこで、Perl、ASP/VBScript、JavaScript、Flash/ActionScript、PHP を学びました。これらはすべて、自分がやりたいことを実現するためのものでした。

于 2008-08-07T07:47:41.363 に答える
0

あなたの質問はあなたの兄弟の年齢と教育に大きく依存しますが、彼が子供/10代の場合は、最初にGUIプログラミングまたはグラフィックプログラミングを行うことをお勧めします(Canvasなどを使用)。見栄えがよく、すぐに結果が得られます。アルゴリズムは退屈で、若者 (15 歳未満) には抽象的すぎます。

ZX Spectrum でプログラミングを始めたとき (12 歳の頃) は、画面にさまざまなものを描くのが好きで、今でも面白かったです。私はおそらく 18 歳になるまで、実際のアルゴリズム技術について学びませんでした。そのような「単純な」プログラミングが間違ったスタートであると誤解しないでください。それを学ぶ人の興味は、その最も重要な部分です。

だから、私はPyKDE、PyGTK、PyQt、またはPython + OpenGLを調べます(ネットには確かにいくつかのチュートリアルがあり、チェコ語のチュートリアルもいくつか知っていますが、それは役に立ちません:))。

もちろん、兄が年上で数学に近い教育を受けている場合は、アルゴリズムなどに直接向かうことができます.

于 2008-09-19T12:08:42.763 に答える
0

私自身プログラマーではないので、Pragmatic Programmers の「How to Program」という本が初歩的な観点から非常に役に立ちました。初心者にもわかりやすく、読みやすいです。初心者からエキスパートになるわけではありませんが、言語を選択して最初の「Learn to Program in (language here)」の本を手に取ったら、何をすべきかの準備を整えることができます。

于 2008-09-12T20:51:18.440 に答える
0

奇妙に思えるかもしれませんが、前職でタスクとデータ分析を自動化することからコードを書き始めました。これは、Excel マクロが生成したコードを記録し、調査することによって達成されました。もちろん、このアプローチは、VB を介して学習できることを前提としています。

于 2008-09-05T02:20:10.700 に答える
0

どのような言語と環境を選択しても、学生が専門的な理由で学習したい場合、または「実際の」プログラミングを行いたい場合 (それが何であれ)、スターター プログラム1を紙に書き、持ち帰って実行することから始めます。出力および/またはエラーの結果を元に戻し、紙の上で問題を修正してもらいます。

これは、最初は画面上で実行して実行するよりも特に難しいことではありませんが、バグの素晴らしい世界を発見し始めると、物事がはるかに簡単になります.

1) 短い「Hello, World!」タイプのプログラムで、まだいくつかのロジックや計算が含まれているもの (バグがある可能性があるいくつかのプログラムまで)

于 2008-09-21T22:27:48.920 に答える
0

何を書いても、最初の実行時にデバッガーで 1 行ずつステップ実行してもらいます。コンピューターが何をしているかを子供たちに見てもらいましょう。これにより、物事から多くの謎が取り除かれ、脅迫が軽減され (「ああ、各行は本当に単純です!」)、デバッグ スキルを習得し、一般的なエラーが一般的な理由 (およびそれらがエラーである理由) を認識するのに役立ちます。

于 2008-09-21T22:30:01.580 に答える
0

Think Pythonをお勧めします。

于 2008-09-16T10:31:42.343 に答える
0

私にとっては、IDE 自体を調べて実験することが Java と Visual Basic を学ぶのに役立ちましたが、プログラミングの基本を学ぶのは難しい方法でした: Perl 5.当時は無料の IDE がなかったので、メモ帳にコードを入力する必要がありました。 、保存してから、perl インタープリターを実行します。

IDE を使用すると、プログラミングの基礎を簡単に学習できると思います。最初に制御構造と変数をいじってみてください。Java で次のように言います。

int a = 5;

for (int i = 0; i < a; i++) {
     System.out.println("i is now " + i);
}

基本的に、制御構造と変数を学習するだけで、初心者でも楽しいコーディングを始めることができます。

于 2008-08-22T10:32:23.047 に答える
0

私の偏った意見では、C が開始点として最適です。言語は小さく、高レベルの機能はどこにでもあり、低レベルの機能でマシンを学習できます。

C Primer Plus, 5th Editionは、プログラミング経験がほとんどない初心者プログラマーにとって非常に役立つことがわかりました。プログラミングの経験がないことを前提としており、読むのが楽しく、C を深くカバーしています (最新の C99 標準を含む)。

于 2008-08-19T08:37:58.660 に答える
0

上記のsuperjoe30に同意しますが、コメントを残すのに十分な評判がまだありません.

私は 4 年間 CS の教授でした。言語は Basic、次に Pascal でしたが、言語が何であるかは問題ではありません。

私が新しい教授として学んだ最大の教訓は、概念がどれほど単純だと思っていても、初心者にとっては単純ではないということでした. 生徒ができる以上の速さで行ってはいけません。私はそれを十分に強調することはできません。本当に、本当にゆっくり行ってください。

私は非常に単純なことから始めて、読んだり印刷したり、おそらく簡単な計算をしたりして、生徒が何かを入れたり取り出したりすることに慣れるようにしました. 次にIF文。次に、非常に単純な FOR ループを作成します。これは常に、学生が作成して楽しむことができるものです。

それから私は約 3 週間を費やして、SIMPL と呼ばれる偽の 10 進数マシン用の非常に単純な種類の機械語を教えました。これを行う理由は、生徒が「ゴムが道路と出会う」場所、コンピューターが段階的に物事を行うこと、そして物事がどのような順序で起こるかを理解できるようにするためです。それがなければ、生徒はコンピューターができると考える傾向があります。彼らの心を読んで、すべてを一度に行うのです。

その後、基本に戻ります。それは大きなスピードバンプであるため、アレイで数週間。次に、別のスピードバンプであるシーケンシャルファイル。「スピードバンプ」とは、学生が自信を持って航海できることを意味します。その後、配列のような概念で学生を攻撃し、それを緩和するまで、学生は再び完全に失われます。

そして、それらのスキルを身につけたら、ターム プロジェクトを選んでもらいます。それがプログラミングの面白さだからです。使い道がないと本当につまらない。ゲーム、会計プログラム、科学プログラムなど、さまざまなプロジェクトを提案したいと思います。それらがオンになるのを見るのは本当に素晴らしいことです。多くの場合、彼らは私に助けを求めてきましたが、それは素晴らしいことです。

彼らがプロジェクトを行っている間、検索、ソート、マージ、単純なデータベースの作成方法など、より高度なプログラミング手法について引き続き説明しました。

幸運を。教えることは大変ですが、生徒の成長を見るとやりがいを感じます。

于 2008-11-18T02:06:58.130 に答える
0

現実世界のアナロジーと架空のキャラクターを使用して、プログラミングを教えます。変数や制御ステートメントなどについて人々に教えるときのように。

通常、電卓の例から始めます。変数ごとにボックスがあり、0 ~ 9 の数字が印刷された 10 枚のカード ボードがあるとします。箱には一度に 1 枚の段ボールを入れることができると言って、同様の方法でプログラミング要素がどのように機能するかを説明します。

そして、すべての演算子がどのように機能するかを強調します..単純な「=」演算子のように、常に右側を最初に1つの値に計算します。その値を「num_1」(変数名)という名前のボックスに入れます

彼らは流れを非常に素早く想像できるので、これは非常に効果的です。

于 2009-12-18T14:59:54.703 に答える
0

+1 スタンフォード大学の講義。http://see.stanford.edu/see/courseinfo.aspx?coll=824a47e1-135f-4508-a5aa-866adcae1111

それらはシンプルで高品質であり、初心者を教える能力を保証できます (私もその一人です)。

于 2008-10-03T11:38:45.040 に答える
0

最初は、さまざまなプログラムがどのように機能するかに興味があったので、ソース コードを調べることから始めました。その後、プログラムがどのように機能するかを理解し始めたとき、特定のパラメーターを変更して何が起こるかを確認しました。だから基本的に、書く方法を学ぶ前に読む方法を学びました。偶然にも、ほとんどの人が英語を学ぶ方法です。

だから、私が誰かにプログラミングの仕方を教えようとしているなら、小さなプログラムを渡して、それがどのように機能するかを読んで理解しようとし、ソースコードをいじってもらいます。

そうして初めて、私は彼らに達成を試みる「課題」を与えます。

プログラミングの方法を学びたいという特別な理由がある場合は、彼らが達成したいことに沿って何かを始めることは確かに良い考えです. たとえば、blenderのようなアプリケーションに習熟したい場合は、間違いなくAliceから始めることをお勧めします。

DPerl、または javascript のようなインタープリター言語など、ガベージ コレクションを備えた言語を使用することを強くお勧めします。Perl 6が完成に近づくまで、Perl から離れることをお勧めします。これにより、Perl を読んで理解する上での問題が解決されるからです。

于 2008-08-14T16:23:14.240 に答える
0

「C++なんてこわくない」Heller著

試してみる価値があるかもしれません

于 2008-10-30T04:38:26.657 に答える
0

何かを学ぶ最良の方法は、基礎から始めることです。プログラミング、メモリ、アルゴリズムとは何かを説明する優れた教科書を見つけることができます。

次のステップでは、教師が何を知っているか、または生徒が学びたい理由に応じて言語を選択します。

次に、それは単なるコード、コード、コードです。本からすべての例をコーディングします。次に、少し変更して別のアクションを実行します。プログラミングの学習は、受動的なプロセスではなく、能動的なプロセスです。Dietal の C++ How to Program を読んだだけでは、C++ のコーディングを積極的に行うことなく、C++ のコーディングを期待することはできません。

あなたが経験豊富なコーダーであっても、本にコードを書いて何か新しいことを学ぶのに役立ちます.

于 2008-08-27T15:25:04.833 に答える
0

他のいくつかの開始プラットフォーム:

  • 優れたプログラム可能な電卓 (これは私が 70 年代に学んだことです)、HP25、次に HP41、現在は TI69 などです。
  • 「Inform 7」のようなインタラクティブ フィクション プラットフォームは、全体に別の角度を提供します
  • Flash/ActionScript

これらはすべて異なっていて魅力的であり、これらのいずれかが初心者やランニングに必要な種類の興味を引き起こす可能性があります.

LBB

于 2008-09-16T06:51:29.003 に答える
0

考慮すべきこと...誰もがプログラミングできるわけではありません:

一部の人々は、次のようなことを乗り越えることができません。

A = 1

B = 2

A = B

(これらの人々はまだ A = 1 と考えます)

ジェフもこれについて話しました。 実際、私の例はリンクにあります(起動するために説明されています)。

于 2008-09-04T20:23:36.097 に答える
0

兄弟に、何かプログラムを実行させたい、または彼が興味を持っていると思われるプロジェクトを発明したいかどうか尋ねてください。

アウトプットがどうあるべきかを知り、プロジェクトに関連する資料 (オンラインまたは印刷物) を彼に示すことができる何か。彼が Python やプログラミング 'cold' を始めようとしている場合は、構文、エラー、スコープなどの基本を理解しながら自分の道を進んでいくので、辛抱強く待ってください。電球は彼の頭の上に行きます。

于 2011-05-12T13:28:55.367 に答える
0

私が子供たちと一緒に使ったのはCEEBotです。これは Python ではありませんが、楽しいロボット プログラミングのようなゲームで C / Java スタイルのプログラミングを教えます。10~15歳向けですが、なかなか良いです。

于 2008-09-06T16:42:22.583 に答える
0

Python Programming: An Introduction to Computer Science 2nd Edition by John Zelleを強くお勧めします。初心者向けで、プログラミングのセマンティクスを扱います。Zelle のセマンティック vs. シンタックス アプローチにより、読んだ後は他の言語をはるかに早く理解できるようになります。見てみな!

于 2011-05-29T03:05:52.660 に答える