プログラミング関連用語集
この記事では、talosのプログラミング教室(2020年3月28日以降)で出てきたプログラミング関連用語の意味をまとめてあります。
随時追加します。
- A
- B
- C
- D
- E
- F
- G
- H
- I
- J
- K
- L
- M
- N
- O
- P
- Q
- R
- S
- T
- U
- V
- W
- X
- Y
- Z
- あ
- い
- う
- え
- お
- か
- き
- く
- け
- こ
- さ
- し
- す
- せ
- そ
- た
- ち
- つ
- て
- と
- な
- に
- ぬ
- ね
- の
- は
- ひ
- ふ
- へ
- ほ
- ま
- み
- む
- め
- も
- や
- ゆ
- よ
- ら
- り
- る
- れ
- ろ
- わ
A
B
C
D
E
F
G
H
J
K
L
M
N
O
P
Q
R
S
V
W
X
Y
Z
あ
う
ウェルノウンポート
ポート番号のうち、すでに予約されている番号。0番から1023番まで。
え
お
オブジェクト
データと手続きをひとまとめにしたもの。インスタンスと同義として使われることもある。
き
こ
コード
プログラムのこと。ソースコードとも。
せ
制御文
プログラムの処理を制御する文。多くのプログラミング言語で「if」や「for」などがある。
そ
ソケット
ネットワークを実装するための機能。
ソフトウェア
コンピュータを動作させるためのプログラムの総称。
つ
と
な
に
ぬ
ね
の
は
配列
データ構造の一種。複数のデータを共通の名前の変数に記憶させることができる。
パケット
通信における情報の伝送単位。
へ
ほ
ポート番号
通信するサービスを指定するための番号。
み
む
め
メソッド
メンバ関数と同義。
や
ゆ
よ
ら
ライブラリ
プログラムを再利用できるようにしたもの。
り
る
れ
例外処理
プログラムの実行中に発生した問題に対する処理。これにより、問題の発生による異常終了を避けることができる。
わ
はじめてのJava ~Hello World編~
今回はJavaでHello Worldを実行していきます。
この記事はオブジェクト指向を学んだことを前提として話します。
まだ学んでいない方はこちらの記事を読んでみてください。
(Rubyを使ったことがなくても大丈夫です)
基礎編
コードを書く
Javaではファイル名とその中で宣言するクラス名を同じにします。
またJavaの命名規則ではクラス名の一文字目を大文字にします。
それらを踏まえて、「Sample1.java」というファイルを作りましょう。
class Sample1 { public static void main(String args[]) { System.out.println("Hello World!"); } }
1行目でクラス名の記述をしています。
2行目はmain()メソッドの宣言をしています。
多くのプログラミング言語ではmainから開始されますが、Javaも同様にmain()メソッドから開始されます。
publicはアクセス指定子と呼ばれ、クラスの外部からこのコードを呼び出せるように指定しています。
staticはこのメソッドがクラスのインスタンスではないことを表しています。
そしてvoidはこのメソッドの戻り値がないことを表しています。
()の中はmain()メソッドの引数で、String型(=文字列)を引数としてとることを表しています。
args[]はString型の配列で、コマンドライン引数の値が代入されます。
コマンドライン引数についてはこの後説明します。
3行目は標準出力を行っています。
文字列は「””」で挟みます。
また「;」を忘れないようにしましょう。
応用編
新しく「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!」をコマンドライン引数といいます。
【基本・応用情報技術者】MIPSを用いた計算
今回は基本情報技術者試験と応用情報技術者試験で頻出の「MIPSを用いた計算」の解説をします。
よく出てくる上に簡単で重要な得点源になるので、解き方を覚えておきましょう。
MIPSとは
MIPSは Million Instructions Per Second の略で、直訳すると「1秒につき〇百万回の命令」となります。
MIPSは単位として扱われ、100MIPS(=1秒につき1億回の命令)のように書きます。
MIPSの意味を覚えておくだけで問題を解くのがかなり楽になるので、必ず覚えておきましょう。
また、Millionはということも併せて覚えておきましょう。
MIPSを用いた計算問題の解き方
クロック周波数が1GHz、CPIが10のCPUにおけるMIPSを求めるとします。
クロック周波数は1秒間に発生するクロック数を表します。
G(ギガ)はなので、1GHzは[クロック/秒]と表すことができます。
一方、CPIは Cycle Per Instructions の略で、直訳すると「1命令につき〇サイクル」となります。
サイクルはクロックのことなので、CPIが10であるということは、10[クロック/命令]と表すことができます。
求めるMIPSの単位はわかりやすい単位に直すと[M命令/秒]となります。
なお、「M」はメガのMです。
MillionのMとってもOKです。
どちらもを意味しています。
それでは、まず Instructions Per Seconds(命令/秒)を求めてあげましょう。
先程単位をそろえたので、クロック周波数/CPIで求まることがわかります。
これを計算すると、
[命令/秒]
となります。
最後に求められているのはMIPSなので Million()で割ってあげると、
[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人になりました。
やはりサービス業での内定取り消しが多いみたいです。
新型コロナウイルスの影響で内定取り消しは正当?
東京都のホームページには以下のように書かれています。
取消しが正当と認められる事由としては、
https://www.hataraku.metro.tokyo.jp/sodan/sodan/qa/qa01_01.html
ア 学校を卒業できなかった。必要な資格を取れなかった。
イ 心身の病気その他の理由により勤務できない。
ウ 履歴書や面接時の発言に虚偽があり、それを知らずに内定を出したが、内容が採否判断の重要な要素である場合
などで内定の評価に質的な変更を生じた場合に限られるべきとされています。また、経営悪化を事由にする取消しは、それを予測しなかった会社にも責任があるとされ一律には認められていません。
内定取消しについての判例は、「内定当時知ることができず、また知ることが期待できない事実で、これを理由に内定を取り消すことが社会通念上相当と認められるものに限られる。」としています。
つまり、経営が悪化したことを理由とする解雇は簡単には認められません。
あらゆる手を尽くして解雇するしかもう手がない場合にしか行えないので、しっかり覚えておきましょう。
スポンサーリンク
内定を取り消された場合は
【新規学卒者の皆様へ】
— 厚生労働省 (@MHLWitter) March 13, 2020
内定取消しの連絡を受けた場合は、最寄りのハローワークにご相談ください。内定取消しの回避に向けた事業主への助言指導や、今年3月に卒業予定の皆様向けの就職支援も行っています。#内定取り消し #まだ間に合う4月入社 #20卒
■新卒応援ハローワークhttps://t.co/jxIyXgA1s2
ハローワークに相談すれば内定取り消しを回避できるかもしれません。
また大学のキャリアセンターにも必ず相談しましょう。
ちなみに内定が取り消される際には、企業は労働基準法第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)
返金の決定が公表されました。
返金方法は未定ですが、過去の事例からの予測をこちらの記事に書いています。
よかったら見てください。
ITパスポートの場合
ITパスポートの試験日は変更できるので、どうしても3月中に受ける必要がある方以外は変更するように、とのことでした。
IPAのキャンセルポリシー
申込まれた試験を受験されない場合でも、受理した受験手数料は理由のいかんにかかわらず返還できません。また、次回以降の試験への充当もできません。
IPA 独立行政法人 情報処理推進機構:情報処理技術者試験:よくある質問
よくある質問には、理由があろうとも返金はしないと書かれています。
また次回以降の試験への充当もできないとのことでした。
これは非常事態でも同じなのでしょうか?
過去の特例
非常事態の場合は上記のキャンセルポリシーは適用されないようです。
過去の特例を見てみましょう。
令和元年度秋期
台風第19号によって一部の方が受験できませんでした。
一部の受験地の方と被災した方には返金か次回受験への振替の対応が行われました、
中止や延期の場合の対応は?
これまでの非常事態への対応を見ると延期になる可能性が高いのではないかと思います。
そうなった場合は受験できなくなる方もいるので、返金や次回受験への振替もしてくれるのではないでしょうか。
いずれの時も返金や振替には手続きが必要でした。
忘れないようにしましょう。
【基本・応用情報技術者】M/M/1モデルにおける計算
こんにちは。talosです。
今回は応用情報技術者試験で頻出の「M/M/1モデルにおける計算」を解説します。
基本情報技術者試験でもシラバスには入っているので出るかもしれません。
(ざっと調べたところ出たことはなさそう)
難しいですが、覚えてしまえば点を取りやすい分野なので学習しておきましょう。
M/M/1モデルとは
M/M/1モデルは待ち行列理論において最も基本的なモデルです。
そもそもこの書き方はケンドール記法と呼ばれ、「到着の分布/サービス時間の分布/窓口の数」というように書きます。
到着の分布におけるMはポアソン分布で、到着がランダムであることを表しています。
サービス時間の分布におけるMは指数分布で、こちらもサービス時間がランダムであることを表しています。
窓口数が1であるということは、行列は1つであることを表しています。
実際の事例に当てはめて考えてみます。
買い物をするときレジに並びます。
M/M/1モデルに従っているとすると、「次にレジに並ぶ人が来る間隔はばらばら」、「自分のお会計の番が来てから終わるまでの時間は人それぞれ」、「レジとその行列は1つである」ということになります。
M/M/1モデルにおける計算
平均到着率 、平均到着(時間)間隔
平均到着率は単位時間あたりに到着する客の数、平均到着間隔は客が到着する時間間隔の平均です。
平均到着率と平均到着間隔はぞれぞれお互いの逆数で表せます。
平均サービス率 、平均サービス時間(平均処理時間)
平均サービス率は単位時間あたりに窓口がサービスを提供できる件数、平均サービス時間は1人の客に対するサービスの平均所要時間です。
平均サービス率と平均サービス時間はそれぞれお互いの逆数で表せます。
(窓口)利用率
窓口が利用されている割合です。
様々な形で表せますが、割合なので同じ単位を持つもの同士の割り算である が一番覚えやすいと思います。
直感的に覚えるのは難しいので公式として覚えましょう。
平均待ち時間
待ち行列に並んでからサービスが開始されるまでの時間の平均です。
イメージとしてはは行列に並んでいる客の数+サービス中の客の数です。
客の数に1人あたりのお会計の平均時間(=平均サービス時間)をかけるとだいたいの待ち時間がわかりますよね?
例題
あるレジでは1分あたりにレジに並ぶ客数の平均は1人、1人あたりのお会計にかかる時間の平均は45秒である。
(1) 平均到着間隔(秒)を求めよ。
(2) 利用率を求めよ。
(3) 平均待ち時間(秒)を求めよ。
(4) 平均応答時間(秒)を求めよ。
【基本・応用情報技術者】アローダイアグラム(PERT図)のクリティカルパスを求める
今回は基本情報技術者試験と応用情報技術者試験で頻出の「クリティカルパスの求め方」を解説します。
一見難しそうですが、覚えてしまえば簡単です。
高確率で出題されるので求め方を覚えておきましょう。
PERT
PERT(Program Evaluation and Review Technique)はプロジェクトの工程管理を行う手法です。
このときに使用される図をアローダイアグラムまたはPERT図といいます。
また、アローダイアグラム上における作業日数に余裕がない工程を繋いだ経路をクリティカルパスといいます。
クリティカルパスの求め方
アローダイアグラムの読み方
上のようなアローダイアグラムのクリティカルパスを求めます。
実線の矢印は作業で今回は作業A~Gがあります。
矢印の近くにある数値は工数、つまり作業にかかる時間です。
次に、①~⑥は結合点と呼ばれ、作業と作業の境目を表します。
この図では結合点①からプロジェクトを開始し、作業Aが終わったら作業Bと作業Dを開始できます。
ここまでは理解できたでしょうか。
ここからが知らないと間違えてしまう部分です。
点線の矢印はダミー作業といいます。
ダミー作業は実際には作業しないため工数は0ですが、ダミー作業を終えないと次の作業を開始できません。
この図で言うと、結合点⑤はダミー作業がなければ作業Dを終えた時点で作業Eを開始できますが、ダミー作業があるため作業Bと作業Dの両方を終えないと作業Eを開始できないのです。
これを忘れると計算がずれるので注意しましょう。
最早結合点時刻を求める
次は最早結合点時刻を求めていきます。
最早結合点時刻は次の作業を最も早く開始できる時刻です。
プロジェクト開始時点では0とし、プロジェクト終了まで各作業の工数を加算していくことで求まります。
結合点①における最早結合点時刻は0、結合点②では2、結合点③では6ということになります。
ここで注意しなくてはいけないのは、複数の矢印が入ってくる結合点の最早結合点時刻は最も大きい値になるということです。
例えば結合点⑤に入ってくる矢印はダミー作業と作業Dがあります。
結合点②における最早結合点時刻は2なので作業Dを終えた時の時刻は2+1=3ですが、ダミー作業があるので作業Bを終えてからでないと作業Eを開始できません。
したがって次の作業を最も早く開始できるのは結合点③と同じく6になります。
このように最早結合点時刻を求めていくと、下のようになります。
最遅結合点時刻を求める
続いて最遅結合点時刻を求めていきます。
最遅結合点時刻は次の作業を遅くてもこの時刻までには開始しなくてはならないという時刻です。
プロジェクト終了時点の最遅結合点時刻(最早結合点時刻と同じ)から工数を減算していくことで求まります。
結合点⑦における最遅結合点時刻は14、結合点⑥では9、結合点⑤では6、結合点④では11ということになります。
最遅結合点時刻の場合は矢印が複数出ていく結合点では最も小さい値を選びます。
結合点③は結合点④と結合点⑤に矢印が出ていきます。
結合点④の最遅結合点時刻11から作業Cの工数2を引くと9になりますが、結合点⑤の最遅結合点時刻6からダミー作業の工数0を引くと6になるため、結合点③の最遅結合点時刻は6になります。
このようにすべての最遅結合点時刻を求めると以下のようになります。
スポンサーリンク