JavaRush /Java Blog /Random-JA /講義 CS50: 第 0 週 (講義 1 および 2) の追加資料
Bender
レベル 1
Маунтин-Вью

講義 CS50: 第 0 週 (講義 1 および 2) の追加資料

Random-JA グループに公開済み
プログラミングの基礎に関するハーバード大学の講義をまだ視聴していない人は、ここにアクセスしてください: https://javarush.com/quests/QUEST_HARVARD_CS50 =)

導入。CS50 コースの構造

講義用追加資料 CS50: 第 0 週 (講義 1 および 2) - 1友達!はじめに、CS50 の構造について (または誰にでも) 思い出させます。このコースは12週間続きます。毎週2回の講義のほか、各種セミナーや解説も行われます。講義の準備が整い次第、このような記事を公開していきます。講義の簡単な説明、「ショート」に関するメモと追加情報、実践的な課題の翻訳が含まれます。ゼロウィークの講義では次の問題が取り上げられました。
  • 2 進数システム。
  • アスキー
  • アルゴリズムとアルゴリズム的思考
  • コンパイラ
  • スクラッチ言語
  • ブール式
  • 条件
  • サイクル
  • 変数
  • 機能
  • 配列
  • ストリーム
  • イベント
第 0 週の目標:
  • 情報をデジタルで表現する方法を理解します。
  • 基本的なソフトウェアの構成と概念を学びます。
  • Scratch を使用して、独自のアニメーション、ゲーム、またはインタラクティブなアクティビティを作成します。
  • 友達を感動させましょう =)。

CS50 第 0 週 (講義 1-2): メモ

アルゴリズム

講義用追加資料 CS50: 第 0 週 (講義 1 および 2) - 2すでに講義をご覧になり、アルゴリズムが問題 (さまざまな問題、数学的な問題、または「地下鉄 N 駅に行く方法」) の解決策をステップに分割していることを理解していただけたと思います。さらに、各ステップは有限の時間内に完了する必要があり、ステップ自体も一定数存在する必要があります。また、次のステップは前のステップに依存します。アルゴリズムの詳細については、たとえば、こちらを参照してください。英語がわかる方は、David Malan による素晴らしい TED アニメーションをご覧ください: https://youtu.be/6hfOvs8pY1k ただし、一般に、ビデオ内の情報は講義内の情報と同じです =)。

二進法

講義用追加資料 CS50: 第 0 週 (講義 1 および 2) - 3指は 10 本あり、システムは 10 進法です。つまり、数値 0、1、2、3、4、5、6、7、8、9 を使用して、どんなに大きな数値でも表すことができます。その数値が数値内のどこに含まれるかによって、それは次のことを意味します。異なるもの: この数字が最後であれば、それは単位の位にあり、最後から 2 番目の数字は十の位にあり、さらに左にあるものは百の位にあります。基本的に、任意の数値は、各桁を 10 の一定乗倍した合計として書くことができます。単位の場合はゼロです。たとえば、1573 = 3*10 0 + 7*10 1 +5*10 2 +1*10 3です。桁に乗算される数値は、記数体系の基数と呼ばれます。10 進法の場合、底は論理的に 10 です。コンピュータには指がありませんが、条件付きで「電流が流れている」と「電流が流れていない」、つまり 0 と 1 の 2 つの状態があります。したがって、コンピュータ メモリ内のすべての数値 (および一般的な情報) は、0 と 1 の 2 桁のみで構成されます。10 進数体系の場合と同様、それらの位置が桁を示します。ここでのみ、数値を 10 の累乗ではなく 2 の累乗を乗算した桁の合計に分解できます。2 進数の 0 = 0 2 進数の 1 = 1 2 進数の 2 = 10 7 10 =111 2 2 進数から 10 進数への変換を学びます。おそらくこれがどのように行われるかをすでに理解していると思います。単純に、右端から数字の桁を取得し、その桁に対応する底を乗算し、各桁ですべてを加算します。例: 2 進数 101101 に相当する 10 進数を見つけてみましょう2 右端のゼロ = 1*2 0 次のゼロ = 0*2 1 右から 3 番目のゼロ = 1*2 2 4 番目のゼロ = 1*2 3 .. . など 101101 2 = 1*2 0 + 0*2 1 + 1*2 2 + 1*2 3 + 0*2 4 + 1*2 5 = 1 + 0 + 4 + 8 + 0 + 32 = 45 10 8 個の電球が一列に並んでいると想像してください。それぞれに独自のスイッチがあります。それぞれの電球は放電です。想像してみてください。最初の講義 (そのようなデバイスがあります) を思い出してください。または、ここにあるウィジェットがあります: http://cdn.cs50.net/2016/x/psets/0/pset0/bulbs.html Playそれを使って、バイナリシステムを「感じる」練習をしてください。10 進数から 2 進数への変換。ここでも、本質を理解していれば、すべてが非常に簡単です。ここには 57 10という数字があります。これを 2 進法に変換するには、この数値を超えない 2 の最大累乗を決定する必要があります。2 6 = 64。これは明らかに多すぎます。しかし、2 5 = 32 です。これで最上位桁が決まりました。32 10= 100000 2。今、次の桁を探しています。57-32 = 25。25 については、25 を超えない 2 のべき乗を探します。2 4 = 16。これは、次の桁も 1 に等しいことを意味します。32+16 = 48 10 = 110000 2。57 – 48 = 9. 2 3 = 8、これは 9 より小さいです。これは、次の桁も 1 になることを意味します。32 + 16 + 8 = 56 10 = 111000 2 . 57-56 = 1、つまり、残りのべき乗は 2 0だけです。したがって、 57 10 = 111001 2 となります。突然何か不明な点が残った場合は、ウィキブックで詳細を読むことができます。また、英語に堪能な場合は、講義に少し追加したものをここに記載します。

アスキー

講義用追加資料 CS50: 第 0 週 (講義 1 および 2) - 4コンピューターは 0 と 1 のみを理解します。そのメモリーは、上で見たように、スイッチが付いた非常に長い電球の列として表すことができます。私たちはコンピューターで数値を表現する方法をすでに理解しています。残りの情報はどうなるのでしょうか?手紙、絵? 英語のアルファベットが 26 文字あるとします。つまり、理論的には、2 進法でのみ文字を 0 から 25 までの数字で表すことができます。次の疑問が生じます。小文字か大文字かをどうやって理解できるのでしょうか? 句読点についてはどうでしょうか?スペースのような目に見えない記号?つまり、コーディング システムが必要なのです、キャップ!1960 年代には、文字をエンコードするさまざまなスキームが存在しました。統一性の欠如が問題であることが判明し、1963 年に米国規格協会 (ANSI) が ASCII (American Standard Code for Information Interchange) エンコーディング スキームを開発および導入しました。各 ASCII 文字は 7 ビット、または 7 ビットで構成され、それぞれのビットは値 0 または 1 をとります。7 ビットは 2 進数で 0 から 127 までの数値を保持できます。つまり、文字をエンコードするための数値が 128 個あることになります。英語の書き言葉をエンコードするにはこれで十分だと思われますか? 数えてみましょう: az - 26 個のオプション AZ - さらに 26 個 0-9 - 10 ,;:~& およびその他の句読点 - 32 個 そしてもう 1 個のスペース。合計 - 95 文字。残りの 33 個の空のオプションは、改行や復帰などのいわゆる制御文字に使用されます: https://ru.wikipedia.org/wiki/ASCII#/media/File:ASCII_Code_Chart.svg を区別することが重要です。 0 ~ 9 の文字と 0 ~ 9 の数値。文字 0 ~ 9 は ASCII 値 48 ~ 57 で表されます。興味深いことに、これらの ASCII 値の右端の 4 ビットは数値 0 ~ 9 のバイナリ表現であることに注意してください。これにより、ASCII 値と実際の数値の間の変換方法が多少簡略化されます。プログラミングを始めましょう?

講義用追加資料 CS50: 第 0 週 (講義 1 および 2) - 5ということで、スクラッチ。講義ではこのビジュアルプログラミング言語とその基本コマンドについて説明しました。Scratch を自分で試してみるには、リンクをクリックして「参加」をクリックしてください。登録が完了すると、オンラインでプログラミングを始めることができます。はい、ところで、現在、Scratch は部分的にロシア語化されています。ただし、ヘルプは依然として英語です。必要に応じて、講義でデモンストレーションされた学生プロジェクトのコードを再生したり、閲覧したりすることもできます。こちらはピカチュウのペーストリーキャッチ。または、廃棄物をさまざまなコンテナに分別するプロジェクト: https://scratch.mit.edu/projects/71161586/ David と会社は、「自分にはそんな複雑なプロジェクトはできない」と思っていても心配しないでくださいと呼びかけています。このレベルではすでに一定の要件が必要です。スキル 。

エクササイズ

  1. Scratch で行われるプロセスをより深く理解するために、ここからいくつかのプロジェクトのソース コードをダウンロードできます。遊んで見てください。他の人のコードを学ぶことは非常に役立ちます。これは、あなた自身がまだ成熟していないプログラムの中身を知るための最良の方法の 1 つです。これらのアプリがどのように機能するかを理解し始めると、自信を持って先に進むことができます。

  2. 今は自分で何かをする時です。楽しみながら、小さなプロジェクトをゼロから実行することが課題です。それはアニメーション、ゲーム、インタラクティブアクションなどです。

プロジェクトの要件:
  • プログラムには少なくとも 2 つのスプライト (文字、画像) が含まれている必要があり、そのうちの 1 つが猫であってはなりません =)。
  • 少なくとも 3 つのスクリプト (アクション) が必要です。
  • 少なくとも 1 つの条件、1 つのループ、および 1 つの変数を実行する必要があります。
  • プログラムには少なくとも 1 つのサウンドが含まれている必要があります。
つまり、本質的に、あなたのプロジェクトは講義で書かれたものよりも複雑ですが、ピカチュウやガベージコレクションに関する実演されたおもちゃよりは単純になります。したがって、プロジェクトではおそらく、Scratch コードを構成する数十個のパズルを使用することになります。何かがうまくいかない場合は、問題を解決するためのアプローチを変更する必要があるかもしれません。大切なのは恐れずに行動することです!ぜひ質問したり、コメントでプロジェクトを共有してください。

スクラッチ: アクションへのクイックガイド

スプライトはプロジェクトの中心的なオブジェクトです。猫、飛行機、ボールなど、あらゆるキャラクターはスプライトです。2 匹の異なる猫を追加した場合、これらは 2 つの異なるスプライトになります。 講義用追加資料 CS50: 第 0 週 (講義 1 および 2) - 6各スプライトには、その動作を説明するスクリプトがあります。これらはアクション ブロックです。コスチュームはオブジェクトがどのように見えるかです。スプライト自体は基本的に単なる描画です。各スプライトは複数のコスチュームを持つことができます。スプライトを作成するには、Scratch ライブラリからオリジナルのコスチュームを選択するか、内蔵エディターで独自のコスチュームを描くか、任意の画像をアップロードするか、Web カメラを使用して写真を撮ってアップロードする必要があります。すべてのスプライトはいわゆるステージ上に配置されます。舞台は本質的に私たちのキャンバスであり、プログラムの設定です。ライブラリのサウンドをスプライトまたはシーンにアタッチしたり、サウンドをロードしたり、マイクを使用して自分で録音したりすることもできます。プログラムの実行を開始するには、シーン ウィンドウの右上隅にある緑色の旗をクリックする必要があります。ただし、これを行う前に、プログラムに次のブロックを配置する必要があります。 講義用追加資料 CS50: 第 0 週 (講義 1 および 2) - 7そして、デザイナー パーツに関しては、それにいくつかのブロックをアタッチします。例: 講義用追加資料 CS50: 第 0 週 (講義 1 および 2) - 8この場合、フラグをクリックすると、アクションが関連付けられているスプライトが 50 ステップ進み、ニャーと鳴きます。たくさんのブロックがあります。これらは、スクリプト、コスチューム、サウンドの 3 つのタブに分かれています。条件付きの簡単なプログラムを作ってみましょう。それが満たされれば猫は鳴きますが、満たされなければ沈黙します。演算子は緑色で示されます。条件が真か偽かをテストするものは、側面に鋭い角があります。状態テストの構造とループはオレンジ色で示されています。他のブロックを配置できる特別な穴があります。

サイクル:

無限回繰り返します: 講義用追加資料 CS50: 第 0 週 (講義 1 および 2) - 9何かを一定回数繰り返します: 講義用追加資料 CS50: 第 0 週 (講義 1 および 2) - 10条件が満たされた場合にアクションを繰り返します: 講義用追加資料 CS50: 第 0 週 (講義 1 および 2) - 11Data ブロックに変数を作成できます。以下の例では、変数 x を作成すると、それを使用して実行できるアクションがすぐに現れました。変数のスコープをすべてのスプライトまたは 1 つのスプライトに設定できます。 講義用追加資料 CS50: 第 0 週 (講義 1 および 2) - 12緑の旗だけがアクションではありません。また、「イベント」セクションには、他の多くの制御条件があります。たとえば、マウスでボタンまたはスプライト自体をクリックしたときの動作を選択できます。追加情報が必要な場合は、たとえばここで見つけることができます。

ほかに何か

インターネット アクセスにまだ不十分な点が多い場合は、https://scratch.mit.edu/scratch2download/でオフライン Scratch エディターをダウンロードすることをお勧めします。次に、[ファイル] > [コンピューターからアップロード] を使用してプロジェクトをhttp://scratch.mit.edu/に送信することを忘れないでください。
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION