恋するコンピューターサイエンス

コンピューターサイエンスをもっと楽しく、もっと本質的に!

恋するコンピューターサイエンス

コンピューターサイエンスをもっと楽しく、もっと本質的に!

メンバーシップに加入する

コーディングをしながら表現したいためのコミュニティである。

  • 数学で思考する、メディアアート

    ¥480 / 月
    初月無料

最近の記事

write関数を深掘りする。(STDOUT_FILENO

Q. write関数の write(STDOUT_FILENO, buf, n) のSTDOUT_FILENOの意味を説明せよ。 A. STDOUT_FILENOとは標準出力のこと unistd.hライブラリで定義されるマクロ。 STDOUT_FILENOを1と書いても同じ意味。 凡人: write(STDOUT_FILENO, buf, n) っていうコードで、STDOUT_FILENO って何? 恋するコンピュータサイエンス: ああ、STDOUT_FILENO はね

    • 42Tokyo Picine 最終日

      ついに来てしまった。 最終日。 それにしても、驚異的だ。 0と1だけの信号処理が、文字列、数学、画像処理、さらには3dも表現できてしまう。とても不思議で、掘っても掘っても新しい発見がある。 コードを書いていくうえで、プログラミングの考え方やアプローチを学べた。何よりも問題解決スキルや論理的思考力も鍛えられた。プログラミングの本質に近づくことができたような気がする。 正直なところ、何度もリタイアしようかと思った、新しい概念や難しいアルゴリズムに直面すると、頭がパンクし

      • 42Tokyo Piscine(ピシン)17日目【習うより慣れろ】

        Piscine(ピシン)も2週間程過ぎた17日目、自分のプログラミングの勉強法に致命的な欠陥を見つけてしまった。学生時代数学が得意だったこともあり、一行一行理解して数学の定理を証明するようにコードを書いていたが、この方法だと一行書くのに人より何倍も時間がかかってしまう。プログラミングは、数学のような論理的な思考力やアルゴリズムの設計が必要な面があるが、同時にプログラミング言語自体の独特な文法の習得が必要だ。この文法の理解には、理解するだけでなく慣れる姿勢も重要です。特に初心者

        • 42Tokyo Piscine (ピシン) 2日目

          42の課題はテーマがあり、そのテーマを探り充てることが初心者プログラマーにとっての最初の関門である。テーマを探り当てるためには、その前提知識を理解することから始まる 。 プログラマー経験のある生徒なら、ははーんこれはこの意図をもって作られた課題だなと、即座に理解する事ができるが、残念ながら未経験者にとって、課題文を読んでも最初は??でしかないのだ。そもそも何かを理解するとは既にある頭の中の知識とネットワークを作る事だ。その意味でいうとネットワークを構築する為の前提知識が無い場

          42Tokyo Piscine 0日目【Picine 開始】

          42tokyoというプログラミングスクールがある。 入学試験である、一ヶ月続くピシンは今まで体験したどの入学試験よりも、ハードでだった。 試験を通過すれば全額無料だが、丁寧に教えてくれる先生はいない、自力で課題を解いていくだけというなんともスパルタな学校に入学することができる。(16歳以上で入学試験を受けることができる。) 受験者の顔ぶれは若者(16〜20)大学生、そして私のような若干のオッサンが42tokyoの構成するメンバーだ。 若い人を中心に一旗上げようと集まっている

          42Tokyo Piscine 0日目【Picine 開始】

          if (!変数)とは?

          Q. ① if(0)はブロックに入るか? ブロックとは{}の事 ② if(!変数)は何を表しているか? A. ①入らない ②if(変数=='\ 0') と同じ意味である 解説) if のカッコの中身は評価(真、偽を判定する)というのが基本だ。 つまり if(0) bool値におけるfalse if(1) bool 値におけるtrue がまず基本だ。 if(変数)if(!変数)if(NULL)等、変数一文字の場合はどのうように考えれば良いのだろうか? 変数が*sを

          C言語で透視図法を描画する

          透視図法の描画は下記の図式で、図式化する事ができる。 これは透視投影変換 と呼ばれ、西洋絵画の基本となっている概念だ。 どういうことかというと、目の前にスクリーンを設定し、プレイヤーから視線(光線)をりんごに向かって飛ばしてスクリーンとの交点がモニターに映し出されるという手法である。 りんごは複数個あるのでスプライトの数だけ反映させるの描写の実装が必要だが、まずは一個の上図におけるりんごを描写するのがよいだろう。 参考) 下記のサイトを参考にした https://lode

          C言語で透視図法を描画する

          42Tokyo Piscine (ピシン)7日目【リタイアするか迷う】

          「私は鶏のように臆病であったが、ルビコン河を渡るような重大決心を自分に強いてきた。」 コルビジェ これは20世紀最高の建築家であるコルビジェの言葉だ。 どんな偉大な業績を残した人でも暗中模索の中、前進する時には鶏のように臆病なのだ。 軽い気持ちで参加した、42であったが思いのほかの困難さにリタイアしようかと迷う。 Piscine 7日目コルビジェの言葉が頭をよぎる。

          42Tokyo Piscine (ピシン)7日目【リタイアするか迷う】

          ポインタとは⓪

          ポインタの理解を困難にさせている一因に、呼称の曖昧さがあるように思う。 下記2つの例を見てほしい *p    pをポインタ変数もしくはポインタと呼ぶ *を間接演算子と呼ぶ。 p = &a pをポインタ変数もしくはポインタと呼ぶ &をアドレス演算子と呼ぶ。 上記表記の仕方が違えどp自体をポインタもしくはポインタ変数と呼んでいる事がわかるだろうか 多くのプログラミング用語は英語を日本語に訳しているだけなので、紛らわしい事が多い。 ポインタはその代表格だ。呼称を整理しておくこ

          42Tokyo Piscine 11日目【42という学習スタイル】

          それにしても不思議だ。 親切な先生もいなければ、卒業証書をもらえるわけでもない。 英語で書かれた数ページの課題が与えられて、その結果を機械採点に通すだけのシンプルなシステム。 そんな単純なシステムに参加者皆、前のめりになって学習している。 問題を解くための知識はすでにYouTubeやブログに氾濫していて、各々必要な情報を個人でネットで検索する。それでも理解が追いつかない場合は学習の進んでいる他の生徒に教えて貰えば良い。 知識を得る事が目的なら、実はこれで十分なんではない

          42Tokyo Piscine 11日目【42という学習スタイル】

          ポインタとは何か②

          Q.  int *x; *x = 10; 上記の違いを説明せよ A int *x; ポインタ変数定義 xがポインタである事を定義している *x = 10; 間接参照演算子  ポインタの参照先の値にアクセスしている 参照先(ポインタが指している)変数の型がintである事を宣言している。 解説)(ポインタ理解の盲点) int *x;(ポインタ変数宣言)のアスタリスクと、 *x = 10;のアスタリスクは全くの別物です!!!とても重要!!! (私はこれを理解するのにとても

          ポインタとは何か①

          Q, ポインタを一言で説明すると? A. ポインタとはアドレスを格納する変数。 ポインタとはアドレスを格納する変数です。 ポインタはURL、もしくはエイリアス、もしくはショートカットアイコンとイメージすると分かりやすい URL のリンクをクリックするとWebサイトに飛べる。 つまりURL の情報(アドレス)を格納しているのがポインタ変数ということだ 上記が原則なのでポインタの理解に手こずったら、ポインタ変数にはアドレスが入っている事に立ち返ろう。

          世界を目指せ!

          Q 世界はどの位広いと思うか? A あなたが思うよりももっと広い。

          42Tokyo Piscine 14日目【メソポタミア人の詩】

           きのう生まれたものがきょうは死ぬ  つかの間のうちに人間は闇に投げ込まれ  突然押しつぶされてしまう  喜びに歌を口ずさむときはあっても  たちまち嘆き悲しむことになる  朝と夜とのあいだに人びとの気分は変わる  ひもじいときには亡骸のようになり  満腹になるとその神とも張り合い  ものごとが順調にいっているときには天にも昇るなどとしゃべるくせ  に困ったときは地獄に落ちそうだとわめく メソポタミア人の詩 Piscine も14日目となる。 右も左も暗闇の時に頭に去来

          42Tokyo Piscine 14日目【メソポタミア人の詩】

          42Tokyo Piscine 8日目 【初レビューを受けるか迷う】

          無味乾燥な2進数の海に溺れそうになる、、いや既に溺れているのかもしれない、、 一体コードを書くことに何の意味、があるのだろうと我に帰る自分に言い聞かせる言葉を模索しながらPicineも既に 8日目となる。 とにかく一度提出してみよう、 上位集団は既にC言語の課題に突入しているらしい、、 自分も途中ではあるが、 とりあえず提出、自分のコードをレビューしてもらうことにしてもらった。 しかしレビューをしてもらうにしても自分の知識は断片の寄せ集めだ。 ネットや本そしてdisco

          42Tokyo Piscine 8日目 【初レビューを受けるか迷う】

          42 Tokyo Picine 6日目(プログラミングの勉強の仕方)

          突然、異世界に放り込まれて、その世界の住人が分けのわからない言語を話していたら、どのように立ち回れば生き残れるだろう。Picine は私にとってそのような体験であった。私が異世界の住人とコミュニケーションを取るための工夫を下記3点まとめてみた。 □少しずつ理解して理解の幅をひろげていく。 →最初からいきなり全てを理解をするのは無理なので、1行だけ理解できたら、もう1行というように、限られた範囲から徐々に範囲を広げていくのが良い。 □トライアンドエラーを繰り返す。 理解

          42 Tokyo Picine 6日目(プログラミングの勉強の仕方)