コンピュータサイエンス

コンピュータの頭の中

コンピュータがこのような迷路を解く時、どのように解いているのだろうか?

実際の処理では、上図のような形式に変換する。

上図の迷路の枠を取り去ってあげて、Sを起点にぶら下げてみると、以下のようになる。

このように、木のような構造(ツリー構造)になる。これを探索木と呼ぶ。探索木とは、場合分けである。場合分けを続けていけば、いつか目的の条件に合致するものが出現するという考え方を基礎にしている。

もっとみる
大切なお時間を割いてお読み頂きありがとうございました!感謝♪
2

プログラミングの基礎!私達がRecursionのCS学習を勧める理由

こんにちは!TechCommitメンバーの井上です。

皆さんコンピュータ・サイエンス(CS)勉強していますか?
おそらく、その必要性はなんとなく認識しながらも、日本でCSをきちんと学習したという経験を持つ方はそれほど多くはないのではないのではないでしょうか。

様々なIT学習のベースとなるべく日々TechCommitを運用していますが、より多くの方にコンピュータ・サイエンスにも興味を持って頂けれ

もっとみる
ありがとうございます!
35

ソフトウェアエンジニアになりたい人は、コンピュータサイエンスを専攻しようとするけど、コンピュータサイエンスを専攻してもソフトウェアの書き方を教えてくれなくて、企業はコンピュータサイエンスを専攻した人がソフトウェアの書き方に詳しいと思って採用するのは何かがズレているように思う。

ありがとうございます!
2

シアトルで実践する「プログラミング的思考」[13] 抽象化(2)パターン認識による抽象化

抽象化(1)分解による抽象化 では「分解の文脈」でどのように抽象化が行われるかを解説しました。ここでは「パターン認識の文脈」で抽象化をみていきます。パターン認識は「プログラミング的思考」の派生元とされる「コンピューテーショナルシンキング」の4つの主要概念のひとつです。他の3つは分解、アルゴリズム設計、そして抽象化です。

パターン認識(pattern recognition)とは解決すべき問題の具

もっとみる

シアトルで実践する「プログラミング的思考」[12] 抽象化(1)分解による抽象化

「抽象化 (abstraction) 」は「プログラミング的思考」の派生元と言われている「コンピューテーショナルシンキング」の4つの主要概念のうちのひとつです(その他は分解、パターン認識、アルゴリズム設計)。

「抽象化」がその4つのうちのひとつであることから、他の3つとは独立した概念のように感じるかもしれませんが、実際はお互い密接に関係しています。その関係を表すのは少し難しいのですが、三角形を使

もっとみる

[Data Mining & Text Analysis]③ クラスタ分析 - 階層クラスタ

前回記事にした、K-meansクラスタ分析の手法の他に、もう一つ代表的なクラスタ分析の手法に階層クラスタ(Hierarchical Clustering)という手法がありますので、今日はこちらの概要を書いていければと思います。

階層クラスタ分析には基本的には、二つのアプローチが存在します。

1. 凝集型階層クラスタ(Agglomerative Hierarchical Clustering)

もっとみる

【海外大学院留学】アメリカの大学院でコンピュータサイエンスを専攻してみて苦労したandしていることpart2:課題と試験の乗り越え方



part1の「アメリカの大学院でコンピュータサイエンスを専攻してみて苦労したandしていること」でここまでの反響をいただきました!

これからもアメリカで結果を出しつつ情報発信していきます。

改めて、

・海外の大学院への正規留学を考えている人
・コンピュータサイエンスを専攻しようと思っている人

こんな方への一助になるようなコンテンツも配信していけたらなと思っています。
ついでにこの記事を

もっとみる

【海外大学院留学】アメリカの大学院でコンピュータサイエンスを専攻してみて苦労したandしていること

ブロックチェーン関係の記事を10本ほど書いたのですが、すでに2,000を超えるviewsを頂いており、波が来ているなと言う実感があります。
ですが今日は日曜日なので少し僕の留学事情について書いていこうかなと思います。
というのも

このうちの40%以上が留学記事からなんですよね。
なので今回は

・海外の大学院への正規留学を考えている人
・コンピュータサイエンスを専攻しようと思っている人

こんな

もっとみる

シアトルで実践する「プログラミング的思考」[11] 論理的に考える(2)ロジックを使う

論理的に考える(その1)では「論理的にアルゴリズム設計をする」ことを解説しました。ソフトウェアエンジニアが「重複がなく、なおかつ問題の全てを網羅する」よう論理的にアルゴリズムを設計することを取り上げました。

ここでは「論理的に考える」という思考はもちろんですが、さらに「論理を使う」場合について解説します。具体的には条件文と呼ばれる制御構造でどのようにロジック(論理)が利用されるかを見ていきます。

もっとみる

シアトルで実践する「プログラミング的思考 」[10] 論理的に考える(1)なぜ?の思考

ソフトウェア開発やプログラミング活動において、論理的思考が必要である事はよく知られています。プログラミング的思考も「論理的に考えていく力」と定義しています。

自分が意図する一連の活動を実現するために、どのような動きの組合せが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考え

もっとみる