9

プログラミング入門者向けのコースには、コード プロジェクトが含まれていることが非常に多く、これは良い学習方法だと思います。ただし、このようなプロジェクトは人工的すぎると感じることが多く、そのため、取り組む価値はあまりありません。

やりがいのあるコード プロジェクトについて、どのようなアイデアをお持ちですか? (できれば簡単に始められ、上級者向けに自由に拡張できます!)。

編集:

@Mark: リンクをありがとう、私はプログラミングにまったく慣れていない人々のためのプロジェクトにもっと興味があります (リンクは、少なくとも 1 つの言語に既に習熟しており、新しい言語を学ぼうとしている人々を参照しているようです) -私が言う典型的なSOの聴衆:) -)。

@Kevin、Vaibhav、gary: ある言語でプログラミングを学んでいる人のことを考えていたので、コースの開始時には、制御構造について何も知らない人もいました (さらには、あらゆる種類の構文についても知りませんでした)。しかし、私は非常に大規模なプロジェクト (通常は 1,000 ~ 10,000 行のコード範囲で、おそらく 2 人または 3 人の学生のグループ) で考えていました。これは、完全な初心者のために私の学校で行われたことであり、彼らにとっては確かにうまくいったように見えました...ただし、彼らのほとんどは、自分のプロジェクトに取り組むのが非常に退屈であると感じていました!

4

7 に答える 7

4

何度か述べてきたように、初心者に何を教えようとしているのかは、プロジェクトにとって非常に重要です。

このようなことを計画するための私のアドバイス:

1) コンピュータゲームを作るのを避ける

コンピューター ゲームは、作成するのは楽しいものですが、早い段階でプログラマーに結果をもたらすものではありません (非常に複雑です)。Port Scannerなど、小さくても便利なアプリケーション プログラムに集中したい。例は少し複雑ですが、私が Web で見た中で最高の学習プロジェクトの 1 つです。

2) 早期にグラフィックを教える

努力の成果を早い段階で目にすることはやりがいがあり、さらに先へ進む意欲を高めます。WinForms、MFC、Win32 API、OpenGL、DirectX のいずれを使用している場合でも、早い段階で教えてください。

3) 詳細な情報を含む多くの小さなレッスン

この原則は、上記のリンク先のポート スキャナー プロジェクトに引き継がれており、うまく機能しています。各パートを徹底的に教え、初心者がレッスンを吸収する時間を与えます。ZophusXは、情報を提供するための適切な形式を持っていたと思います。残念なことに、彼は自分のサイトをほとんど放棄してしまいました。

4) 時間がかかる

急いではいけません。数週間で優れたプログラマーになる人はいません。レッスンをシンプルで魅力的なものにして、以前のレッスンから構築し続けてください。

5) 早い段階で頻繁にフィードバックを得る

プロジェクトが信じられないほど興味深い、または特定のレッスンなどだと思うかもしれませんが、学ぶのはあなたではありません。早い段階で生徒の様子や、もっと知りたいことを尋ねると、生徒はとても喜んでくれるでしょう。これらの要求の一部に対応できるように、十分に柔軟に対応してください。

6) 楽しく教える

楽しむ。情熱は伝染します。生徒が主題をどれだけ楽しんでいるかを見ると、その熱意の一部が彼らにも伝わります。

それが役立つことを願っています!

于 2008-08-25T20:47:34.450 に答える
2

学ぶことができ、複雑さの点で非常にスケーラブルであるという点で、いくつかの優れたやりがいのあるプロジェクトの機能は次のとおりです。

  • ゲーム
  • 旅行・交通予約・予約システム
  • 百科事典または用語、記事の辞書
  • 換算計算機 (通貨、単位など)

重要なのは、プロジェクトのタイトルを見たときにその機能のいくつかがすぐにわかるように、十分に単純なプロジェクトを選ぶことです。そして、実際に考えてみると、追加できる機能がさらに明らかになります。

プロジェクトは、その機能が初心者の手の届かないところにあるように見えるように十分な難易度を持つ必要があります。

于 2008-08-25T20:42:56.677 に答える
1

社内で新しい人材をトレーニングしている場合、ライブ プロジェクトのインターン リソースとして参加させることは非常にやりがいがあります。

これにより、主要な開発者の作業負荷が少し増えますが (インターンが行うすべての作業を確認する必要があるため)、トレーニングと人材開発の点では大いに役立ちます。

于 2008-08-25T20:32:53.767 に答える
1

ゲームやパズルは、より複雑なバージョンを開発するための広い範囲を提供できるため、開始するのに適していると思います. たとえば、目並べプログラムは、最初は 2 人のプレイヤーがゲームをプレイできる単純なコマンド ライン プログラムとして構築できます。

このステップを使用して、単純なデータ構造または配列がどのようにゲーム ボードを表現できるか、ユーザー コマンド/移動を取得するための単純な入力、ゲーム ボードとプロンプトを表示するための単純な出力などを示すことができます。プレイヤー対コンピューターモードを許可するために使用されます。三目並べの単純な魔方陣の数学アルゴリズムは、非常に単純な数学に基づいているため、気に入っています。この後は限界があり、UI の改善、ファイル I/O を使用したゲームのロードと保存、より高度なアルゴリズムによるコンピューターのプレイの向上などです。より複雑で満足のいくゲームは、テキスト モードまたは単純なグラフィックスを使用して作成することができます。

私は倉庫番ゲームを長年にわたって多くのテクニックを示す手段として使用してきました.

私が使った最も単純なゲームは、数リスト反転ゲームです。これには、1 から 9 までの数字の混同されたリストが含まれます。プレーヤーは、リストの左側で反転する桁数を指定できます。目的は、リストをソートすることです。これは、まったくの初心者に最適です。ゲームの各部分は、個別に作成およびテストできます。

于 2008-08-29T23:01:53.347 に答える
0

テキストアドベンチャー。

  • コンソールアプリです
  • いくつかの便利なこと、在庫の保持、マップと部屋の状態、および入力の解析が必要になります。
  • 楽しいし、他の人にプレイしてもらうこともできます! :D
于 2009-01-07T13:27:30.590 に答える
0

それは、初心者に何を教えようとしているかによって異なります。構文を教えようとしている場合は、単純な「Hello World」プログラムや、1 から 100 までの奇数をすべて吐き出すプログラムで十分です。データ構造を教えようとしている場合は、20 問のゲームや単純な並べ替えプログラムのようなものかもしれません。再帰を教えようとしている場合は、おそらく幅優先検索プログラムです。データベース操作を教えようとしているのであれば、注文追跡システムのようなものが適切でしょう。

于 2008-08-25T20:26:44.500 に答える
0

Python Programming for the Absolute Beginnerという本のコード例を見てください。

于 2009-01-07T13:08:08.103 に答える