talosのプログラミング教室

プログラミング関連用語集

この記事では、talosのプログラミング教室(2020年3月28日以降)で出てきたプログラミング関連用語の意味をまとめてあります。

随時追加します。

A

B

C

D

E

F

G

H

I

IPアドレス

パケットを送受信する際に使用する番号。

J

K

L

M

N

O

P

Q

R

S

T

TCP/IP

インターネットプロトコルの一つ。

U

Unicode

文字コードの規格の1つ。

V

W

X

Y

Z

アクセス指定子

外部からクラスメンバ関数及びメンバ変数へのアクセスを制限したりすることができる。多くのプログラミング言語でpublic、private、protectedなどがあるが、言語によって制限できる範囲は異なるので注意。

インクリメント

変数の値を+1する演算。(cf.デクリメント)

インスタンス

クラスを実体化したもの。

インスタンスメソッド

インスタンスに紐づけられたメソッド

インタフェース

抽象メソッドの集合。

ウェルノウンポート

ポート番号のうち、すでに予約されている番号。0番から1023番まで。

オーバーライド

スーパークラスメソッドサブクラスで再定義すること。

オーバーロード

同じ名前で引数が異なるメソッドを複数定義すること。

オブジェクト

データと手続きをひとまとめにしたもの。インスタンスと同義として使われることもある。

オブジェクト指向

オブジェクトの組み合わせでシステムを構築する手法。

仮引数

関数を定義する際に使用する引数。(cf. 実引数)

関係演算子

2つの値の関係を判定する演算子

関数

入力を基に記述された処理を行い、値を出力するもの。

クライアント

コンピュータネットワーキングにおける、コンピュータからサービスを受ける側。(cf.サーバ)

クラス

オブジェクトを作成する際のひな形。

継承

あるクラスの状態と動作を別のクラスが引き継ぐこと。

コード

プログラムのこと。ソースコードとも。

コマンドライン

コマンドプロンプトなどにおける入力行。

コメントアウト

コードの一部をコメント化すること。コンパイラはコメント化した部分を読み飛ばす。

コンストラク

インスタンス生成時に実行されるメソッド。初期化などの処理を行う。

コンパイラ

コンパイルするソフトウェア。

コンパイル

プログラミング言語で記述されたコードを、コンピュータが実行可能な形式に変換すること。

サーバ

コンピュータネットワーキングにおける、サービスを提供するコンピュータ。(cf.クライアント)

サブクラス

継承する側のクラス。(cf.スーパークラス)

算術演算子

計算で用いられる記号。+や-など。

実引数

関数を呼び出す際に使用する引数。(cf. 仮引数)

条件分岐

条件が満たされたかどうかによって、次にどのような処理を行うか変化させること。

スレッド

プログラム実行における最小単位。

制御文

プログラムの処理を制御する文。多くのプログラミング言語で「if」や「for」などがある。

ソケット

ネットワークを実装するための機能。

ソフトウェア

コンピュータを動作させるためのプログラムの総称。

多重継承

複数のクラス継承すること。

抽象クラス

サブクラスによって実装される機能を宣言するためのクラス。抽象クラス自体のインスタンスは作れない。

抽象メソッド

実装を持たないメソッド

ディレクト

WindowsMacでいうところのフォルダ。

データ型

データの種類。整数型や浮動小数点型などがある。

デクリメント

変数の値を-1する演算。(cf.インクリメント)

デッドロック

複数のスレッドがお互いにロックの開放を待ち続けてしまい、処理が進まなくなること。

配列

データ構造の一種。複数のデータを共通の名前の変数に記憶させることができる。

パケット

通信における情報の伝送単位。

引数

関数メソッドなどへの入力。

標準出力

プログラムが標準的に行う出力。

プロセス

プログラムの実行単位。複数のスレッドから成る場合もある。

プロトコル

通信における決まり事。

ポート番号

通信するサービスを指定するための番号。

マルチスレッド

プロセスを複数のスレッドに分けて並行処理すること。

命名規則

プログラムの変数などに名前を付けるための規則。プログラミング言語によって異なる。

メンバ関数

オブジェクト内に定義された操作や処理のこと。

メンバ変数

クラス内かつメソッド外に定義された変数。

メソッド

メンバ関数と同義。

文字コード

文字や数字、記号を番号で表現する手法。

戻り値

関数メソッドなどが終了する際に、呼び出し元に対して返す値。返り値とも。

ライブラリ

プログラムを再利用できるようにしたもの。

例外処理

プログラムの実行中に発生した問題に対する処理。これにより、問題の発生による異常終了を避けることができる。

ローカルホスト

自分自身を示すIPアドレス127.0.0.1で指定できる。

はじめてのJava ~Hello World編~

f:id:talosta:20200328175524p:plain
今回はJavaHello Worldを実行していきます。

この記事はオブジェクト指向を学んだことを前提として話します。

まだ学んでいない方はこちらの記事を読んでみてください。

(Rubyを使ったことがなくても大丈夫です)

talosta.hatenablog.com

基礎編

コードを書く

Javaではファイル名とその中で宣言するクラス名を同じにします。

またJava命名規則ではクラス名の一文字目を大文字にします。

それらを踏まえて、「Sample1.java」というファイルを作りましょう。

Sample1.javaに以下のようなコードを書きます。

class Sample1 {
    public static void main(String args[]) {
        System.out.println("Hello World!");
    }
}

Javaではすべての処理がクラス内に記述されます。

1行目でクラス名の記述をしています。

2行目はmain()メソッドの宣言をしています。

多くのプログラミング言語ではmainから開始されますが、Javaも同様にmain()メソッドから開始されます。

publicはアクセス指定子と呼ばれ、クラスの外部からこのコードを呼び出せるように指定しています。

staticはこのメソッドクラスインスタンスではないことを表しています。

そしてvoidはこのメソッド戻り値がないことを表しています。

()の中はmain()メソッドの引数で、String(=文字列)を引数としてとることを表しています。

args[]はString配列で、コマンドライン引数の値が代入されます。

コマンドライン引数についてはこの後説明します。

3行目は標準出力を行っています。

文字列は「””」で挟みます。

また「;」を忘れないようにしましょう。

コードを実行する

コードを実行する前にコンパイルをします。

先程のコードを保存したら、コマンドプロンプトでその保存したディレクトリに移動してください。

移動したら次のコマンドを実行してください。

javac Sample1.java

エラーが出たらなにか間違っている可能性があります。

見直してみましょう。

エラーが出なければコンパイルは完了です。

次に下のコマンドを実行してください。

java Sample1

Hello World!」と出力されたでしょうか?

応用編

新しく「Sample2.java」というファイルを作り、以下のコードを書いてみてください。

class Sample2 {
    public static void main(String args[]) {
        System.out.println(args[0] + " " + args[1]);
    }
}

3行目の()内が「"Hello World!"」から「args[0] + " " + args[1]」になっています。

これはコマンドライン引数の0番目と1番目の間にスペースを入れて出力しようとしています。

文字列同士は+演算子で結合することができます。


それでは先程同様コンパイルし、実行します。

実行の際は下記のコマンドで実行してください。

java Sample2 Hello World!

すると先程同様「Hello World!」と出力されると思います。

これは「java Sample2」の後の「Hello」と「World!」がそれぞれargs[0]とargs[1]に代入され、それを出力しているからです。

「Hello」と「World!」をコマンドライン引数といいます。

おわりに

今回はJavaHello Worldを行いました。

次回はJavaの基礎を説明します。

【基本・応用情報技術者】MIPSを用いた計算

今回は基本情報技術者試験応用情報技術者試験で頻出の「MIPSを用いた計算」の解説をします。

よく出てくる上に簡単で重要な得点源になるので、解き方を覚えておきましょう。

MIPSとは

MIPSは Million Instructions Per Second の略で、直訳すると「1秒につき〇百万回の命令」となります。

MIPSは単位として扱われ、100MIPS(=1秒につき1億回の命令)のように書きます。

MIPSの意味を覚えておくだけで問題を解くのがかなり楽になるので、必ず覚えておきましょう。

また、Millionは10^6ということも併せて覚えておきましょう。

MIPSを用いた計算問題の解き方

クロック周波数が1GHz、CPIが10のCPUにおけるMIPSを求めるとします。

クロック周波数は1秒間に発生するクロック数を表します。

G(ギガ)は10^9なので、1GHzは1×10^9[クロック/秒]と表すことができます。


一方、CPIは Cycle Per Instructions の略で、直訳すると「1命令につき〇サイクル」となります。

サイクルはクロックのことなので、CPIが10であるということは、10[クロック/命令]と表すことができます。


求めるMIPSの単位はわかりやすい単位に直すと[M命令/秒]となります。

なお、「M」はメガのMです。

MillionのMとってもOKです。

どちらも10^6を意味しています。


それでは、まず Instructions Per Seconds(命令/秒)を求めてあげましょう。

先程単位をそろえたので、クロック周波数/CPIで求まることがわかります。

これを計算すると、

\frac{1×10^9}{10}=1×10^8[命令/秒]

となります。

最後に求められているのはMIPSなので Million(10^6)で割ってあげると、

\frac{1×10^8}{10^6}=100[M命令/秒]

となります。

MIPSをM命令/秒に変えたのと反対にM命令/秒をMIPSに変えてあげると、答えは100MIPSということがわかります。

おわりに

今回はMIPSの計算の解き方を解説しました。

単位に着目することで、簡単に計算ができたのではないかと思います。

この方法は多くの計算問題で有効なので、計算問題が苦手という方は単位に着目して計算してみてください。

新型コロナウイルスの影響で内定取り消しはあり?

こんにちは。talosです。

新型コロナウイルスが猛威を振るい、社会のあらゆるところに影響を与えています。

今年就活の学生はかわいそうだなぁ、と思っていたところTwitterである噂が。

「コロナのせいで内定取り消された」


えっ!!!


これは他人事ではないと思いいろいろ調べてみました。

新型コロナウイルスの影響による内定取り消しの件数は?

調べてみたところ、信憑性のある情報は1件だけでした。

https://www.chunichi.co.jp/article/feature/coronavirus/list/CK2020031402000208.htmlwww.chunichi.co.jp

Twitterでは内定を取り消されたという情報が複数件ありましたが、まだ正式な発表は1件だけなため真偽は不明です。

正式な発表があり次第追記します。

追記(2020年3月21日)

13社21人になりました。

やはりサービス業での内定取り消しが多いみたいです。

www.asahi.com

新型コロナウイルスの影響で内定取り消しは正当?

東京都のホームページには以下のように書かれています。

取消しが正当と認められる事由としては、
ア 学校を卒業できなかった。必要な資格を取れなかった。
イ 心身の病気その他の理由により勤務できない。
ウ 履歴書や面接時の発言に虚偽があり、それを知らずに内定を出したが、内容が採否判断の重要な要素である場合
などで内定の評価に質的な変更を生じた場合に限られるべきとされています。また、経営悪化を事由にする取消しは、それを予測しなかった会社にも責任があるとされ一律には認められていません。
内定取消しについての判例は、「内定当時知ることができず、また知ることが期待できない事実で、これを理由に内定を取り消すことが社会通念上相当と認められるものに限られる。」としています。

https://www.hataraku.metro.tokyo.jp/sodan/sodan/qa/qa01_01.html

つまり、経営が悪化したことを理由とする解雇は簡単には認められません

あらゆる手を尽くして解雇するしかもう手がない場合にしか行えないので、しっかり覚えておきましょう。


スポンサーリンク



内定を取り消された場合は

ハローワークに相談すれば内定取り消しを回避できるかもしれません。

また大学のキャリアセンターにも必ず相談しましょう。


ちなみに内定が取り消される際には、企業は労働基準法第20条と第26条に抵触しないようにしなければいけません。

第20条は解雇は30日前までには予告しなくてはならない、しなかったら30日分以上の平均賃金を支払わなければならない

第26条は休業期間中、平均賃金の60%以上の手当を支払わなければならない

というものです。

ただし、20条は災事変その他やむを得ない事由のために事業の継続が不可能となった場合は当てはまらないので、今回は当てはまらないかもしれません。

また、26条は「使用者の責に帰すべき事由による休業の場合は」とありますが、今回の件は当てはまるのしょうか。。。

知っている方いたら教えてください。

政府の対応

厚生労働省のホームページには20卒(2019年度卒)への対応として、以下のように書かれています。

(1)採用内定の取消しを防止するため、最大限の経営努力を行う等あらゆる手段を講じること。

(2)やむを得ない事情により採用内定の取消し又は入職時期の繰り下げを行う場合には、対象者の就職先の確保について最大限の努力を行うとともに、対象者からの補償等の要求には誠意を持って対応すること。

新型コロナウイルス感染症への対応を踏まえた2020年度卒業・修了予定者等の就職・採用活動及び2019年度卒業・修了予定等の内定者への特段の配慮に関する要請について|内閣官房ホームページ

内定取り消しが絶対禁止ではないものの、なるべくしないよう経団連等に要請したようです。

また、やむを得ず取り消した場合でも、補償要求があった場合には誠意を持って対応することを求めています。


3月13日の記者会見で加藤勝信厚生労働大臣は「合理的な理由を欠き、社会通念上相当と認められない内定取り消しは無効となり、通常の解雇と一緒だ」と述べていることから、企業もそう簡単には内定取り消しをできなくなったのではないでしょうか。

おわりに

内定取り消しは労働者だけでなく、会社側も社会からのイメージ悪化などのデメリットがあります。

そう簡単には内定取り消しはできません。

今は心配せずにどーんと構えましょう。

また、それでも内定取り消ししてくる会社は相当経営が悪いと見てよいでしょう。

そのまま留まっても安い給料で働くことになるかもしれないので、(貰うもの貰って)さっぱり忘れるのが吉です。

中止?延期?令和2年度春期情報処理技術者試験はどうなる?

こんにちは。talosです。

今年も情報処理技術者試験の季節がやって参りました。

新型コロナウイルス感染症パンデミック状態となっていますが、情報処理技術者は予定通り行われるのでしょうか?

また中止になった場合の対応はどうなるのでしょうか?

現時点での状況は?

情報処理技術者試験には
・情報セキュリティマネジメント試験
基本情報技術者試験
応用情報技術者試験
・プロジェクトマネージャ試験
データベーススペシャリスト試験
・エンベデッドシステムスペシャリスト試験
・システム監査技術者試験
が含まれます。ITパスポートについては下で述べています。

現時点(3/21 PM11:00)では予定通り4月19日に実施するとのことです。

中止や延期の場合はIPAのホームページに掲載されるそうなので、できるだけ毎日見た方が良いでしょう。

掲載があった場合にはこの記事にも書きます。

追記(3/24)

情報処理技術者試験は中止になりました。

代替試験の実施については検討中とのことです。

返金の詳細については決まり次第ページに公表するとのことなので、恐らく返金もしてくれるでしょう。

大人しく次回に向けて勉強しておきましょう。

追記(4/10)

返金の決定が公表されました。

返金方法は未定ですが、過去の事例からの予測をこちらの記事に書いています。

よかったら見てください。

talosta.hatenablog.com

ITパスポートの場合

ITパスポートの試験日は変更できるので、どうしても3月中に受ける必要がある方以外は変更するように、とのことでした。

IPAのキャンセルポリシー

申込まれた試験を受験されない場合でも、受理した受験手数料は理由のいかんにかかわらず返還できません。また、次回以降の試験への充当もできません。

IPA 独立行政法人 情報処理推進機構:情報処理技術者試験:よくある質問

よくある質問には、理由があろうとも返金はしないと書かれています。

また次回以降の試験への充当もできないとのことでした。

これは非常事態でも同じなのでしょうか?

過去の特例

非常事態の場合は上記のキャンセルポリシーは適用されないようです。

過去の特例を見てみましょう。

令和元年度秋期

台風第19号によって一部の方が受験できませんでした。

一部の受験地の方と被災した方には返金か次回受験への振替の対応が行われました、

平成28年度春期

熊本地震によって沖縄以外の九州地方での試験が中止になりました。

九州地方の試験地を選んだ方や九州地方に住所がある方の一部には返金や次回受験への振替の対応がありました。

また一部免除の対象者は次回の試験まで延長になりました。

平成23年度春期

東日本大震災によって全地域の試験が延期になりました。

また、返金や次回受験への振替も可能でした。

中止や延期の場合の対応は?

これまでの非常事態への対応を見ると延期になる可能性が高いのではないかと思います。

そうなった場合は受験できなくなる方もいるので、返金や次回受験への振替もしてくれるのではないでしょうか。

いずれの時も返金や振替には手続きが必要でした。

忘れないようにしましょう。

おわりに

現時点では予定通り実施するとのことでしたが、恐らく4/19までには新型コロナウイルス感染症は収まらないでしょう。

過去の対応を見ると延期が濃厚かと思います。

また、その場合には返金や次回受験への振替も可能かと思います。

返金や振替には手続きが必要になるので必ずしてください。


なにか動きがあればこの記事に追記します。


【基本・応用情報技術者】M/M/1モデルにおける計算

こんにちは。talosです。

今回は応用情報技術者試験で頻出の「M/M/1モデルにおける計算」を解説します。

基本情報技術者試験でもシラバスには入っているので出るかもしれません。

(ざっと調べたところ出たことはなさそう)

難しいですが、覚えてしまえば点を取りやすい分野なので学習しておきましょう。

M/M/1モデルとは

M/M/1モデルは待ち行列理論において最も基本的なモデルです。

そもそもこの書き方はケンドール記法と呼ばれ、「到着の分布/サービス時間の分布/窓口の数」というように書きます。

到着の分布におけるMはポアソン分布で、到着がランダムであることを表しています。

サービス時間の分布におけるMは指数分布で、こちらもサービス時間がランダムであることを表しています。

窓口数が1であるということは、行列は1つであることを表しています。


実際の事例に当てはめて考えてみます。

M/M/1モデルの事例

買い物をするときレジに並びます。

M/M/1モデルに従っているとすると、「次にレジに並ぶ人が来る間隔はばらばら」、「自分のお会計の番が来てから終わるまでの時間は人それぞれ」、「レジとその行列は1つである」ということになります。

M/M/1モデルにおける計算

平均到着率 λ 、平均到着(時間)間隔 t_λ

平均到着率は単位時間あたりに到着する客の数、平均到着間隔は客が到着する時間間隔の平均です。

平均到着率と平均到着間隔はぞれぞれお互いの逆数で表せます。

λ=\frac{1}{t_λ}

{t_λ}=\frac{1}{λ}

平均サービス率 μ、平均サービス時間(平均処理時間) t_s

平均サービス率は単位時間あたりに窓口がサービスを提供できる件数、平均サービス時間は1人の客に対するサービスの平均所要時間です。

平均サービス率と平均サービス時間はそれぞれお互いの逆数で表せます。

μ=\frac{1}{t_s}

{t_s}=\frac{1}{μ}

(窓口)利用率 ρ

窓口が利用されている割合です。

様々な形で表せますが、割合なので同じ単位を持つもの同士の割り算である\frac{平均サービス時間}{平均到着間隔} が一番覚えやすいと思います。

直感的に覚えるのは難しいので公式として覚えましょう。

ρ=t_s/t_λ

平均待ち時間 t_w

待ち行列に並んでからサービスが開始されるまでの時間の平均です。

t_w=\frac{ρ}{1-ρ}×t_s

イメージとしては\frac{ρ}{1-ρ}は行列に並んでいる客の数+サービス中の客の数です。

客の数に1人あたりのお会計の平均時間(=平均サービス時間)をかけるとだいたいの待ち時間がわかりますよね?

平均応答時間 t_q

待ち行列に並んでからサービスが終了するまでの時間の平均です。

待ち時間にサービス時間を足すだけなので分かりやすいですね。

t_q=t_w+t_s




それでは例題を解いてみましょう。



スポンサーリンク




例題

あるレジでは1分あたりにレジに並ぶ客数の平均は1人、1人あたりのお会計にかかる時間の平均は45秒である。

(1) 平均到着間隔(秒)を求めよ。

(2) 利用率を求めよ。

(3) 平均待ち時間(秒)を求めよ。

(4) 平均応答時間(秒)を求めよ。














解答と解説

(1)
1分あたりにレジに並ぶ客数の平均は1人なので単位を秒に合わせて計算すると、

60/1=60

よって、正解は60秒。


(2)
利用率は

ρ=t_s/t_λ

で求まります。

問題から平均サービス時間t_s=45秒、(1)から平均到着間隔t_λ=60秒なので、利用率は

ρ=45/60=0.75

よって、正解は0.75。


(3)
平均待ち時間は

t_w=\frac{ρ}{1-ρ}×t_s

で求まります。

利用率ρ=0.75、平均サービス時間t_s=45秒なので、平均待ち時間は

t_w=\frac{0.75}{1-0.75}×45=135

よって、正解は135秒。


(4)
平均応答時間

t_q=t_w+t_s

で求まります。

平均待ち時間t_w=135秒、平均サービス時間t_s=45秒なので、平均応答時間

t_q=135+45=180

よって、正解は180秒。

おわりに

今回はM/M/1モデルの計算について解説しました。

覚えてしまえば点を取りやすく、満点も狙えるのでしっかり復習しておきましょう。

【基本・応用情報技術者】アローダイアグラム(PERT図)のクリティカルパスを求める

今回は基本情報技術者試験応用情報技術者試験で頻出の「クリティカルパスの求め方」を解説します。

一見難しそうですが、覚えてしまえば簡単です。

高確率で出題されるので求め方を覚えておきましょう。

PERT

PERT(Program Evaluation and Review Technique)はプロジェクトの工程管理を行う手法です。

このときに使用される図をアローダイアグラムまたはPERTといいます。

また、アローダイアグラム上における作業日数に余裕がない工程を繋いだ経路をクリティカルパスといいます。

クリティカルパスの求め方

アローダイアグラムの読み方

アローダイアグラム

上のようなアローダイアグラムのクリティカルパスを求めます。

実線の矢印は作業で今回は作業A~Gがあります。

矢印の近くにある数値は工数、つまり作業にかかる時間です。

次に、①~⑥は結合点と呼ばれ、作業と作業の境目を表します。

この図では結合点①からプロジェクトを開始し、作業Aが終わったら作業Bと作業Dを開始できます。

ここまでは理解できたでしょうか。

ここからが知らないと間違えてしまう部分です。

点線の矢印はダミー作業といいます。

ダミー作業は実際には作業しないため工数は0ですが、ダミー作業を終えないと次の作業を開始できません。

この図で言うと、結合点⑤はダミー作業がなければ作業Dを終えた時点で作業Eを開始できますが、ダミー作業があるため作業Bと作業Dの両方を終えないと作業Eを開始できないのです。

これを忘れると計算がずれるので注意しましょう。

最早結合点時刻を求める

次は最早結合点時刻を求めていきます。

最早結合点時刻は次の作業を最も早く開始できる時刻です。

プロジェクト開始時点では0とし、プロジェクト終了まで各作業の工数を加算していくことで求まります。

結合点①における最早結合点時刻は0、結合点②では2、結合点③では6ということになります。

最早結合点時刻の求め方1

ここで注意しなくてはいけないのは、複数の矢印が入ってくる結合点の最早結合点時刻は最も大きい値になるということです。

例えば結合点⑤に入ってくる矢印はダミー作業と作業Dがあります。

結合点②における最早結合点時刻は2なので作業Dを終えた時の時刻は2+1=3ですが、ダミー作業があるので作業Bを終えてからでないと作業Eを開始できません。

したがって次の作業を最も早く開始できるのは結合点③と同じく6になります。

このように最早結合点時刻を求めていくと、下のようになります。

最早結合点時刻の求め方2

最遅結合点時刻を求める

続いて最遅結合点時刻を求めていきます。

最遅結合点時刻は次の作業を遅くてもこの時刻までには開始しなくてはならないという時刻です。

プロジェクト終了時点の最遅結合点時刻(最早結合点時刻と同じ)から工数を減算していくことで求まります。

結合点⑦における最遅結合点時刻は14、結合点⑥では9、結合点⑤では6、結合点④では11ということになります。

最遅結合点時刻の求め方1

最遅結合点時刻の場合は矢印が複数出ていく結合点では最も小さい値を選びます

結合点③は結合点④と結合点⑤に矢印が出ていきます。

結合点④の最遅結合点時刻11から作業Cの工数2を引くと9になりますが、結合点⑤の最遅結合点時刻6からダミー作業の工数0を引くと6になるため、結合点③の最遅結合点時刻は6になります。

このようにすべての最遅結合点時刻を求めると以下のようになります。

最遅結合点時刻の求め方2

スポンサーリンク



クリティカルパスを求める

あとは簡単です。

最早結合点時刻と最遅結合点時刻が同じ結合点を通る経路を見つけます。

ダミー作業も忘れずに含めましょう。

すると、1→2→3→5→6→7がクリティカルパスということがわかります。

クリティカルパス


基本情報技術者試験ではクリティカルパスを求めるところまでですが、応用情報技術者試験では「どの作業に人数をかければ期間を短縮できるか」、「プロジェクトの終了時刻を変えずにある作業の人数を減らし、作業Xの人数を増やすにはどの作業の人数を減らせばよいか」と問われることがあります。

前者ではクリティカルパス上の作業を選べばよし、後者ではクリティカルパス上にない作業を選べばよしです。

おわりに

今回は基本情報技術者試験応用情報技術者試験で頻出のアローダイアグラム(PERT図)のクリティカルパスの求め方を解説しました。

かなりの確率で出題されるのでしっかり覚えておきましょう。