アルゴリズムって何? - デビッド・J・マラン:英語学習ノート

TED-Ed

学習難度
799語 203語/分

動画概要:人数を数える方法を段階的に改良しながら、アルゴリズムの基本と、疑似コード、ループ、正しさ、効率、境界的な事例による検証、バグ、条件分岐を解説します。 主な英語学習ポイント: 1. algorithm — 語彙の意味と使用域:コンピューター科学では、単なる一般的な「方法」ではなく、問題を解くための明確な手順の並びを指すと理解し、処理がどのように記述・実行されるかという技術的な説明を追えるようになります。 2. corner case — 語彙の意味と使用域:通常とは異なる状況や境界的な状況によって欠陥が見つかる可能性を表す工学用語だと理解し、プログラム、規則、解決策が典型例以外でも正しいかを検証するときに使えるようになります。 3. only executes if — 文法・文型:指定された条件が満たされた場合に限って命令や分岐が実行される条件論理を表し、プログラムの流れ、規則が作動する条件、例外処理を正確に説明できるようになります。

解説一覧

What's an algorithm?

0:15

アルゴリズムとは何でしょう?

In computer science,

0:16

コンピュータサイエンスにおいて、

an algorithm is a set of instructions for solving some problem, 語彙

0:17

アルゴリズムとは、何らかの問題を解決するための一連の命令のことです。

step by step. フレーズ

0:20

ステップバイステップで進みます。

語彙

algorithm:問題を解くための明確な手順

algorithm は、問題を解くための明確な一連の指示を表します。単なる大まかなアイデアやこつではなく、人やコンピューターがその手順に従って実行できます。 この文では、step by step によって、指示が順序のある手順になっていることが示されています。ループや条件は、どの手順を繰り返すか、どの手順を選ぶかを制御できます。

練習

この文で algorithm は何を意味しますか。

  1. 問題を解くための明確な一連の手順
  2. コンピューターに関係するあらゆるアイデア
  3. 計算を行う機械
答えを見る

問題を解くための明確な一連の手順

フレーズ

step by step:一段階ずつ

step by step は、何かを複数の段階に分け、一つずつ順番に行うことを意味します。この文では、指示に従って順序よく進めることで問題を解くことを示しています。 ここでの step は、物理的な階段ではなく、手順の一つの段階を意味します。

練習

「一段階ずつ」という意味の決まった表現を入れて指示を完成させましょう:To avoid mistakes, follow the checklist ____.

答えを見る

step by step

Typically, algorithms are executed by computers,

0:21

通常、アルゴリズムはコンピュータによって実行されますが、

but we humans have algorithms as well. フレーズ

0:23

私たち人間もアルゴリズムを持っています。

フレーズ

文末の as well:「〜も」

ここでの as well は「〜も」という意味です。文末に置かれ、アルゴリズムとコンピューターを結び付けたあとで、人間も話に加えています。つまり、人間にもアルゴリズムがあるということです。 この用法では、as well を情報を付け足す一まとまりの表現として捉えます。ここで well は「上手に」という意味ではありません。

練習

「〜も」という意味の学習した表現を入れて完成させましょう:Nina wants to join the game, and Omar wants to join ____.

答えを見る

as well

For instance, how would you go about counting the number of people in a room? 解説

0:26

例えば、部屋にいる人の数をどうやって数えますか?

話の流れ

具体例を示す For instance

For instance は、これから具体的な例が出ることを聞き手に知らせます。ここでは、「人間はアルゴリズムを使う」という一般的な考えから、「部屋にいる人を数える」という具体的な作業へ話を移しています。 情報を整理する表現として、例とその前の一般的な考えを結び付ける働きがあります。出来事が時間順に次へ進むことを示す表現ではありません。

練習

この短い文章で For instance はどのような働きをしていますか? “Many materials can be recycled. For instance, clean glass jars can go in the recycling bin.”

  1. 時間の流れに沿った次の手順を示しています。
  2. 話し手が前の間違いを訂正していることを示しています。
  3. 一般的な内容についての具体例を示しています。
答えを見る

一般的な内容についての具体例を示しています。

フレーズ

go about counting:作業の進め方を尋ねる

go about doing something という構造では、go about は、ある方法で作業に取りかかって進めることを表します。ここでの how would you go about counting は、人数を数えられるかではなく、どんな方法で数えるかを尋ねています。 about の後の動詞は -ing 形になります。例えば go about counting、go about fixing です。この表現が重視するのは方法や手順であり、ある場所を歩き回ることではありません。

練習

repair の正しい形を使って質問を完成させてください:How should we go about ____ the damaged chair?

答えを見る

repairing

Well, if you're like me, 意図と語調

0:29

そうですね、もしあなたが私と同じなら、

you probably point at each person,

0:31

おそらく一人ひとりを指さして、

意図と語調

if you're like me:聞き手に共感を促す

If you're like me は文字どおりには「あなたが私と似ているなら」という条件を示しますが、ここでは親しみのある会話の導入です。話し手は自分の習慣を挙げ、聞き手にも同じ習慣があるかもしれないと示しています。 この表現には断定を弱める働きがあります。全員が一人ずつ指さすと言い切らず、これは私がすることで、あなたもするかもしれないと示しています。通常は話題に関係する一つの習慣や好みを比べるだけで、二人の性格全体を比べるものではありません。

練習

使い方を判断してください:親しみのある発表で、If you're like me は、全員が同じ行動をすると断定せずに、話し手自身の習慣を紹介できます。

  1. 誤り
  2. 正しい
答えを見る

正しい

one at a time, フレーズ

0:33

一度に一人ずつ、

and count up from zero. 句動詞

0:34

ゼロから数え上げるでしょう。

フレーズ

one at a time:1回に1人または1つ

one at a time は、1回の順番につき1人または1つという意味です。この文では指さし方を説明しており、まず1人を指し、次に別の人を指すことで、順序を守って数えます。 at a time は1回に扱う数量を示します。時計の時刻や特定の時点を示す表現ではありません。

練習

先生は、子どもたち全員が一緒にではなく、一人ずつ机まで来てほしいと思っています。最も適切な指示はどれですか。

  1. Please come to my desk one time.
  2. Please come to my desk at one time.
  3. Please come to my desk one at a time.
答えを見る

Please come to my desk one at a time.

句動詞

count up:小さい数から大きい数へ数える

count up は、0、1、2、3のように、数を小さい方から大きい方へ順に言ったり記録したりすることです。この文では0から始め、数える人が増えるたびに数字も増えていきます。 小辞 up は、動詞に数値が増える方向を加えています。物が物理的に上へ動くという意味ではありません。

練習

数が増えることを示す小辞を入れて指示を完成させてください:Start at zero and count ____ to ten.

答えを見る

up

1 2 3 4 and so forth. フレーズ

0:35

1、2、3、4 というように。

フレーズ

and so forth:明確なリストや規則的な並びが続くことを示す表現

and so forth は、リストや規則的な並びが、さらに同じ種類の項目で続くことを聞き手に示します。「1 2 3 4」の後は次の数字を簡単に予測できるため、話し手はすべてを言いません。 これは、同じような項目が続くことを表すリスト末尾の一つの表現として理解します。forth の「前方へ」という字面どおりの意味ではありません。意味は and so on に近いです。

練習

「The club offers chess, music, painting, and so forth」の and so forth は何を示していますか。

  1. リストが新しい話題に変わりました。
  2. 同じ種類の項目がさらに続きます。
  3. 挙げられた項目は間違いでした。
答えを見る

同じ種類の項目がさらに続きます。

Well, that's an algorithm.

0:38

これも一つのアルゴリズムです。

In fact, let's try to express it a bit more formally in pseudocode, 解説

0:39

実は、これを擬似コードで少し形式的に表現してみましょう。

English-like syntax that resembles a programming language.

0:43

擬似コードとは、プログラミング言語に似た英語風の構文のことです。

フレーズ

a bit more formally:正式さを少し高める表現

a bit more formally は「少しだけ、より正式な方法で」という意味です。more formally は考えをどのように表すかを示し、a bit は変化の程度を小さく抑えます。 ここでは、話し手が日常的な説明から疑似コードへ移っています。この表現によって、完全に文体を変えるのではなく、小さな変更であるように聞こえます。

練習

「少しだけ、より正式な方法で」という意味の今回の表現を使って文を完成させてください:Could you state the rule ____?

答えを見る

a bit more formally

語彙

pseudocode:実行可能なコードを使わずにアルゴリズムの論理を表す

pseudocode(擬似コード)は、アルゴリズムの手順や論理を人が読みやすい形で表す、形式に厳密すぎない方法です。プログラミング言語のように見えることはありますが、特定の言語の正確な構文に従う必要はありません。 この文の in pseudocode は、その考えをどのような形式で表すかを示しています。後に続く英語風の指示は、アルゴリズムを明確に説明するためのもので、必ずしもコンピューターで実行するためのものではありません。

練習

pseudocode について正しい説明はどれですか。

  1. プログラミング言語の正確な規則に従わなければならない source code です。
  2. プログラムの実行中に見つかったエラーの一覧です。
  3. アルゴリズムをコード風の形式で表しますが、そのまま実行できるとは限りません。
答えを見る

アルゴリズムをコード風の形式で表しますが、そのまま実行できるとは限りません。

Let n equal zero. 文法

0:45

n をゼロとします。

文法

Let n equal zero:変数の初期値を設定する

数学や擬似コードで Let n equal zero. は、「n の値を 0 と定める、または設定する」という意味です。後の手順で n を使ったり値を変えたりする前に、初期値を決めています。 ここで let は定義や仮定を導き、「許可する」という意味ではありません。形は Let + variable + equal + value で、let の後では equal を原形のまま使います。

練習

Let ... equal ... の形を使って、次の擬似コードの指示を完成させてください:____ total ____ zero before counting.

答えを見る

Let · equal

For each person in room, 文法

0:47

部屋にいる人それぞれに対して、

文法

For each person in room:疑似コードのループ

For each ... はループを始める表現です。後に続く命令を、ある集まりの各要素について1回ずつ実行します。ここでは person in room が処理対象の集まりを示すため、部屋にいる人ごとに次の処理が行われます。 通常の英文では、for each person in the room と言うのが一般的です。疑似コードでは命令を短くするため、the のような小さな語が省かれることがあります。

練習

この疑似コードで、For each person in room は何をするよう指示していますか?

  1. 一人ひとりのために部屋を用意する
  2. 部屋にいる最初の人だけに次の命令を実行する
  3. 部屋にいる一人ひとりについて、次の命令を1回ずつ実行する
答えを見る

部屋にいる一人ひとりについて、次の命令を1回ずつ実行する

set n = n + 1. 語彙

0:49

n = n + 1 と設定します。

語彙

set n = n + 1:変数を更新する

疑似コードでは、set は変数に値を代入する指示です。まず現在の n の値を使って n + 1 を計算し、その結果を n に保存し直します。この命令を1回実行するたびに、n は1増えます。 ここでの等号は代入の一部であり、n と n + 1 が数学的に常に等しいと述べているわけではありません。

練習

疑似コードの set n = n + 1 を1回実行すると、何が起こりますか?

  1. 現在の n の値が1増える
  2. n の値が消去される
  3. プログラムが n と n + 1 が等しいか確認する
答えを見る

現在の n の値が1増える

How to interpret this pseudocode? 話の流れ

0:52

この擬似コードをどう解釈すればよいでしょうか?

話の流れ

見出し的な疑問文としての How to interpret ...?

この文の How to interpret this pseudocode? は、見出しのような疑問文です。擬似コードを示す段階から、各行の意味を説明する段階へ話を進めています。 how to + 動詞の原形は、何かを行う方法を示します。ここでは How should we interpret this pseudocode? のような完全な直接疑問文を短くした形で、次の説明を整理して導入するのが主な役割です。

練習

正誤を判断してください:チュートリアルでは、How to interpret this pseudocode? を、説明を導入する見出しのような話題転換として使うことができます。

  1. 誤り
  2. 正しい
答えを見る

正しい

Well, line one declares, so to speak, 解説

0:54

つまり、1行目は、いわば、

意図と語調

so to speak:近似的・比喩的な表現を示す

so to speak は、「こう表現してよければ」という意味の挿入表現です。ここでは declares という語をやわらげています。話し手は理解に役立つ技術用語を借りているのであり、それだけが完全に厳密な表現だと断定しているわけではありません。 聞き手には、その言い方を近似的または比喩的に受け取るよう示します。実際に「話す」よう求める表現ではありません。

練習

second home が文字どおりではない表現だと示す3語の英語表現で文を完成させてください:After so many late nights there, the library became our second home, ____.

答えを見る

so to speak

a variable called n and initializes its value to zero.

0:56

nという変数を宣言し、その値をゼロに初期化しているのです。

語彙

プログラミングでの declares ... initializes its value to zero

プログラミングの説明で declares a variable は、コードや擬似コードに変数を導入し、通常は名前を、言語によっては型も定めることを表します。ここで変数名は n です。 initializes its value to zero は、その変数に最初の値 0 を与えるという意味です。宣言と初期化は別の操作ですが、1行で両方を行うこともあります。

練習

declare と initialize を正しい形にしてください:The first line ____ a variable named total and ____ it to zero.

答えを見る

declares · initializes

This just means that at the beginning of our algorithm,

0:59

これは単に、アルゴリズムの開始時点では、

the thing with which we're counting has a value of zero. 文法

1:02

数えるための値がゼロであるということを意味します。

文法

with which we're counting:前置詞を which の前に置くフォーマルな関係節

with which we're counting は、the thing を修飾する関係節です。which は the thing を指し、with はそれが数えるための道具であることを示します。つまり「私たちが数えるのに使っているもの」という意味です。 前置詞を which の前に置くと、よりフォーマルな preposition + which の形になります。この文の the thing は変数 n です。数を記録するカウンターであり、数えられる対象ではありません。

練習

物を指す関係代名詞を使って、フォーマルな関係節を完成させてください:The camera with ____ we filmed the birds was very light.

答えを見る

which

After all, before we start counting, 話の流れ

1:05

なにしろ、数え始める前は、

we haven't counted anything yet. 文法

1:06

まだ何も数えていないのですから。

話の流れ

After all:前の内容を支える理由を加える

After all は、直前の発言を支えたり説明したりする理由を導きます。ここでは、まだ何も数えていないため、ゼロを数え始めの値にするのが自然だと示しています。 先に判断や結論を述べ、その後で理由を思い出させる形で情報を整理します。この用法は、おおよそ「この事実を忘れないで」という意味で、時間的に「すべての後で」という意味ではありません。

練習

after all を使って前の内容を支える理由を加えている文はどれですか。

  1. We should check the map; after all, this is our first visit.
  2. We checked the map after all the visitors left.
  3. After all the work, we went home.
答えを見る

We should check the map; after all, this is our first visit.

文法

haven't counted anything yet:現在まで何も数えていない

Haven't counted は現在完了形の否定で、形は have not + 過去分詞です。過去から現在まで一度も数える動作が行われていないため、現在の数はまだゼロだと表します。 否定文の anything は、何も数えていないことを表します。文末の yet は、その動作が現在の時点でも未完了であることを示し、後で行われる可能性や予想を伴うこともよくあります。

練習

現在までテストを一度も行っていないことを表すように、短縮形 haven't ... yet を使って文を完成させてください:We ____ run any tests ____.

答えを見る

haven't · yet

Calling this variable n is just a convention. 語彙

1:08

この変数を n と呼ぶのは単なる慣習です。

語彙

just a convention:一般的なやり方であり、規則ではない

この技術的な文脈で convention は、一般に共有されているやり方を指し、会議や必須条件という意味ではありません。just a convention は、変数を n と名付けるのがよくある選択ではあるものの、別の有効な名前でもよいことを表します。 慣例が任意だというのは、プログラミング言語がその方法を強制していないということです。それでも、慣例に従うと、ほかの人がコードを理解しやすくなります。

練習

この文の just a convention は何を意味しますか?

  1. 変数名について話し合う正式な会議である。
  2. 一般的なやり方だが、別の有効な名前も使える。
  3. すべてのプログラムが守らなければならない規則である。
答えを見る

一般的なやり方だが、別の有効な名前も使える。

I could have called it almost anything. 文法

1:10

ほとんどどんな名前にしても構いません。

文法

could have called it:過去に可能だったが選ばなかった命名

Could have called it は could have + 過去分詞を使い、過去に可能だったものの実際には選ばなかった選択肢を振り返ります。話し手は別の名前を選ぶこともできましたが、実際には n を選びました。 ここで called は「名前を付けた」という意味で、形は call + 目的語 + 名前です。have によって可能性が過去のものになります。could call it なら通常、現在または未来の選択肢を表します。

練習

could と call を使い、過去に選ばなかった名前の選択肢を表すように文を完成させてください:We ____ something else, but we chose Horizon.

答えを見る

could have called it

Now, line two demarks the start of a loop, 語彙

1:12

さて、2行目はループの始まりを示しています。

a sequence of steps that will repeat some number of times.

1:14

ループとは、何度か繰り返される一連の手順のことです。

語彙

loop:プログラム内で繰り返す手順のまとまり

プログラミングで loop(ループ)とは、一連の手順を繰り返し実行する構造です。loop の後ろの語句がその意味を直接説明しており、その手順が何度か繰り返されます。 ここでの loop は、単なる円形ではなく、プログラムの処理の流れを表します。コードや疑似コードで loop を見たら、どの命令が繰り返すブロックに入っているかを確認します。

練習

プログラミングの説明で、“The loop checks every message in the inbox” の loop は何を意味しますか?

  1. 一度しか実行できない単独の命令
  2. 画面に表示される円形の画像
  3. 命令のまとまりを繰り返す構造
答えを見る

命令のまとまりを繰り返す構造

So, in our example, the step we're taking is counting people in the room.

1:17

今回の例では、私たちが取っている手順は部屋の人を数することです。

Beneath line two is line three,

1:20

2行目の下には3行目があり、

which describes exactly how we'll go about counting.

1:22

これがどのように数えるかを正確に説明しています。

The indentation implies that it's line three that will repeat. 語彙

1:25

インデント(字下げ)は、3行目が繰り返されることを意味します。

語彙

The indentation implies:書式がコードの構造を示す

indentation は、行の先頭に空白を入れて内容を右へずらす「インデント」のことです。コードや疑似コードでは、この空白によって、どの命令が同じブロックに属するかを示せます。 The indentation implies that... は、書式が後ろの結論を導く手がかりになるという意味です。ここでは、3行目がループの内側にあり、繰り返される部分だとインデントから分かります。

練習

コードの説明“The indentation implies that the message is part of the loop”で、“The indentation implies”は何を意味しますか?

  1. 空白がコードの構造についての手がかりを示しています。
  2. 空白がメッセージ内のエラーを示しています。
  3. 空白によってプログラムがメッセージを表示します。
答えを見る

空白がコードの構造についての手がかりを示しています。

So, what the pseudocode is saying is that after starting at zero, 解説

1:28

つまり、擬似コードが言っているのは、ゼロから始めた後、

for each person in the room, we'll increase n by one. フレーズ

1:32

部屋にいる人ごとに n を1ずつ増やすということです。

話の流れ

what the pseudocode is saying is that...:疑似コードの意味を説明する

What X is saying is that... は、X にある情報を日常的な言葉で説明し直すための型です。ここで saying は実際に「話している」のではなく、「表している・意味している」という意味です。 what 節で解釈する情報源を示し、is that の後ろでその解釈を述べます。これにより、情報源と後に続く説明を分けて伝えられます。

練習

What X is saying is that... の型を使って説明を完成させてください:____ every visitor must sign in.

答えを見る

What the notice is saying is that

文法

after starting at zero:after + -ing で手順の順番を示す

after starting at zero は after + -ing を使い、ある手順が次の手順より先に行われることを示します。この文では、まず数を0から始め、その後で n を増やします。 starting は前置詞 after の後ろで使われている -ing 形で、現在進行形の主要動詞ではありません。この短い形は、手順や操作の説明でよく使われます。

練習

確認が先に行われることを after + -ing の句で示してください:____, click Submit.

答えを見る

After checking the address

フレーズ

increase n by one:by は変化量を示す

increase n by one では、n が変更される値で、by one が変化量を示します。現在の値に1を足すという意味であり、最終的な値が1になるという意味ではありません。 応用できる形は increase + 値 + by + 変化量 です。たとえば n が4なら、increase it by one の後は5になります。

練習

カウンターが7から8に変わります。by と英語の数詞を使って文を完成させてください:Increase the counter ____.

答えを見る

by one

Now, is this algorithm correct?

1:35

さて、このアルゴリズムは正しいでしょうか?

Well, let's bang on it a bit. 慣用句

1:38

では、少し検証してみましょう。

慣用句

bang on it a bit:くだけた実践的テスト

ここでの bang on it a bit は技術的な会話で使われるくだけた比喩で、システムやアイデアをいくつかのケースで試し、問題が起きないか確かめるという意味です。実際に物をたたくわけではありません。 ただ見るだけでなく、少し強い負荷をかけてみるイメージがあります。ただし別の文脈では bang on it が文字どおり「何度もたたく」という意味になるため、ここで「テストする」と解釈できるのは技術的な文脈があるからです。

練習

ソフトウェアについての会話で、"Let's bang on it a bit" はどの意味だと考えるのが最も自然ですか?

  1. 作業をやめる。
  2. コンピューターを何度もたたく。
  3. いくつかのケースでテストする。
答えを見る

いくつかのケースでテストする。

Does it work if there are two people in the room? 文法

1:39

部屋に2人いる場合、うまくいくでしょうか?

文法

Does it work if ...?:条件を変えて確かめる

Does it work if ...? は、if の後に示す条件でも、方法・システム・計画がうまく機能するかを尋ねます。ここで it は前に出たアルゴリズムを指し、work は「仕事をする」ではなく、「意図どおりに機能する」「有効である」という意味です。 Does it work if + 条件? を使うと、仮定を試したり、解決法がどの条件まで通用するかを確かめたりできます。

練習

設計者が、停電中でもスマートロックを使えるか確かめたいと考えています。その意味を表す質問はどれですか?

  1. Does it work because the power goes out?
  2. Does it work if the power goes out?
  3. Does it work, so the power goes out?
答えを見る

Does it work if the power goes out?

Let's see.

1:42

見てみましょう。

In line one, we initialize n to zero.

1:43

1行目で、n をゼロに初期化します。

For each of these two people, we then increment n by one. 語彙

1:45

その2人のそれぞれに対して、n を1ずつ増やします。

語彙

increment n by one:変数に1を足す

Increment は、「数値を決められた量だけ増やす」という意味の技術的な動詞です。increment n by one では、n が変更される値で、by one が変化量を示します。つまり、新しい値は元の値に 1 を足したものです。 この文は更新の繰り返しを説明しています。1人処理するたびに n に 1 を足します。応用できる形は increment + 値 + by + 変化量 です。

練習

変化量を示す前置詞を入れて技術的な指示を完成させてください:Increment the retry count ____ one after each failed attempt.

答えを見る

by

So, on the first trip through the loop, we update n from zero to one. 慣用句

1:49

つまり、最初のループで n をゼロから1に更新します。

慣用句

trip through the loop:ループの1回のイテレーション

この文の a trip through the loop は、ループ本体を1回実行すること、つまり1回のイテレーションを意味します。the first trip は、ループ内の手順が初めて実行される回です。 trip は、抽象的な処理を道のりにたとえています。ループに入り、中の手順を一度たどって出てくると考えると、その一巡が one trip through the loop です。

練習

強調された口語的な技術表現で文を完成させてください:On the second ____, the program removes one duplicate.

答えを見る

trip through the loop

On the second trip through that same loop, we update n from one to two.

1:52

同じループの2回目で、n を1から2に更新します。

And so, by this algorithm's end, フレーズ

1:56

そうして、このアルゴリズムの終わりには、

n is two, which indeed matches the number of people in the room. 話の流れ

1:58

n は2となり、確かに部屋の人数と一致します。

フレーズ

by this algorithm's end:終点までに成立する結果

ここで by this algorithm's end は「このアルゴリズムが終了する時までに」という意味です。by は期限となる終点を示し、そこに到達した時点では n がすでに2になっています。この表現の by は「このアルゴリズムを使って」という意味ではありません。 this algorithm's end は the end of this algorithm を所有格で表した形です。by + 終点は、その時点までに完了している、または成立している結果を述べるときに使えます。

練習

報告書を午後5時までに完成させる必要があることを表す文はどれですか。

  1. The report must be worked on through 5 p.m.
  2. The report must be finished at 5 p.m.
  3. The report must be finished by 5 p.m.
答えを見る

The report must be finished by 5 p.m.

話の流れ

which indeed matches:直前の結果が一致することを確認する

ここで which は補足的な関係節を導き、直前の結果全体である n is two を指します。people や the room を指すのではありません。この節によって、その結果が実際の人数と一致することを確認しています。 indeed は「確かに」という確認を強めます。そのため which indeed matches... は、結果を述べたあとで、データ・予想・現実の事実と照合するときに使えます。

練習

例文の which は何を指していますか?

  1. 部屋
  2. 直前の結果 n is two
  3. people という単語
答えを見る

直前の結果 n is two

So far, so good. 慣用句

2:02

ここまでは順調ですね。

慣用句

So far, so good:前向きだが暫定的な進捗確認

So far, so good. は、現在の時点までは物事がうまく進んでいるという意味の決まった表現です。進み具合を前向きに評価しますが、この先どうなるかはまだ確定していません。 ここでは途中の結果をまとめているのであり、最終的な成功を宣言しているのではありません。2つの so に同じ意味を当てはめず、文全体を1つの決まった表現として理解します。

練習

次の文が正しいか判断してください:So far, so good. は、作業全体が完了し、必ず成功するという意味である。

  1. 誤り
  2. 正しい
答えを見る

誤り

How about a corner case though? 語彙

2:03

しかし、コーナーケース(極端な場合)はどうでしょうか?

語彙

corner case:珍しいテスト条件

技術的な話で corner case は、通常の使用時には現れないシステムの問題を明らかにする可能性がある、珍しい条件や入力を指します。 ここでは「人がゼロ」という状況を、その特別なテスト条件として選んでいます。物理的な部屋の隅にある事例という意味ではなく、極端または珍しい入力でも数え方が機能するかを試すという意味です。

練習

ソフトウェアテストで corner case と呼ぶのに最も適しているのはどれですか?

  1. リストの要素がゼロのときに何が起きるかをテストする
  2. ログインボタンの新しい色を選ぶ
  3. 有効なアカウントで通常のログイン手順をテストする
答えを見る

リストの要素がゼロのときに何が起きるかをテストする

Suppose that there are zero people in the room, 文法

2:05

部屋にゼロ人いると仮定しましょう。

besides me, who's doing the counting.

2:07

数えている私自身を除いてです。

文法

Suppose that:仮定の条件を設定する

Suppose that は、話し合い、計算、テストの次の段階で一時的に正しいものとして扱う条件を導入します。推論の出発点を設定する表現であり、話し手がその条件を「たぶん本当だ」と推測しているわけではありません。 形は Suppose that + 節です。that は省略でき、Suppose there are zero people でも同じ意味になります。

練習

Suppose that を使って、次の仮定上のテスト条件を設定してください:____ the phone has no saved contacts. What should the app display?

答えを見る

Suppose that

In line one, we again initialize n to zero.

2:09

1行目で、再び n をゼロに初期化します。

This time though, line three doesn't execute at all, 語彙

2:12

しかし今回は、3行目はまったく実行されません。

since there isn't a person in the room,

2:14

部屋には人がいないからです。

語彙

doesn't execute at all:その行は一度も実行されない

ここでの execute はプログラミング用語で、コードの一行を「実行する」という意味です。Line three doesn't execute は、プログラムの流れがその行に到達せず、実行もしないことを表します。 at all は doesn't の否定を強めます。この表現は、その行の実行回数がゼロだという意味であり、実行されたものの結果が間違っていたという意味ではありません。

練習

プログラミングの話で「The line doesn't execute at all」はどのような意味ですか?

  1. その行は実行されますが、動作や結果が正しくありません。
  2. その行は実行されますが、とても遅いです。
  3. その行は一度も実行されません。
答えを見る

その行は一度も実行されません。

and so n remains zero,

2:16

そのため n はゼロのままであり、

which indeed matches the number of people in the room.

2:18

これは確かに部屋の人数と一致します。

Pretty simple, right? 意図と語調

2:20

とてもシンプルですよね?

意図と語調

Pretty simple, right?:気軽に確認を求める表現

ここでの pretty は「かなり」「わりと」という意味で、pretty simple はその内容が理解しやすそうだと述べています。この pretty は「かわいい」「きれい」という意味ではありません。 文末の短い right? は軽く確認を求める表現です。話し手は、聞き手に同意しているか、説明についてきているかを示してもらおうとしています。気軽な説明では、方向や権利を尋ねるのではなく、理解をさっと確認する働きをします。

練習

“Pretty simple, right?” の “right?” には、主にどのような働きがありますか?

  1. 聞き手に、ある方向へ移動するよう伝えます。
  2. その作業が簡単であることを正式に証明します。
  3. 聞き手に、同意しているか理解できているかを軽く確認します。
答えを見る

聞き手に、同意しているか理解できているかを軽く確認します。

But counting people one at a time is pretty inefficient too, no?

2:21

しかし、一人ずつ数えるのはかなり非効率でもありますよね?

Surely we can do better. 話の流れ

2:25

確実に、もっとうまくやれるはずです。

話の流れ

Surely we can do better:改善へ話を進める表現

Surely we can do better は、自信を示すだけではありません。今の方法は十分によくなく、もっとよくできるはずだと主張しています。 つなぎの表現として、非効率な方法を指摘する段階から、よりよい解決策を探す段階へ話を進めます。Surely には、その結論はもっともで、聞き手も同意するだろうという響きがあります。

練習

発表で Surely we can do better は主にどのような働きをしますか?

  1. その方法が失敗した理由を聞き手に説明してもらう。
  2. 今の方法がすでに最善だと述べる。
  3. 今の方法はおそらく改善できると主張する。
答えを見る

今の方法はおそらく改善できると主張する。

Why not count two people at a time? 意図と語調

2:26

一度に2人ずつ数えたらどうでしょう?

意図と語調

Why not count:Why not + 動詞の原形で提案する

Why not count...? は、Why not + 動詞の原形を使って提案する表現です。ここでは一度に2人ずつ数えることを提案しており、主な目的は理由を尋ねることではありません。 疑問文の形なので、提案について話し合う余地も残ります。その案がうまくいかない場合は、相手が実際の理由を説明することもできます。

練習

try を使って提案を完成させましょう:Why not ____ the simpler method?

答えを見る

try

Instead of counting 1 2 3 4 5 6 7 8 and so forth, 文法

2:28

1、2、3、4、5、6、7、8 と数える代わりに、

why not count 2 4 6 8 and so on.

2:33

2、4、6、8 と数えるのはどうでしょう。

文法

Instead of counting ... why not count:別の方法を提案する

Instead of doing X, why not do Y? という形は、今の行動と提案する別の方法を並べます。ここでは、X は1つずつ数えること、Y は2つずつ数えることです。 instead of の後には名詞か -ing 形を置くため、ここでは counting になります。why not の後には動詞の原形を置くため、count になります。この形は別の方法を提案するときに使えます。

練習

check と use を正しい形にして、提案の文を完成させてください:Instead of ____ every email one by one, why not ____ a filter?

答えを見る

checking · use

It even sounds faster and it surely is.

2:36

そのほうが速く聞こえますし、実際その通りです。

Let's express this optimization in pseudocode. 語彙

2:39

この最適化を擬似コードで表現してみましょう。

語彙

optimization:効率を上げるための具体的な最適化

この文の optimization は、数え方をもっと効率よくする具体的な変更を表します。1人ずつではなく、2人ずつ処理する方法に変えています。 技術分野の optimization は、速度を上げる、メモリー使用量を減らす、作業量を減らすなど、ある目標に向けてアルゴリズム、プログラム、手順を改善することです。単に何かがよくなったという曖昧な意味ではなく、意図的な改善です。

練習

プログラムを高速化する話の中で、optimization は何を意味する可能性が最も高いですか。

  1. 起こり得るエラーをすべて並べた一覧
  2. システムをより効率的にする具体的な変更
  3. コードを別の言語に翻訳すること
答えを見る

システムをより効率的にする具体的な変更

Let n equal zero.

2:41

n をゼロとします。

For each pair of people in room,

2:43

部屋にいる2人組ごとに、

set n = n + 2.

2:45

n = n + 2 と設定します。

Pretty simple change, right?

2:47

とても簡単な変更ですよね?

Rather than count people one at a time,

2:49

一度に一人ずつ数えるのではなく、

we instead count them two at a time.

2:51

代わりに二人ずつ数えるのです。

This algorithm is thus twice as fast as the last. 文法

2:53

したがって、このアルゴリズムは前回の2倍の速さになります。

文法

twice as fast as:速度が正確に2倍

twice as fast as は、あるものの速度が比較対象の2倍であることを表します。ここでは、このアルゴリズムの速度を前のアルゴリズムの速度と比べています。 形は「倍数 + as + 形容詞または副詞 + as + 比較対象」です。twice as fast as the last では、twice が倍数、fast が比べる性質を示し、2つ目の as が比較対象を導きます。

練習

倍数比較で欠けている2語を補ってください:The new scanner is twice ____ fast ____ the old one.

答えを見る

as · as

But is it correct?

2:56

でも、正しいでしょうか?

Let's see.

2:57

見てみましょう。

Does it work if there are two people in the room?

2:58

部屋に2人いる場合、うまくいくでしょうか?

In line one, we initialize n to zero.

3:00

1行目で、n をゼロに初期化します。

For that one pair of people, we then increment n by two.

3:02

その1組のペアに対して、n を2増やします。

And so, by this algorithm's end,

3:06

そうして、このアルゴリズムの終わりには、

n is two, which indeed matches the number of people in the room.

3:08

n は2となり、確かに部屋の人数と一致します。

Suppose next that there are zero people in the room.

3:11

次に、部屋にゼロ人いると仮定しましょう。

In line one, we initialize n to zero.

3:13

1行目で、n をゼロに初期化します。

As before, line three doesn't execute at all, 話の流れ

3:16

前と同様に、3行目はまったく実行されません。

話の流れ

As before:前の同じケースにつなげる表現

As before は「前のケースと同じように」という意味です。すでに述べた情報を指し、今回も同じパターンであることを聞き手に伝えます。 ここでは説明を整理する働きをしています。3行目は前のケースと同じように、今回も実行されません。ここでの As は類似を表し、理由は表しません。

練習

ここで As before はどのような働きをしていますか? The first test had no errors. As before, the second test finished without any errors.

  1. テストでエラーがなかった理由を示しています。
  2. 後でテストをもう一度行うことを示しています。
  3. 今回の結果を、前のケースの同じ結果に結び付けています。
答えを見る

今回の結果を、前のケースの同じ結果に結び付けています。

since there aren't any pairs of people in the room,

3:18

部屋には2人組がいないからです。

and so n remains zero,

3:20

そのため n はゼロのままであり、

which indeed matches the number of people in the room.

3:22

これも確かに部屋の人数と一致します。

But what if there are three people in the room? 文法

3:24

では、部屋に3人いる場合はどうでしょう?

文法

What if there are ...? で可能性のあるケースを検証する

この文の What if は仮定のケースを導入し、「部屋に3人いると仮定したら」と考えさせます。話し手は現在の人数を確認しているのではなく、その条件で方法がどんな結果を出すかを尋ねています。 there are は、この仮定の中で複数の人や物が存在することを表す部分です。この形を使うと、条件を一つ変えたときにも、それまでの主張や計画、手順が成り立つかを検証できます。

練習

強調された4語の形を使って質問を完成させてください:____ five passengers in the car?

答えを見る

What if there are

How does this algorithm fair?

3:27

このアルゴリズムはどう機能するでしょうか?

Let's see.

3:29

見てみましょう。

In line one, we initialize n to zero.

3:30

1行目で、n をゼロに初期化します。

For a pair of those people, we then increment n by two.

3:33

そのうちの1組のペアに対して、n を2増やします。

But then what? 話の流れ

3:36

でもその後は?

話の流れ

But then what? で欠けている次の手順を示す

But は前の内容からの転換を示し、then は手順の次の段階や結果を指します。what は、What happens next? や What do we do next? のような、より完全な質問の代わりです。 But then what? は独立した短い質問として説明をいったん止め、抜けている部分を示します。つまり、一つの手順は説明されたものの、処理全体はまだ終わっていないということです。足りない次の手順を求めることで、推論を先へ進めます。

練習

手順の説明で But then what? は通常どんな働きをしますか?

  1. 手順が未解決の次の段階に達したことを示します。
  2. すべての手順が完了したと伝えます。
  3. 無関係な過去の出来事に話を戻します。
答えを見る

手順が未解決の次の段階に達したことを示します。

There isn't another full pair of people in the room,

3:37

部屋にはもう完全な2人組はいません。

so line two no longer applies. フレーズ

3:39

そのため、2行目はもはや適用されません。

フレーズ

no longer applies:規則がもう適用されない

この文の no longer applies は、2行目が以前はその状況に当てはまっていたものの、必要な条件がなくなったため、今はもう当てはまらないという意味です。ここでの apply は「申請する」ではなく、「ある場合に適用される、または有効である」という意味です。 no longer + 動詞は、「以前はそうだったが、今はそうではない」という変化を表します。規則、条件、指示、割引などが主語のとき、apply はそれらが特定の状況を対象にすることを表します。

練習

The rule no longer applies が最もよく表すのはどの状況ですか?

  1. 誰かが新しい規則を作るよう申請しています。
  2. その規則は以前はその状況を対象にしていましたが、変化によって今は関係しなくなりました。
  3. その規則は一度もその状況を対象にしたことがありません。
答えを見る

その規則は以前はその状況を対象にしていましたが、変化によって今は関係しなくなりました。

And so, by this algorithm's end,

3:41

そうして、このアルゴリズムの終わりには、

n is still two, which isn't correct.

3:43

n はまだ2であり、これは正しくありません。

Indeed, this algorithm is said to be buggy, 語彙

3:46

実際のところ、このアルゴリズムはバグがあると言えます。

because it has a mistake.

3:48

なぜなら、間違いがあるからです。

語彙

buggy:欠陥があるソフトウェアやアルゴリズム

技術的な会話では、buggy は、ソフトウェア、アルゴリズム、機能などにバグがあり、誤った結果を出したり動作が不安定になったりすることを表す形容詞です。ここでは、誤りのあるアルゴリズムを説明しています。 buggy は単に wrong と言うより具体的で、技術システムの設計や実装に欠陥があることを示します。ここでの bug は昆虫ではなく、ソフトウェアや工学上の欠陥です。

練習

技術的な文脈で buggy を自然に使っている文はどれですか?

  1. This pencil is buggy because it needs sharpening.
  2. The developer is buggy because she made a typo.
  3. The new app is still buggy and sometimes crashes.
答えを見る

The new app is still buggy and sometimes crashes.

Let's redress with some new pseudocode. 語彙

3:49

新しい擬似コードでこれを修正しましょう。

語彙

redress:問題を正式に是正または改善する

ここで redress は、問題を是正したり改善したりするという意味です。話し手は、アルゴリズムの欠点を指摘する段階から、新しい疑似コードでそれを直そうとする段階へ移っています。 この語は、悪い状態を正すことに焦点があります。この文脈では衣服とは関係ありません。

練習

例文の redress はどのような意味ですか。

  1. コードを赤色で書くこと
  2. 問題を是正または改善すること
  3. 別の服に着替えること
答えを見る

問題を是正または改善すること

Let n equal zero.

3:51

n をゼロとします。

For each pair of people in room,

3:52

部屋にいる2人組ごとに、

set n = n + 2.

3:55

n = n + 2 と設定します。

If one person remains unpaired,

3:57

もし1人がペアにならずに残ったら、

set n = n + 1.

4:00

n = n + 1 と設定します。

To solve this particular problem,

4:02

この特定の問題を解決するために、

we've introduced in line four a condition, 語彙

4:03

4行目に条件、

otherwise known as a branch,

4:06

別名「分岐」と呼ばれるものを導入しました。

that only executes if there's one person we could not pair with another. 文法

4:08

これは、他の人とペアにできなかった人が1人いる場合にのみ実行されます。

語彙

a condition, otherwise known as a branch:制御フローの2つの用語

このプログラミングの説明では、condition はコードを実行するかどうかを決める真偽のテストで、branch はその結果によって選ばれるコードの経路やブロックです。otherwise known as は、説明中の条件部分に対する別の呼び方として branch を導入しています。 ただし、この言い方は少し大まかです。より正確には、condition がテストで、branch はその結果に対してプログラムが行う処理です。ここでは、1人だけ組になれずに残った場合に、該当する branch が実行されます。

練習

condition と branch を最も正確に説明しているものはどれですか。

  1. condition はコメントで、branch はファイル名です。
  2. condition は真偽のテストで、branch は結果によって選ばれるコード経路です。
  3. branch は真偽のテストで、condition は結果によって選ばれるコード経路です。
答えを見る

condition は真偽のテストで、branch は結果によって選ばれるコード経路です。

文法

only executes if:実行に必要な条件を示す

only executes if... では、only は実行回数ではなく実行条件を限定します。if 節の条件が真のときだけ動作を実行でき、条件が偽なら実行できません。「1回だけ実行する」という意味ではありません。 この形は、コード、コマンド、自動処理のステップが動くために必要な条件を if 節で示します。

練習

only executes if を使って条件文を完成させてください:The shutdown command ____ the temperature rises above 40 degrees.

答えを見る

only executes if

And so now,

4:12

これで、

whether there's one or three or any odd number of people in the room, 文法

4:12

部屋の人数が1人でも、3人でも、あるいはどんな奇数でも、

this algorithm will now count them.

4:16

このアルゴリズムで数えられるようになりました。

文法

whether there's one or three or any odd number:すべての選択肢を含める

whether there's one or three or any odd number... では、whether が複数の選択肢を導入し、or が出るたびに別のケースが加わります。主節では、どの場合も結果が同じだと述べています。つまり、人数がどの奇数でもアルゴリズムは数えられます。 ここで whether は yes か no で答える質問を作っているのではありません。one と three は例で、any odd number が範囲を奇数全体へ広げています。全体の意味は「どの場合に当てはまっても」です。

練習

ここで whether there's one or three or any odd number はどのような意味ですか?

  1. 話し手は部屋に何人いるかを質問しています。
  2. アルゴリズムは、人数がどの奇数の場合でも数えられます。
  3. アルゴリズムは、ちょうど1人か3人のときだけ数えます。
答えを見る

アルゴリズムは、人数がどの奇数の場合でも数えられます。

Can we do even better?

4:18

もっと良くできるでしょうか?

Well, we could count in threes or fours or even fives and tens, フレーズ

4:19

そうですね、3人ずつ、4人ずつ、あるいは5人や10人ずつ数えることもできますが、

フレーズ

count in threes or fours:3つずつ、または4つずつ数える

count in threes or fours は、3つずつ、または4つずつのまとまりや間隔で数えるという意味です。たとえば、3ずつ数えると 3、6、9、12 になります。 形は count in + 複数形の数詞です。例として count in twos、count in fives、count in tens があります。ここでの in は場所ではなく、1グループの大きさや数える間隔を表します。

練習

3ずつ増える数え方になるように、in + 複数形の数詞で文を完成させてください:Let's count ____: three, six, nine, twelve.

答えを見る

in threes

but beyond that it's going to get a little bit difficult to point. 解説

4:23

それを超えると、指さすのが少し難しくなります。

フレーズ

beyond that:述べた限界を超えて

この文の beyond that は、「直前に述べた範囲や限界を超えて」という意味です。that は前に話した、より大きな数え方の間隔を指し、beyond は、それより先に進むと指さすことが難しくなると示しています。 beyond は物理的な空間だけを表す語ではありません。応用できる beyond that という形は、「その数字、程度、段階、限界を超えたら」という意味でよく使われます。

練習

“The first ten pages are easy, but beyond that the material gets harder,” という文で、beyond that はどういう意味ですか?

  1. 本の後ろ側
  2. 最初の10ページより後
  3. 10ページに達する前
答えを見る

最初の10ページより後

文法

get a little bit difficult to point:指さすのが少し難しくなる

ここでの get は「〜になる」という意味で、簡単にできていた動作がだんだん難しくなる変化を表します。a little bit は difficult の強さを和らげるため、「少し難しい」のであって「まったくできない」という意味ではありません。 to point という不定詞が、難しくなる動作を示します。この文の point は「人を一人ずつ指さす」という動詞で、「要点」や「点数」という名詞ではありません。

練習

「少し難しくなる」という意味の目標表現を使って文を完成させてください:When the directions include too many steps, they ____ follow.

答えを見る

get a little bit difficult to

At the end of the day, 慣用句

4:26

結局のところ、

whether executed by computers or humans, 文法

4:27

コンピュータが実行するにせよ、人間が実行するにせよ、

algorithms are just a set of instructions with which to solve problems. 文法

4:30

アルゴリズムとは問題を解決するための一連の命令にすぎません。

慣用句

At the end of the day:最終的な結論を導く

At the end of the day は「細部をすべて考えたうえで」「結局のところ」という意味の慣用句です。補足的な説明から中心となる結論へ移る合図で、夕方の時刻を指しているわけではありません。 ここでは、後に続く内容を覚えておくべき中心的な定義として示しています。コンピューターが実行しても人が実行しても、アルゴリズムは問題を解くための指示です。

練習

実際的な結論を導く慣用句で文を完成させてください:____, the team needs a plan everyone can follow.

答えを見る

At the end of the day

文法

whether executed by computers or humans:短縮された受け身の whether 節

完全な形は whether algorithms are executed by computers or humans です。主節から補えるため、繰り返しになる主語 algorithms と受け身に必要な be 動詞が省略されています。 この短縮節は、「2つの実行者のどちらが行っても関係ない」という条件を加えます。algorithms を修飾し、主節の内容を導くもので、独立した別の主節ではありません。

練習

例文の whether executed by computers or humans を最も正確に完全な形にしたものはどれですか。

  1. whether they execute computers or humans
  2. whether they are executed by computers or humans
  3. whether computers are executed by humans
答えを見る

whether they are executed by computers or humans

文法

with which to solve problems:手段を改まって表す構文

with which to solve problems は a set of instructions を修飾します。which はその一連の指示を指し、with は問題を解くための手段として指示を使うことを示します。 「名詞 + 前置詞 + which + to不定詞」は、可能な目的や用途を簡潔かつ改まった形で表す構文です。ここでは「誰かが問題を解くために使える一連の指示」という意味であり、instructions が solve の文法上の動作主になるわけではありません。

練習

a set of instructions with which to solve problems を最も正確に言い換えたものはどれですか。

  1. a set of instructions that someone can use to solve problems
  2. a set of instructions that solve every problem by themselves
  3. a set of instructions that someone must solve
答えを見る

a set of instructions that someone can use to solve problems

These were just three.

4:33

これらは単なる3つの例です。

What problem would you solve with an algorithm? 意図と語調

4:35

あなたはアルゴリズムでどんな問題を解決しますか?

意図と語調

What problem would you solve...?:仮定の選択を考えてもらう質問

What problem would you solve...? は、聞き手に仮の選択を想像させ、ある考えを自分の状況に結び付けてもらうための自由回答式の質問です。正解が一つに決まっている質問ではありません。 ここでの would は、もしアルゴリズムを使えるなら、どの問題を解決することを選ぶかという仮定の選択を示します。この質問では過去を表しません。

練習

What problem would you solve with an algorithm? の would は主にどのような働きをしていますか。

  1. 聞き手に可能な選択を想像してもらう。
  2. 聞き手に特定の問題を解決するよう命令する。
  3. 過去にすでに解決した問題について尋ねる。
答えを見る

聞き手に可能な選択を想像してもらう。