誰がプログラムを学ぶことができますか?[閉まっている]


17

教授と話をするとき、CS型の学位を取得して卒業した人の割合を、それが彼らが望むものであると考え始める人の数と比較して改善しようとすることについて、私はいつもheします。専門家が関与してこのフィードバックを提供することは重要だと思う一方で、準学士未満の学生がCS学位になった方が良いと思います。

私はすべての心がこの分野のために構築されているとは思わない、あなたは良い生涯の学生である必要があります。ただ忍耐強く、問題解決能力が必要です。もしあなたが「正しい」種類の脳を持っているなら、それらの難しい問題があなたを継続へと駆り立てるものです。簡単な問題の長いリストを取得するだけで退屈するので、これらの人々は実際にはより反復的な仕事が得意ではありません。私はすべての詳細に行く必要はありません...あなたがこれを読んでいるなら、おそらく私が何を得ているか知っているでしょう。

質問は次のとおりです。十分な資金を与えられ、成功したとみなされるだけでなく、実際に仕事に欠かせない人々を出さない学位プログラムのバランスをどのように見つけますか?おそらく、より良い質問は、学位プログラムで行っている変更がそれを改善しているかどうかを知るためにどのような指標を使用していますか?卒業率が高いことが良い指標であることは知りません。そして、卒業生が保持している仕事について何年も後にキャプチャしようとすることができるフィードバックは、あまりにも遅れているようです。

私はこの質問に長い間苦労してきました。主に答えがあるとは思わないからです。しかし、実際に行われた研究を誰かが知っているかどうかを確認したいと思いました。

また、最近、非常に賢明な教授に、CSの学位を取得して卒業した人すべてが、その意味を実際に発見した後にフルタイムのプログラマになりたがらないことを思い出させてくれました。しかし、彼らが受けた教育により、彼らは素晴らしいプロジェクトマネージャー、マネージャー、システム管理者などを作ることができました。これは、ここで検討するつもりはなかった非常に良い点だと思います。専攻分野で働いていない人の割合が非常に高いですが、CSもその例外ではありません。余分な人がいると、学位の予算だけでなく、プログラマーと連携するのに十分な知識を持っている非プログラマーの割合を増やすのにも役立ちます。


@ジョブ-おかげで、それは素晴らしい点であり、気分が良くなりました。
ベスホワイトゼル

2
@job:心理学を専攻し、現在NMRマシンをプログラミングしていると言えば、それを証明できます。
マットエレン

回答:


33

わかりました、一般的な需要によって...自由市場はそれを把握しましょう。ご存知のように、心理学専攻の95%は他のことをします。CSの学位/副専攻を持つ全員がプログラミングを行うわけではありませんが、管理者、アナリスト、プロジェクトマネージャーがいない方よりも優れています。世界の重さを肩に乗せないでください。CS学位は単なる紙です。数学、物理学、化学、生物学の学位を取得した人はプログラマーになり、CSの学位を取得した全員がプログラマーになるわけではありません。何百万人もの子供たちが最高の野球選手になることを望んでいなければ、私たちにはそのような素晴らしい星はありません。システムは自己調整型です。


ある程度は同意しますが、物理学、数学、機械工学の学位を持ち、プログラマーだと思っていた人々が書いたコードもサポートする必要がありました。誰かが自分の仕事のために何かを意味するものではありませんないからといって、彼らは...よくそれを行う
ジョエルC

7
CSの学生によって書かれた多くの悪いコードを見てきました。私は数学や物理学などの人々によって書かれた素晴らしいコードを見てきました。正確に学習した内容とコードの品質との間に相関関係はほとんどありません。
11

1
また、生物学に行く!
11

11

Jobの答えは心に留めておくことが重要だと思いますが、同じ答えは学位ミルにも適用できます。「私は199.95ドルを支払いました。今度はCS学位を教えてください。」

「本物のプログラマ」とは何かという基準に従って学生の体をふるい落とすのは、あなたの仕事ではありません。プログラム/デザインの方法を生徒に教えることは(おそらく?)です。大学で考え方を変えなかった場合、そこで時間を無駄にしました。あなたの目標は、プログラマーになることが自分の考え方をより良く変えることに関心を示す学生を示すことです。あなたはそれらを見せることによって間接的にそれをします...

  1. プログラミングとは何ですか...
  2. 彼らができること。

私たちは間違っています

私たちの大学のプログラムの95%がプログラミング/ CSを教える方法がひどいことを示す広範な研究があります。平均的なCSプログラムは

  • C ++ / Java / C#の基本的なプログラミングの学期。16週間かけて「これはforループです」よりも高度なことをほとんど教えません。たとえば、物理学部門がキネマティクスを開始する前にギリシャ語のアルファベットの学期を学んだ場合です。
  • 新入生の2学期は基本的なデータ構造に入り、通常は学生の3分の1から半分を完全に取り残します。
  • 2年生は、アセンブリ、データ構造、アルゴリズム分析、倫理コース、そしておそらく最初のトピックコースの組み合わせに費やされます。今年中に、入学する学生のもう半分を失う傾向があります。
  • ジュニアとシニアは、「グラフィックス」、「ネットワーキングIおよびII」、「オペレーティングシステム」などの名前でクラスに参加します。これは、学生が目にする最初の非常に興味深い資料です。

他のほとんど何でも良い

ほとんどすべての実験は、学生がトピックを理解し、プログラムの登録率と卒業率を測定することで、状況を改善します。ACM CSEのジャーナルで見た実験のいくつかは...

  • 非常に単純な理論的ステートマシンからアセンブリ、そしてCに至るまでの構築で、最終年度でC#/ Javaで終わります。焦点は、抽象化の層をゆっくりとrawい上がることにあります。
  • 学生をデータ構造と抽象化に集中させるための非常に「単純な」言語の選択。新入生の年末までに、学生がスキームのバリエーションでかなり複雑なWebアプリを作成することで、良い結果が得られました。(それは表示される前にスキームを介してページテキストを実行する修正されたwikiでした...ちょっと楽しい)
  • 最初の生徒に特定の領域に焦点を合わせ(ネットワーキング)、すべてのJava構造/ステートメントを「余談」として教える。2週間目の生徒はメールサーバーにpingを送信してメールのリストを表示します。最終プロジェクトはシンプルなIMクライアントです。焦点は、プログラマーが世界の一部をどのように機能させるかを学生に示すことにあります。
  • 一部のプログラムはロボット工学に焦点を当てています。新入生はレゴのマインドストームで遊びます... 2年生はCのようなAPIを使用し、ジュニアとシニアはキャンパスを越えたコラボレーションでMEとEEを連携させ、かなり複雑なシステムを構築します。
  • 1つのプログラムは、学生に前半期のコードの読み取りに焦点を当てています。X11システムのコードを分析して、コードの作成を開始する前に8週間程度フロー制御と基本構文を教えます。最初のプログラムは、動作を少し変更する小さなパッチです。

これらの実験のすべてにおいて、学生の初期の興味、知識の伝達、卒業までの保持が大幅に改善されました。特定の大学の環境には他の環境よりも適切なものもありますが、上記の段落で説明されている構造に従っている場合は、「このプログラムの最初の2年間は継続しますか?」


私は、プログラミングとは何か、その後の行動に関係なく思考プロセスをどのように変えることができるかを示すことに焦点を当てるべきであるという点であなたに同意します。良い考え。
ベスホワイトゼル

2

プログラムすることは、何らかの望ましい出力を達成するために論理的な方法で指示することです。つまり、コンピューターに何らかのタスクを実行するように指示しています。前進する唯一の方法は、練習することです。

英語や他の言語を学習するのと同じように、構文(アルファベット)を学習することから始めてから、文法やその他の構成要素に進む必要があります。必要な時間は、言語の複雑さによって異なります。SQLのような高レベル言語でのコーディングは、Pythonはほとんど英語を書くようなものです。


2

いくつかの側面が役立つと思います-

  • 現代の現実世界を知っている教授。彼らが現在の技術とそれが理論的枠組みにどのように適合するかについて話すことができれば、それは現在の技術を参照せずにVAXenを分析するよりも歴史を意識しない学部生にはるかに関連します。

  • 部門が支援するインターンシップ。部門が少なくとも2つの夏のハイテク企業との有給の仕事を保証できる場合、それを維持するための大きなインセンティブがあります。

率直に言って、現代のコンピューターサイエンスの学生は、5〜10年前に住んでいる学生よりもはるかに恵まれています。ローエンドシステムを購入し、VMをインストールし、複数の言語、オペレーティングシステムなどを無料で習得する機能は、このようなイネーブラーであり、誇張するのは困難です。

もちろん、ホッパーやクヌースのような独創的な人々は、輝かずに自分自身を教えました。天才が出ます。


アイデアは素晴らしいものの、保証付きのインターシップ作業の2つの夏は、残念ながら現実的ではありません。はい、有給インターンシップがありますが、ほとんどの卒業生は幸運なことに今すぐ有給インターンシップを取得でき、しばしば無給で解決しなければなりません。これは他の州では異なる場合があります。しかし、あなたは彼らがより多くの操作性を持っていることについて正しいと思います。彼らはさらに数年前にあったより多くのオープンソースプロジェクトに貢献することができます。
ベスホワイトゼル

@BitOff:未払いのCSインターンシップについて聞いたことがない。
ポールネイサン

冗談じゃない?それはローカライズされたものでなければなりません。
ベスホワイトゼル

1

リスクを軽減するために、学位プログラム以外で成功する可能性のある学生のためのステージングエリアを作成します。これには、地元の高校でAP CompSciクラスを支援して、小麦をもみ殻から先制的に分離することが含まれます。これが非常に困難であることが判明した場合は、高校または大学の学部でCS指向のプログラムを使用して、地元のDECAチャプターに潜入(または新しいチャプターを作成)してみてください。逆に、おそらく未実現のCSポテンシャルを備えた管理スキルを求めている起業家の学生を示します。これは、学術媒体を通じてビジネスの目標を達成するための新しい経路です。


はい、大学よりも早い年齢でCSを導入するためにもっと努力する必要があることに完全に同意します。ほとんどの高校では、プログラミング言語を習得できる1つまたは2つの高度なコンピュータークラスを提供していますが、それだけでは不十分だと思います。私は、4〜6年生にシンプルで子供に優しい言語を教えることができれば、適切な年齢で興味を引くと思います。私が最初に基礎を学んだのは8才か9才でしたが、実際に入るのにさらに10数年かかりましたが、それは「プログラミング」の素晴らしい記憶を残しました。
ベスホワイトゼル

1

私は、そのようなプログラムのさまざまなレベルを理解することが鍵であると主張します。

大学-勉強のためだけに勉強できる場所です。この場合、プログラムを作成して調整するという点で非常に異なる基準が存在する可能性があります。これは非常に理論的である可能性があるためです。

大学-これらは、よりキャリア志向である傾向があり、業界からのフィードバックと大学と企業をつなぐことが重要なポイントです。卒業後6〜12か月のプレースメントを調べることは、卒業後の人々の成績を確認するための指標となります。重要な問題は、誰かが自分の時間とお金をその教育を受ける価値があると考えたかどうかです。ここでのプログラムは少し短くなる可能性があるため、プログラムの更新はより頻繁に行われる可能性があります。たとえば、大学の優等学士プログラムは4年、大学の卒業プログラムは18〜24か月でした。したがって、課題は、この部分を企業と結び付けて、人々が仕事に触れて、彼らにとって何がうまくいくか、または何がうまくいかないかを見ることができるようにすることです。

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