学習のために開発するプログラムの提案[非公開]


12

これらの非常にシンプルなHello Worldアプリとは別に、学習のために他のプログラムを開発してみる必要があります。私は来年ユニに入学しますが、その環境でどのようなプログラムが開発されるのでしょうか。

これは実際には言語固有のものではありませんが、主に現在使用しているものを知りたい場合

  • windows:C#/ WPF-私はポリでjava / vbなどを勉強しましたが、C#が進むべき道だと思います。
  • web:もちろんPHP / MySQL、Zend Framework / Doctrine、+ HTML / CSS / JS(jQuery)。pythonでgoogle app engineを試してみたい。

今のところ、私は考えています

  • ToDoリスト
  • APIなどと統合するアプリ。私が使用しているtwitter / tumblr
  • テキストエディター-現在、マークダウンを使用して表示用のHTMLファイルを生成するテキストエディターを開発しようとしています(ブログエントリへのリンク)。開発を始めてからはあまり実用的ではありません。書式設定がなくHTML形式で編集する場合、直接編集できません

  • ブログソフトウェア(Web用)

回答:



6

私は現在、正規表現パーサー/マッチャーを書いており、それはとりわけ、構文解析と有限状態マシンおよび正規表現自体について膨大な量を教えています。正規表現パーサーが特に役立つと思う理由は、正規表現言語が小さく、実行できる機能がかなり制限されているためです。

もう1つ、Ookのインタープリターを作成しました、これは簡単な作業ですが、もう一度、あなたに多くを教えます。


+1 SC Kleeneは、まったく理由もなく正規表現の発明者ではありませんでした。
ixtmixilix

2

CodePlex.comには、C#を使用して作成された多くのオープンソースプロジェクトがリストされています。このサイトを見て、いくつかのアイデアを得ることができます。


2

TopCoderご覧ください。このサイトには学習すべき優れたアルゴリズムがあり、随時競争を行っています。このサイトの重要な利点は、特定の問題に関する他のソースコードを確認し、さらに学習できることです。

また、SEサイトでもCodeGolfを確認する必要があります。


1

(これは、プロジェクトリストではなく、ほとんどが正解です。)

あなたがプログラムを書いている理由を考えてください:それはそれ自体で有用でしょうか、それとも純粋にツール/ API /言語の側面を学ぶことですか?

後者の場合、結果のプログラムができるだけ短くなり、参照用に保持されるという利点があります。

前者の場合、学習をあらゆる点で優れた実践に拡張しないのはなぜですか。それを維持し、拡張する必要があると仮定してください。したがって、ソース管理、問題追跡、リファクタリング、単体テストなどを使用してください。これらはすべて、少なくとも別のAPIを知っているのと同じくらい開発者にとって重要です。


フィードインテグレーターはどうですか:

  • RSS / Atomソース
  • APIを使用してtwitterを処理します(そしてリンクの短縮化を行います)
  • ソースに基づいて、プラグ可能な後処理を許可します(たとえば、ポッドキャストフィードからmp3をダウンロードする)

(アイデアは、同じパラダイムの異なる実装の統合に焦点を当てることです:RSSフィードのスケジュールされたHTTP取得対Twitter API対...はすべて、タイムスタンプ、ソース、およびコンテンツを含むエントリのストリームの下にあります。


ありがとう。これは私が考えていることの線に沿っていると思う、Webサービスと統合します。また、言語のさまざまな機能を使用するabtアプリのさまざまなアプリを考えています。例えば。テキストエディターを使用して、wpfリボンを統合しようとしました
Jiew Meng

1

私はこの種の趣味のプロジェクトで多くのことを学びました。

  • シンプルなゲーム(Snakeクローン、Tic Tac Toeクローンなど)
  • スクリーンセーバー

言うまでもなく、これらの種類のプロジェクトは信じられないほど楽しい仕事です:-)。


1

小さなゲームをプログラムする:それは楽しく、たくさん学ぶことができます。

いくつかのアイデア:

  • 掃海艇
  • テトリス
  • カードゲーム
  • ヘビ

そして、それが終わったら、なぜハイスコアのウェブサイトを実装しないのですか...



0

スパイログラフ。直径に沿って、外側のリング、内側のディスク、およびペン先の寸法を指定します。内側のディスクが外側のリングの内側に沿って転がるときのペンの経路をプロットします。

チェンジメーカー。窓口に与えられた入力コストと金額。窓口係が変更を行うのに最適なものを計算します。これを解決するには、遅い方法と速い方法があります。高速な方法を見つけます。

OOライフシミュレーション。ライフアルゴリズムを検索します。OOデザインを使用してロジックをプレゼンテーションから切り離すことにより、ランダムな開始状態を作成し、後続のステップを出力します。テキスト出力とグラフィック出力を提供します。

宣教師/人食いソルバー、この有名なパズルをご覧ください。検索ツリーを使用してそれを解決するプログラムを作成します。BFSとDFSを比較します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.