タグ付けされた質問 「computer-science」

コンピュータサイエンスまたはコンピューティングサイエンス(略してCSまたはCompSci)は、計算とそのアプリケーションへの科学的アプローチです。

8
停止の問題を回避するプログラムのサブセットはありますか
私は停止する問題の別の説明を読んでいたところ、例として挙げられているすべての問題が無限のシーケンスに関係していると考えるようになりました。しかし、プログラムで無限シーケンスを使用することはありません。時間がかかりすぎます。すべての実世界のアプリケーションには下限と上限があります。実数でさえ真の実数ではありません-32/64ビットなどとして保存された近似値です。 問題は、プログラムが停止した場合に判断できるサブセットがあるかどうかです。ほとんどのプログラムで十分ですか?プログラムの「停止可能性」を判別できる言語構成体のセットを作成できますか。私はこれがどこかで以前に研究されたと確信しているので、どんなポインタでも評価されるでしょう。言語は完全なチューリングではありませんが、チューリングがほぼ完了しているようなものがありますか? 当然のことながら、このような構成体は再帰と無制限のwhileループを除外する必要がありますが、これらを使用しないプログラムは簡単に作成できます。 例として標準入力からの読み取りは制限されなければなりませんが、それは十分に簡単です-問題のドメインに応じて、入力を10,000,000文字などに制限します。 ティア [更新] コメントと回答を読んだ後、おそらく質問を書き直すべきです。 すべての入力が制限されている特定のプログラムについて、プログラムが停止するかどうかを判断できます。その場合、言語の制約は何であり、入力セットの制限は何ですか。これらの構成体の最大セットは、停止するかしないかを推測できる言語を決定します。これについて行われた研究はありますか? [更新2] これが答えです、はい、1967年にhttp://www.isp.uni-luebeck.de/kps07/files/papers/kirner.pdfから遡ります 有限状態システムの停止問題は少なくとも理論的に解決できることは、1967年にミンスキーによって既に議論されています[4]:「...有限状態のマシンは、完全に放置されると、最終的に完全に周期的になり繰り返しパターン。この繰り返しパターンの期間は、マシンの内部状態の数を超えることはできません...」 (したがって、有限チューリングマシンに固執する場合は、オラクルを構築できます)

3
ソフトウェア工学とコンピューターサイエンスは別々の専攻ですか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 4年前に閉鎖されました。 何十年もの間、ソフトウェア開発者になるために受け入れられた学位は「Compter Science」でした。その学位が本当にソフトウェアを開発する準備をしているかどうかについて、すでにいくつかの質問 があり ました。 過去8年ほどで、いくつかの学校はプログラミングの複数の異なる専攻を提供し始めました。私の学校のカリキュラムを使用する: コンピューターサイエンス。最初の1年はイントロプログラミングコースから始まり、その後、理論的なコンピューターサイエンス、アルゴリズム、およびOSの一部に焦点を当てます。ほとんどのクラスには、ソロまたはペアで行われるいくつかの小規模なプロジェクトと宿題が含まれます。 同じイントロプログラミングコースから始まるソフトウェアエンジニアリングは、いくつかのクラスの理論を実行し、ソフトウェア開発プラクティス(テスト、プロセス方法論、ソフトウェアメトリック、要件収集)およびソフトウェア設計(分散システム設計、情報システム設計)に進みます、リアルタイム/組み込み設計、サブシステム設計など) 学校によってその方法は異なります。したがって、上記は私がよく知っている実世界の例にすぎません。私が尋ねるのは、プログラミングに明確な専攻が必要なのでしょうか?


2
これはどのクラスの問題であり、それを解決するにはどのような数学を知る必要がありますか?
キノコ栽培には、かなり正確な基質の化学組成(別名、成長培地)が必要です。椎shiを育てているふりをしてみましょう。これは基質の必須組成です。 Nitrogen | Benzene | Toluene | Dioxygen Diflouride 5% | 5% | 10% | 80% 化学組成がわかっている手持ちの材料から適切な基板を作成したいと考えています。 Material | Nitrogen | Benzene | Toluene | Dioxygen Diflouride apples | 5% | 0% | 5% | 90% oranges | 20% | 20% | 50% | 10% Etc... これをどのように計算しますか?高校で行列を解くことを思い出します。これは行列でできることですか?この問題は何と呼ばれていますか?解決するには何を知る必要がありますか?

4
素人の用語でグラフとは何ですか
コンピューターサイエンスにおけるグラフとは何ですか?素人の用語で好ましくは。 私はウィキペディアで定義を読みました: コンピューターサイエンスでは、グラフは抽象データ型であり、数学からグラフとハイパーグラフの概念を実装することを目的としています。 グラフデータ構造は、ノードまたは頂点と呼ばれる特定のエンティティの、エッジまたはアークと呼ばれる順序付けられたペアの有限(および場合によっては可変)のセットで構成されます。数学のように、エッジ(x、y)はxからyを指すか、またはxからyに向かうと言われます。ノードはグラフ構造の一部であっても、整数インデックスまたは参照によって表される外部エンティティであってもかまいません。 しかし、私はあまり形式的ではなく、理解しやすい定義を探しています。


13
コンピューターサイエンスの科学は死んでいますか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 質問: CSの科学と芸術は死んでいますか?つまり、問題を考え、計画し、効率的に解決するための実際の要件は、最近ではCSから外れているようです。この分野は、より多くの人々が真にプログラムする方法を学ぶ必要なく「プログラム」できるように、侵入障壁を下げているようです。 背景: 私は最近コンピューターサイエンスの学士号を取得しています。私は、IT部門のかなりの規模の会社で出発点で働いています。私は主に仕事で.NETおよびその他のMicrosoftテクノロジーを使用しますが、これまではインターンシップなどを通じてJavaの仕事をしていました。私は個人的には、楽しいプロジェクトのためのC ++プログラマーです。 詳細:私が行ってきた仕事を通して、本当の科学の強烈な規律はCSにはもう存在しないように思えます。過去には、システムを堅牢かつ迅速にするために、プログラマは問題を効率的に解決する必要がありました。しかし、今では、.NET、Java、スクリプト言語などの普及している技術により、開発の容易さのために効率と堅牢性が犠牲になっているようです。 私が仕事をしている同僚のほとんどは、コンピューターサイエンスの学位さえ持っていません。ほとんどが電気工学の学位を取得しており、一部はソフトウェアエンジニアリングを取得しており、4年のプログラムを持たないハイテクスクールから来た人もいます。それでも、CSの技術的背景がなく、理論やアルゴリズムを勉強しなくても、エレガントなソリューションを作成することを考慮せずに、うまくいきます(最も簡単で安価なソリューションを求めています)。 会社はマイクロソフトの技術を使用するように私たちに促します。Microsoftの技術は問題を真剣に考え、それをあなたのプロジェクトを半分の時間で自動ビルドできるライブラリとツールに置き換えます。私は言語を嫌いにしようとはしていません、彼らは目的を果たし、それをうまくやることを理解していますが、従業員がハッシュテーブルの仕組みを知らず、間違ったソート方法を使用するか、SQLコマンドを実行するときひどく非効率的ですが(許容できる時間内に仕事を終わらせてください)、実際に人々に正しい方法を教えるのではなく、新しい「プログラマー」を悩ませる技術の開発にもっと努力が注がれているように感じます。 私は、効率的で、私の意見では、美しいプログラムを作ることに興味があります。より良い方法があれば、スライドさせるよりも前に戻ってリファクタリングしたいです。しかし、企業の世界では、彼らは私にエレガントではなく迅速にタスクを完了するように促しています。そして、それは本当に私を悩ませます。 これは私がこれからの人生を楽しみにしていることでしょうか?給与だけでなく、CSの科学と芸術を愛する人々のために、まだポジションはありますか? そして、同じメモで、Java Schoolsの危険の前にそれを見なかったなら、ここは良い読書です

8
「ゲーデル、エッシャー、バッハ」は今日でも有効ですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 6年前に閉鎖されました。 計算可能性とロジックに関するコースを修了したばかりで、興味深いコースでした。講師は、彼のスライドに「ゲーデル、エッシャー、バッハ」などのいくつかの本を推奨しています。この本は非常に有名で、とても面白いように見えます。しかし、その内容に関していくつか質問があります。 コンテンツは今日でも有効ですか?ほとんどの理論的なものは一晩で変化しないと思いますが、私が気づく必要がある今日もはや保持されない主要なポイントはありますか? 過去30年ほどで実際に進歩したと思います。あなたは、この進歩(論理、AI、計算可能性)を含む主題に関する本を推薦できますか? 別の質問:エッシャーとバッハについて知る必要がありますか?

6
計算上不可能なビジネス上の問題の例は何ですか?
私は、チューリングマシン(および拡張によりフォンノイマンマシン)が、次のような停止問題を解決できないという現実を受け入れることを拒否する同僚がいます。 あなたは十分な時間とお金で何でもできます。 彼はまた、次のことを主張する理論的な問題を嫌います。 私たちの分野では、これらの質問に出くわすことは決してありません。私たちは理論科学者ではなく、アプリケーション開発者です。 彼にこのことを納得させるために使用できる計算上不可能なビジネス上の問題の良い例はありますか?

3
なぜ木は下に成長するのですか?
なぜコンピューターサイエンスで木が下向きに成長するのですか? 私はそれがプリンタに戻って、木を横断するプログラムが最初にルートを印刷し、遭遇するかもしれない再帰の無限のレベルを表現するために底なしの紙の束の概念を使用していると感じています。 参照: 木は下に向かって成長し、根はページの上部にあり、葉は下にあります 聖なる戦いと平和のための場所から。 慣例により、木は下向きに成長して描かれます ツリーデータ構造に関するWikipediaの記事から。 本物の木は根から空に向かって成長しますが、コンピューターサイエンスの木は根から下に向かって成長します David Schmidtの講義ノートより。

26
コンピュータサイエンスで最も難しい科目/理論ですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 8年前に閉鎖されました。 ロックされています。この質問とその回答はロックされています。なぜなら、質問はトピックから外れていますが、歴史的に重要だからです。現在、新しい回答やインタラクションを受け入れていません。 勉強したが分野にとって重要な最も難しいCS科目/理論はどれですか?そしてその理由は?

1
すべてのコードを一連のMap / Filter / Reduce操作として表現できますか?
私は最近、大量のコードをリファクタリングし、それらをLinqクエリに置き換えています。 言語バイアスの除去-Linqは、基本的に一連のデータを操作するMap / FilterおよびReduce操作のセットです。 これは、理論的にこれをどこまで引き継ぐことができるかを考えさせられました。コードベース全体を一連の(または単一の)Map / FilterおよびReduce操作に書き換えることができますか? 残念なことに、私は有用なことをするために報酬を受け取っているので、これ以上実験することはできませんでしたが、そのように再構築できないコード構造は考えられません。副作用コードは、モナドを介して処理できます。出力でさえ、基本的にメモリアドレスをスクリーンアドレスにマッピングします。 (理論的に)Linqクエリとして書き直せないものはありますか?

3
Rubyクリエイターがシンボルの概念を使用することを選んだのはなぜですか?
tl; dr:シンボルの言語に依存しない定義と、他の言語でそれらを使用する理由はありますか? では、なぜRubyの作成者symbolsは言語の概念を使用したのですか? これは、ルビーではないプログラマーの観点からお願いします。私は他の多くの言語を学びましたが、どれにもRubyが呼んでいるものを扱っているかどうかを指定する必要があることを知りませんでしたsymbols。 主な質問は、symbolsRuby の概念はパフォーマンスのために存在するのか、それとも言語の記述方法のために必要なものなのか、ということです。 Rubyのプログラムは、PythonやJavascriptの対応物よりも軽量または高速、あるいはその両方でしょうか?もしそうなら、それは原因symbolsでしょうか? Rubyの目的の1つは人間が読み書きしやすいことであるため、作成者はインタープリター自体に(他の言語の場合と同様に)これらの改善を実装することでコーディングのプロセスを緩和できませんでしたか? symbolsそもそもなぜ彼らがそこにいるのかではなく、何がどのように使われているのかを誰もが知りたいようです。

9
Cの学習はコンピューターサイエンスに不可欠ですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 6年前に閉鎖されました。 私はフロントエンドの開発者で、ファイルの拡張子.hや.c拡張子をほとんど見ていません。私は基本的なC構文を知っています。Unrealityで学習しましたが、単純なことにはあまりにも多くのセットアップが必要だったため、このような低レベルのプログラミングには興味がありませんでした。 コンピューターサイエンスのすべての側面を学ぶことに非常に興味がありますが、コンピューターサイエンスの概念のほとんどを理解するために特定の言語を実際に知る必要はないと信じたいです。しかし、データ構造やアルゴリズム設計などのコンピューターサイエンスの基本的な概念に関する本や記事を読み始めると、すべての例とレッスンさえもC(そして時にはJava)で書かれているため、Cを学ぶ必要があるようです。 私の質問は、Cはコンピューターサイエンスに不可欠なプログラミング言語ですか、それともたまたまCで書かれたすべてのリソースをCで作成したのでしょうか?Cを学習せずにコンピューターサイエンスを学習できますか?

7
コンピューターサイエンスはどの分野に属しますか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 6年前に閉鎖されました。 コンピューターサイエンスは、応用数学、工学、芸術、哲学ですか?「その他」? 背景を説明するために、Scientific Americanに関するSteven Wartikのブログ投稿「私は本当の科学者ではありません、それでいいです」と題しています。この記事では、この質問に役立ついくつかのトピックを取り上げていますが、答えよりも多くの情報を公開しています。 規律について考えることができたら、コンピューターサイエンスはその定義にどのように適合しますか?コンピューターサイエンスの分野は、プログラマーが行うこと、または学者が行うことに基づいているべきですか?これについて深く考えていると思われる人々からどのような答えが得られますか?どんな理由がありますか?

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