Notes

The End

  • CS50 の実現に協力してくれたすべての人に感謝します。
    • ハーバード・オフィス・フォー・ザ・アーツ メモリアルホール/ローウェルホール・コンプレックス
    • ハーバード大学FASの教育支援サービス
    • カメラの背後にある CS50 の独自の制作チーム
    • CS50のスタッフ、コースアシスタント
  • また、講義ビデオのいくつかのショットに興味を持たせるために、劇場の周りに人形がいくつかあることに気づいたかもしれません.
  • 最後に、次のことを忘れないでください。このコースで最終的に重要なのは、クラスメートとの相対的な関係ではなく、開始時の自分との相対的な関係です。
  • スーパー マリオ ブラザーズ ゲームのピラミッドの形で文字を印刷することから始めたことを思い出してください。次に、文章の読みやすさの分析、選挙のアルゴリズムの実装、画像へのフィルターの適用に進みました。
  • 次に、データ構造について学び、ハッシュ テーブルを作成し、データをすばやく検索しようとしました。最後に、独自の Web アプリケーションを構築するために、いくつかの新しい言語 (Python、SQL、HTML、CSS、および JavaScript) を学びました。
  • いくつかの第一原則を学びました。
    • より論理的かつ系統的に考えるコンピューター的思考
    • アルゴリズムを使用して問題を解決し、一部の入力を取得して一部の出力を生成する
  • そして今、私たちが学んだすべてのツールとスキルを使用して、将来、私たちや他の人がプログラムやアプリケーションを構築 (および使用) する必要があるかどうかを検討したいと考えています
  • 私たちは、正しさ、デザイン、スタイルの軸で作品を評価することを学びました。
  • 抽象化の概念を使用して、複雑な問題をレイヤーに分解し、一度に 1 つずつ解決することもできます。
  • 私たちのプログラムであろうと他の人間であろうと、私たちの指示も正確であることを切望しています。
    • ボランティアの方にステージに上がってもらいます。観客には見えない立方体の絵が見えるので、観客に自分で描くように口頭で指示を出します。それぞれの指示の解釈が微妙に異なるため、最終的な絵はどれも全く異なるものになりました。
    • 「立方体を描いてください」という抽象的な表現も可能でしたが、それでは大きさや角度などの詳細がわかりません。もっと正確に「45度の線を描きなさい」と言ってもいいのですが、それもまた難しい。
  • 別のボランティアに登場してもらい、今度は観客がボランティアに「”Hi “という棒人間を描いてください」と指示します。

Tools

Quiz Show

観客と一緒にクイズ番組を主催し、次の質問をします。

  • CSSは何の略ですか?
    • Cascading Style Sheet
  • コンパイラの役割を最もよく表しているのはどれですか?
    • ソースコードをマシンコードに変換する
  • argcの型は何ですか?
    • int
  • 平衡二分探索木の探索効率はどれくらいですか?
    • O(log n)
  • CS50ダックのハロウィンコスチュームは?
    • Vampire(吸血鬼)
  • C言語では、異なる型の複数の変数を1つの新しい型に統一するにはどうしたらよいでしょうか。
    • 構造体(Structs)
  • Pythonにおいて、次の記述のうち誤っているものはどれか。
    • Python の配列は固定サイズです
  • C言語のstrcmpで 何が返されますか?
    • int
  • David Malan の電話番号 [949-468-2750] に電話すると、何と再生されますか?
    • Never Gonna Give You Up
  • malloc がメモリを使用するための空きメモリを取得する場所は、次のうちどれですか?
    • ヒープ
  • ソートされていないアイテムのリストがあるとします (店舗のレシートなど)。要素を検索する前にアイテムを並べ替える必要がありますか?
    • リストを何度も検索するのであれば、最初にソートする必要があります。
  • SQLで「CREATE INDEX」コマンドを実行すると、どのタイプのデータ構造が作成されますか?
    • Bツリー
  • 「I’m a teapot」を意味する HTTP ステータス コードは何ですか?
    • 418
  • SQL インジェクション攻撃の例は?
    • 誰かが悪意のある SQL コマンドを Web フォーム経由で送信した場合
  • 配列の要素はどのようにメモリに格納されますか?
    • 連続して
  • 映画スターのテーブルで特定の映画スター (Zendaya) の ID を選択できる SQL クエリはどれですか?
    • SELECT id FROM moviestars WHERE name = 'Zendaya'
  • 両者とも実行時間はO(n)であるのに、なぜハッシュテーブルの方が連結リストより高速に検索できるのか?
    • ハッシュ テーブルは、1 つの長い連結リストではなく、検索対象の短い連結リストを作成します。
  • ゲーム・オブ・スローンズは…
    • 上記すべて(コメディ、ドラマ、歴史、ファンタジー、ドキュメンタリー、ロマンス、SF)
  • メモリを割り当てる際の黄金律は次のうちどれですか?
    • 上記のすべて(mallocしたメモリは必ず解放する、mallocしたメモリのみ解放する、メモリブロックを2回以上解放してはいけない)
  • ステージ上のバイナリ電球は今日何を綴っていますか?
    • ❤️

Emoji

  • Week0では、数字と文字をASCIIで表現する話をしました。絵文字も、11110000 10011111 10011000 10110111のように、4バイトで表現することがあります。
  • そして、Unicodeコンソーシアムが管理する新しい絵文字が時折登場することにお気づきでしょうか。
  • 本日は、Davidの元クラスメートであるJennifer 8. リーさんはDavidの元クラスメートで、さまざまな活動に携わっていますが、特に文化や人々のグループを越えて絵文字を提唱しています。
    Emoji including hijab emoji with Rayouf Alhumedhi, sauna emoji with the Finnish government, red envelope emoji with Baidu, Dumpling emoji through Kickstarter, broccoli emoji with vegetarians, and DNA emoji with GE and the American Chemical Society
  • Jennifer は 1994 年に CS50 を取得し、クラスメートの 1 人がNetscapeの最初のインターンでした。実際、彼女が学部生だったとき、Google は存在しませんでした。
  • 数年前、Jennifer が友人の Yiying Lu にテキスト メッセージを送っていたとき、2 人とも餃子の絵文字が存在しないことに気づきました。そこで、デザイナーである彼女の友人が独自の餃子のイメージを思いついたので、ジェニファーは誰が絵文字をコントロールしているのかを調査するように促されました.
  • 彼女は、カリフォルニアに本拠を置く非営利団体である Unicode コンソーシアムを発見し、テクノロジ企業やその他の組織が投票メンバーとして参加しました。
  • 年間 75 ドルで、個人は会議に出席できる投票権のないメンバーになることができます。ジェニファーはサインアップして、テーブルを囲んだ数人だけで運営されていた会議に出席しました。
  • そこで、ジェニファーは友人と共に、「Emoji By The People, For The People」をモットーとするグループ、Emojinationを設立しました。
  • 大衆の支持を得るキャンペーンを実施した後、Unicode コンソーシアムの絵文字小委員会に提案を作成しました。提案が承認されると、投票が行われます。
  • 絵文字が含まれているかどうかには、客観的な要因もあります。
    • 人気のある需要、または頻繁な要求
    • 複数の用法または意味
    • 視覚的な特徴、または小さなサイズで簡単に認識できる
    • 赤、黄、緑、青のハートの間のオレンジのハートなど、いくつかのギャップを埋めるかどうか
    • ある企業がすでに非公式にサポートしている場合など、既存のベンダーとの互換性
  • 絵文字を含めることに対して考慮される要素:
    • 具体的すぎる、または狭すぎる
    • 余分な、または既存の絵文字に似すぎている
    • 洞窟のように肉眼では識別できない
    • ロゴ、ブランド、神々、有名人は禁止
    • 国旗はもういらない
  • 年に 1 回、新しい絵文字の提案が投票されると、オペレーティング システムとソフトウェアを構築する企業がそれらをデバイスやアプリに追加します。
  • 絵文字は、何年も前に日本で人気の小さな記号として生まれました。スマートフォンも普及するにつれて、人々が使用するすべてのソフトウェアとデバイスの標準が必要になりました。
  • そして Unicode コンソーシアムの使命は、「世界中の人々があらゆる言語でコンピューターを使用できるようにする」ことです。
  • したがって、Unicode コンソーシアムには 3 つの主要なプロジェクトがあります。
    • 現在100,000以上の文字をエンコード(絵文字を含むがこれに限定されない)
    • さまざまな国の通貨や日付と時刻の形式のリポジトリなどのローカリゼーション リソース
    • 開発者がソフトウェアをより簡単にローカライズできるプログラミング ライブラリ
  • 2010 年、Unicode 6.0 標準に最初の絵文字が含まれました。
  • Unicode コード ポイントは、各 Unicode 文字に割り当てられた一意の番号です。
  • また、🙃 のように、一部の絵文字はまだあいまいな場合があります。
  • 誰でも絵文字を提案できることが判明し、Emojination の助けを借りて、多くの個人や組織が提案を作成し、最終的に承認されました。
  • ジェニファーは中国語を話して育ったため、個人的に絵文字を気にかけています。多くの絵文字と漢字は、物を表したり、組み合わせて別の概念を表したりする点で類似しています。
    • 森の字は木の字で、木の字のすぐ隣です。
    • 「house」または「home」の文字は、豚の文字の上に屋根があり、家が豚のいる場所であるかのようです。
    • 「good」の文字は、子どもの文字の次に女性の文字であり、今日の基準では問題になる可能性があります。
  • これらの例などは、来年発行されるThe Hanmoji Handbookに掲載されます。
  • Unicode 標準では、複数の絵文字を組み合わせた特殊文字であるゼロ幅ジョイナーも使用できることがわかりました。農家やシェフなどの職業の絵文字は、男性または女性の絵文字にトラクターやフライパンを組み合わせたものです。
  • 肌の色も、既存の絵文字と特定の色の組み合わせです。
  • 喜びの涙を浮かべた顔の絵文字 😂 は、絵文字の使用全体のほぼ 10% であることがわかりました。残りのほとんどすべては、非常に多くあるため、比較的まれにしか使用されません。
  • 来年は、より多くの色のハート、鳥、花、動物、食べ物、物、さらには震える顔など、新しい絵文字が追加される予定です。
  • おそらくあなたも、何十億もの人々に影響を与える新しい絵文字の提案を思いつくでしょう!