<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>CASL II | 基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</title>
	<atom:link href="https://fenavi.seplus.jp/tag/casl-ii/feed/" rel="self" type="application/rss+xml" />
	<link>https://fenavi.seplus.jp</link>
	<description>基本情報技術者試験を学習する人のためにつくられた専門メディア。250本以上の記事を掲載し、勉強方法や各分野のポイント、過去問解説など、試験に役立つ情報を発信。試験対策書籍を執筆する著者が、はじめて学ぶ人でもわかりやすく解説します。（2023年度からの新制度に対応済み）</description>
	<lastBuildDate>Mon, 22 May 2023 06:54:29 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>
	<item>
		<title>はじめての基本情報で役に立った参考書、サイト、動画をすべてお見せします！</title>
		<link>https://fenavi.seplus.jp/jukenki/interview_with_skk/</link>
		
		<dc:creator><![CDATA[基本情報技術者試験 受験ナビ 編集部]]></dc:creator>
		<pubDate>Thu, 09 Sep 2021 04:30:25 +0000</pubDate>
				<category><![CDATA[CASL II]]></category>
		<category><![CDATA[アルゴリズム]]></category>
		<category><![CDATA[勉強方法]]></category>
		<category><![CDATA[勉強時間]]></category>
		<category><![CDATA[参考書]]></category>
		<guid isPermaLink="false">/?post_type=jukenki&#038;p=5848</guid>

					<description><![CDATA[<p>※この記事は基本情報技術者試験の旧制度（2022年以前）の記事です。 題材となっている「午後問題」は現在の試験制度では出題されません。ご注意くださいませ。 &#160; ブログ、SNS、動画など様々なメディアに情報が溢れ [&#8230;]</p>
<p>The post <a href="https://fenavi.seplus.jp/jukenki/interview_with_skk/">はじめての基本情報で役に立った参考書、サイト、動画をすべてお見せします！</a> first appeared on <a href="https://fenavi.seplus.jp">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></description>
										<content:encoded><![CDATA[<p><small>※<font color="red">この記事は基本情報技術者試験の旧制度（2022年以前）の記事です。<br />
題材となっている「午後問題」は現在の試験制度では出題されません。ご注意くださいませ。</font></small></p>
<p>&nbsp;</p>
<p>ブログ、SNS、動画など様々なメディアに情報が溢れ、基本情報技術者試験の対策方法は、さまざまな方の受験体験から、近しい人の勉強法や勉強時間などを参考にして、自身のやり方を決める時代になりました。</p>
<p>この「受験体験記」では、合否問わず、様々な受験体験をインタビューしています。</p>
<p>今回はプログラミングを学びたいと思って、はじめて基本情報を勉強して高スコアで合格できた 榊 さんに、午後問題の勉強計画や、参考書やサイト、動画など役に立ったコンテンツを全部紹介いただきました！</p>
<p>定番のものもあれば、あまり知られていないものもあり、とても参考になるリストでした！ ぜひご覧ください。</p>
<div class="divider mag_tp50 mag_bt20"></div>
<div class="row valign-wrapper">
<div class="col s3">
    <img decoding="async" class="circle z-depth-1" src="/wordpress/wp-content/uploads/2021/09/icon_skk.jpg" loading="lazy">
  </div>
<div class="col s9 pad_20">
<div class="chip">お話を伺った方</div>
<p class="post-title">榊 蜜柑子 さん <span class="small-text">（仮名）</span></p>
<p class="small-text">大学生で文系専攻。独学で IT を勉強中</p>
</p></div>
</div>
<div class="divider mag_h20"></div>
<style>.comment{background-color:#fafafa;color:#3f51b5;border-radius:10px;padding:1.5em;margin:3em 0;position:relative}.icon{background:url(/wordpress/wp-content/uploads/2021/09/icon_skk-150x150.jpg);background-size:cover;border-radius:50%;height:3em;width:3em;position:absolute;top:-1.5em;left:1em;border:3px solid #fff}.comment p{color:#3f51b5}@media screen and (max-width:600px){dd{margin-left:1em}}</style>
<h2>プログラミングが学びたい！</h2>
<p class="blue-grey-text">―― まったくの未経験から IT を学ぶようになったとのことですが、どういう経緯があったのでしょうか？</p>
<div class="comment">
<div class="icon"></div>
<p>友人がプログラミングをしていると聞いて、話を聞いたり、やっていることや出来たことを見せてもらううちに、自分でもプログラミングがしたくなったんです。
</p></div>
<div class="comment">
<div class="icon"></div>
<p>それで最初は Web ページを書く練習から始めて HTML / CSS を書くようになってきたので、一通り基礎が学べると思い、基本情報を受験することを決めました。
</p></div>
<p class="blue-grey-text">―― それで基本情報を受験されたんですね？</p>
<div class="comment">
<div class="icon"></div>
<p>いえ、いきなり基本情報を受験するより IT パスポートを先に受けた方が良いと言われたので、その前に IT パスポートを受験しました。合格できて、初めて聞く用語が少なくなったんですが、<span class="u">プログラミングが出てこなくて物足りなさがあった</span>んです。</p>
<p>そこで、基本情報ならプログラミングに関する問題が出てきて、また、もしプログラミングなどを仕事にするなら基本情報は持っていた方が良いと思って、受験しようと決めました。
</p></div>
<h2>はじめての午後の攻略法</h2>
<p class="blue-grey-text">―― はじめて基本情報を勉強されていかがでしたか？</p>
<div class="comment">
<div class="icon"></div>
<p>IT パスポートを学んでいたので、覚えることは少なかったです。このため、<span class="u">出題が似通っている午前や情報セキュリティはほとんど勉強していませんでした</span>。</p>
<p>中心に勉強したのは午後のアルゴリズム、プログラミングの必須選択問題、選択問題です。
</p></div>
<p class="blue-grey-text">―― 午後はどのように勉強しようとお考えになったのですか？</p>
<div class="comment">
<div class="icon"></div>
<p>午後の出題形式と配点が変わっていたので、それを参考にしました。アルゴリズムとプログラミングと情報セキュリティで配点の 70 % もあり、このうち情報セキュリティは IT パスポートがだいたいカバーしていたので、アルゴリズムとプログラミングを勉強すればなんとかなるかなという感覚でした。なので、選択分野はそれほど注力していませんでした。
</p></div>
<p class="blue-grey-text">―― 必須選択分野に注力して、選択分野は力を抜いていたと</p>
<div class="comment">
<div class="icon"></div>
<p>はい、選択分野の過去問は一通り解きましたが、特に何度もやりませんでした。その中でもストラテジ系・マネジメント系はあまり得意ではなく、出題される確率も 1/ 3 だったので選択しない・勉強しないと決めて、テクノロジ系を中心に解いていました。ただ解いていると、データベースは好きだなと思ったので SQL は力を入れて勉強しました。
</p></div>
<p class="blue-grey-text">―― では、アルゴリズムとプログラミングはいかがでしたか？</p>
<div class="comment">
<div class="icon"></div>
<p>どちらも難しくて、解けなくて何度も受験するのを辞めようと思ったほどでした。</p>
<p>特にアルゴリズムは苦手すぎて、後回しにしてしまいました。これは初めて受験される方なら、よくハマりそうな罠じゃないかなと。
</p></div>
<p class="blue-grey-text">―― というと、後回しは良くないと</p>
<div class="comment">
<div class="icon"></div>
<p>毎日少しづつでも学習していくことをオススメします。何度もくじけそうになりましたけど、私はやり続けてなんとかなりました。</p>
<p>理解できなくて何回も解いて、答えを覚えてしまうのですが、プログラムの処理の流れと変数の中身の理解を目的にすると、プログラムそのものまでは覚えていないので、何度解いても気にならなかったですね。
</p></div>
<p class="blue-grey-text">―― どれぐらい過去問を解いたのですか？</p>
<div class="comment">
<div class="icon"></div>
<p>新しいものから古いものまで公開してあるものはすべて解きました。他にも本やインターネットの記事に動画、いろいろなものを参考にしながら、どんどんやっていくうちに、理解できるようになって、正解率が上がっていくのは楽しかったですね。
</p></div>
<p class="blue-grey-text">―― 何度もやって苦手が克服できるようになっていったのですね。<br />
一方で、プログラミングについて伺いたいのですが、まず言語は何を選ばれたのでしょうか？</p>
<div class="comment">
<div class="icon"></div>
<p>表計算とアセンブラ ( CASLⅡ) で悩んだのですが、表計算は文字が多いこととプログラミングをしてみたかったので、少しでもプログラミングに近いアセンブラを選びました。 Java と C 言語は難しいと聞いていたのと、構文を理解するのに時間が掛かると思い、やめました。
</p></div>
<p class="blue-grey-text">―― アセンブラは確かに短期間で構文を理解でき、プログラミングですものね。そのアセンブラはどのように勉強していたのですか？</p>
<div class="comment">
<div class="icon"></div>
<p>アセンブラも SQL やアルゴリズムと同じやり方で勉強していて、どう処理されているのか、紙に 1 番目の処理、 2 番目の処理 &#8230; のようにステップごとに書きだして理解していました。 1 問 1 問かなり時間がかかるので、例えば、アルゴリズムだと 1 日 2 時間ぐらいかけてやっていました。
</p></div>
<h2>良かった参考書とサイトと動画、全部挙げてみました</h2>
<p class="blue-grey-text">―― トータルでは勉強時間はどのぐらいになったのでしょうか？</p>
<div class="comment">
<div class="icon"></div>
<p>勉強を開始した 10 月 ～ 1 月までが 1 日 1 時間、 2 月 ～ 5 月は 2 時間、 6 月は 3 時間程度でした。合計すると 450 時間ぐらいになりますね。
</p></div>
<p class="blue-grey-text">―― なるほど &#8230; なかなか時間をかけられたんですね。<br />
続いて、先程、本やインターネット、動画と色々使われていたと仰っていたのですが、どのようなコンテンツを利用されたのですか？</p>
<div class="comment">
<div class="icon"></div>
<p>かなり沢山使ったのですが、全部紹介したほうがよいでしょうか？
</p></div>
<p class="blue-grey-text">―― ええ、ぜひ全部お願いします！</p>
<div class="comment">
<div class="icon"></div>
<p>わかりました。全部挙げてみますね。</p>
<ul>
  <span class="u">午前対策</span></p>
<li><span class="bold">「キタミ式イラストIT塾 基本情報技術者」</span> (技術評論社 刊行 きたみりゅうじ 著)</li>
<p>  <span class="u">午前・午後対策</span></p>
<li>解説付きで過去問が解ける<a href="https://www.fe-siken.com/fekakomon.php" class="bold" rel="noopener" target="_blank">「基本情報技術者試験ドットコム」</a> の過去問道場</li>
<li>アルゴリズム問題や計算問題などの解き方など詳しく教えてくれるサイト <span class="bold">「基本情報技術者試験 受験ナビ」</span> </li>
<p>  <span class="u">アルゴリズム・アセンブラ</span></p>
<li>アルゴリズムの動き方が分かるアプリ<span class="bold">「アルゴリズム図鑑」</span></li>
<li>付録で疑似言語を動画でも教えてくれる参考書、<span class="bold">「うかる！ 基本情報技術者 [午後・アルゴリズム編] 福嶋先生の集中ゼミ」</span> (日本経済新聞出版 刊行 福嶋 宏訓 著) </li>
<li>SQL でオススメの参考書、<span class="bold">「いちばんやさしい SQL 入門教室」</span> (ソーテック社 刊行 矢沢久雄 著)</li>
<li>アセンブラでオススメの参考書、<span class="bold">「情報処理技術者テキスト　プログラミング入門　CASLⅡ」</span> (実教出版 刊行 浅井宗海、岸田徹夫、尾川順子 著)</li>
<li>アセンブラのトレースが書いてあるサイト、 <a href="https://nekosiestr77.xsrv.jp/" class="bold" rel="noopener" target="_blank">「猫先生！？がプログラミングをガリ勉してみた。」</a>    </li>
<li>YouTube で基本情報技術者試験を教えてくれる<a href="https://www.youtube.com/channel/UCZyA0j0zb8S6pCu-qOKQlpA" class="bold" rel="noopener" target="_blank">「文系でもわかる! IT勉強会」</a></li>
</ul>
</div>
<p class="blue-grey-text">―― 受験ナビも挙げていただき、ありがとうございます！定番だけでなく、かなり色々なコンテンツを使っていたんですね。これは参考になります。<br />
では、実際の試験はどうだったのでしょうか？</p>
<div class="comment">
<div class="icon"></div>
<p>2021 年 上期試験で<span class="u">午前と午後をわけて受験</span>して、午前はなんとか通過したもののスコアは悪くて、そこから仕切り直して勉強した午後は自分でも良いスコアで合格できたと思います。</p>
<dl>
<dt>セキュリティ</dt>
<dd>100 % ( 20 点)</dd>
<dt>アルゴリズム</dt>
<dd>100 % ( 25 点)</dd>
<dt>プログラミング（アセンブラ）</dt>
<dd>82 % ( 20.5 点)</dd>
<dt>選択分野 1（データベース）</dt>
<dd>76 % ( 11.4 点)</dd>
<dt>選択分野 2（ソフトウェア設計）</dt>
<dd>73 % ( 10.95 点)</dd>
<dt>合計</dt>
<dd>88 点</dd>
</dl>
</div>
<p class="blue-grey-text">―― 計画通りに、必須分野で合格に必要な点数に達している上に 88 点!!　しかも苦手なアルゴリズムで 100 % とは！ 勉強の成果が出ましたね。おめでとうございます！</p>
<div class="comment">
<div class="icon"></div>
<p>ありがとうございます。
</p></div>
<h2>CBT 試験では午前と午後は別々に受験しよう！</h2>
<p class="blue-grey-text">―― 実際、基本情報を受験してみて、スキルアップやキャリアという点で変化はありましたか？</p>
<div class="comment">
<div class="icon"></div>
<p>基本情報だと体系的に学べるので、その名の通り IT の基本や用語が一通りわかって、これからの勉強や、もしプログラミングの仕事に就いても役に立つように思います。
</p></div>
<p class="blue-grey-text">―― 受験目的であったプログラミングについてはいかがですか？</p>
<div class="comment">
<div class="icon"></div>
<p>最初はプログラミングの処理、分岐や繰り返しとか構造や処理の考え方すら分からなかったのですが、受験後は、言語が違うプログラムを読んでも理解がしやすくなったと思います。
</p></div>
<p class="blue-grey-text">―― しっかりスキルアップに繋がったようでよかったですね。では、最後に受験者へのアドバイスがあればお願いします！</p>
<div class="comment">
<div class="icon"></div>
<p>CBT 試験に変わり午前と午後が別の日に受けられるようになって、とてもラクになりました。紙ではないので問題に直接書き込めないのが少し難点ですが、午前と午後の間の時間を有効活用して、最後まで諦めずに勉強を続けるとよいと思います。
</p></div>
<p class="blue-grey-text">―― 今日はありがとうございました！</p>
<div class="comment">
<div class="icon"></div>
<p>ありがとうございました。
</p></div><p>The post <a href="https://fenavi.seplus.jp/jukenki/interview_with_skk/">はじめての基本情報で役に立った参考書、サイト、動画をすべてお見せします！</a> first appeared on <a href="https://fenavi.seplus.jp">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>こもも さんの学習ログ 2021-06-14 ｜みんなの基本情報学習ログ</title>
		<link>https://fenavi.seplus.jp/study_logs/komomonchan_20210614/</link>
		
		<dc:creator><![CDATA[基本情報技術者試験 受験ナビ 編集部]]></dc:creator>
		<pubDate>Tue, 22 Jun 2021 08:57:00 +0000</pubDate>
				<category><![CDATA[CASL II]]></category>
		<category><![CDATA[ネットワーク]]></category>
		<category><![CDATA[勉強方法]]></category>
		<category><![CDATA[情報セキュリティ]]></category>
		<guid isPermaLink="false">/?post_type=study_logs&#038;p=5479</guid>

					<description><![CDATA[<p>みんなの基本情報学習ログは「受験者 1 人 1 人が勉強していることを毎週毎週 SNS を使って教えてもらおう」というコーナーです。 学習モニターの方にご協力いただき、勉強していることを 「今週の Todo 」 「今週よ [&#8230;]</p>
<p>The post <a href="https://fenavi.seplus.jp/study_logs/komomonchan_20210614/">こもも さんの学習ログ 2021-06-14 ｜みんなの基本情報学習ログ</a> first appeared on <a href="https://fenavi.seplus.jp">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></description>
										<content:encoded><![CDATA[<div class="background c-round">
みんなの基本情報学習ログは「受験者 1 人 1 人が勉強していることを毎週毎週 SNS を使って教えてもらおう」というコーナーです。</p>
<p>学習モニターの方にご協力いただき、勉強していることを</p>
<ul>
<li>「今週の Todo 」</li>
<li>「今週よかったこと」</li>
<li>「今週の学習で難しかったこと」</li>
</ul>
<p>に分けて、毎週ツイートいただいています。
</p></div>
<div class="divider mag_tp60 mag_bt30">
<div class="chip">学習モニターの紹介</div>
</div>
<p><a href="https://twitter.com/komomonchan" rel="noopener" target="_blank"></p>
<div class="row valign-wrapper direction-column-on-small mag_lt00 mag_rt00 mag_bt00 pad_w10">
<div class="col m3 s12 center"><img decoding="async" class="circle avatar" src="/wordpress/wp-content/uploads/2021/05/komomonchan_icon.jpg" loading="lazy"></div>
<div class="col m9 s12 pad_15 blue-grey-text text-darken-2">
<p><span class="personal-name">こもも</span>さん</p>
<p>      社会人 / 学生 (通信制) 情報系専攻中 / 文系出身 / 若手 / IT を初めて勉強中 / 基本情報も初めて勉強中 / 2021 上期試験 受験予定
    </p></div>
</p></div>
<p></a></p>
<div class="divider mag_bt50"></div>
<style>.divider .chip{font-size:.8em;position:absolute;top:-1.5em}.personal-name{font-size:1.1em;font-weight:700;margin-right:.5em;color:#263238;}.divider{overflow:unset;position:relative}.tweet-container{margin:2em auto;display:flex;flex-direction:column;align-items:center;}</style>
<h2>2021-06-14 ～ の学習記録</h2>
<div class="tweet-container">
<blockquote class="twitter-tweet">
<p lang="ja" dir="ltr">今週のTodo<br />・情報セキュリティ<br />・アルゴリズムは難易度普通やる<br />・データベースどういう形になるか考えながら問題を解く<br />・アセンブラ<a href="https://twitter.com/hashtag/%E3%82%8F%E3%81%9F%E3%81%97%E3%81%AE%E5%9F%BA%E6%9C%AC%E6%83%85%E5%A0%B1%E5%AD%A6%E7%BF%92%E8%A8%98%E9%8C%B2?src=hash&amp;ref_src=twsrc%5Etfw">#わたしの基本情報学習記録</a>　<a href="https://twitter.com/hashtag/FE%E5%8F%97%E9%A8%93%E3%83%8A%E3%83%93?src=hash&amp;ref_src=twsrc%5Etfw">#FE受験ナビ</a></p>
<p>&mdash; こもも (@komomonchan) <a href="https://twitter.com/komomonchan/status/1404449311576911873?ref_src=twsrc%5Etfw">June 14, 2021</a></p></blockquote>
<p> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> </p>
<blockquote class="twitter-tweet">
<p lang="ja" dir="ltr">今週のうまくいったこと<br />・情報セキュリティのネットワークがわかるようになってきた。YouTube文系でもわかる!IT勉強部さんのおかげ<br />・アセンブラを猫先生!?がプログラミングをガリ勉してみた。でトレースを答え合わせして結構あってたから嬉しい^^*<a href="https://twitter.com/hashtag/%E3%82%8F%E3%81%9F%E3%81%97%E3%81%AE%E5%9F%BA%E6%9C%AC%E6%83%85%E5%A0%B1%E5%AD%A6%E7%BF%92%E8%A8%98%E9%8C%B2?src=hash&amp;ref_src=twsrc%5Etfw">#わたしの基本情報学習記録</a>　<a href="https://twitter.com/hashtag/FE%E5%8F%97%E9%A8%93%E3%83%8A%E3%83%93?src=hash&amp;ref_src=twsrc%5Etfw">#FE受験ナビ</a></p>
<p>&mdash; こもも (@komomonchan) <a href="https://twitter.com/komomonchan/status/1406601443956588544?ref_src=twsrc%5Etfw">June 20, 2021</a></p></blockquote>
<p> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> </p>
<blockquote class="twitter-tweet">
<p lang="ja" dir="ltr">今週の学習で難しかったこと<br />・時間を気にして解くようにしてるけど、時間足らないよぉ<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f622.png" alt="😢" class="wp-smiley" style="height: 1em; max-height: 1em;" /><br />時間配分考えないと…<br />・難しかったことじゃないけど、ついつい遅くまでやってたら体調を崩しかけた、試験のために遅くならないように気をつけます。<a href="https://twitter.com/hashtag/%E3%82%8F%E3%81%9F%E3%81%97%E3%81%AE%E5%9F%BA%E6%9C%AC%E6%83%85%E5%A0%B1%E5%AD%A6%E7%BF%92%E8%A8%98%E9%8C%B2?src=hash&amp;ref_src=twsrc%5Etfw">#わたしの基本情報学習記録</a>　<a href="https://twitter.com/hashtag/FE%E5%8F%97%E9%A8%93%E3%83%8A%E3%83%93?src=hash&amp;ref_src=twsrc%5Etfw">#FE受験ナビ</a></p>
<p>&mdash; こもも (@komomonchan) <a href="https://twitter.com/komomonchan/status/1406611033901264898?ref_src=twsrc%5Etfw">June 20, 2021</a></p></blockquote>
<p> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</div>
<p>ご協力、ありがとうございました！</p>
<p>勉強の進捗がうまく生まれますように!!</p>
<p>ご覧になられている読者の方もぜひぜひ「いいね」などでリアクションして応援くださいませ!!</p><p>The post <a href="https://fenavi.seplus.jp/study_logs/komomonchan_20210614/">こもも さんの学習ログ 2021-06-14 ｜みんなの基本情報学習ログ</a> first appeared on <a href="https://fenavi.seplus.jp">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>基本情報 プログラミング 言語の選択と学習方法｜午後問題の歩き方</title>
		<link>https://fenavi.seplus.jp/gogo_arukikata/choice_of_programming_languages/</link>
		
		<dc:creator><![CDATA[矢沢 久雄]]></dc:creator>
		<pubDate>Mon, 22 Mar 2021 04:27:00 +0000</pubDate>
				<category><![CDATA[CASL II]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[午後プログラミング言語問題]]></category>
		<category><![CDATA[擬似言語]]></category>
		<category><![CDATA[表計算]]></category>
		<guid isPermaLink="false">/?post_type=gogo_arukikata&#038;p=5234</guid>

					<description><![CDATA[<p>info アルゴリズムとプログラミング問題の対策には、新しい擬似言語にリライトした連載「アルゴリズムとプログラミング問題を解くコツ」がオススメです。 プログラミング言語の特徴と選び方 基本情報技術者試験の午後試験では、「 [&#8230;]</p>
<p>The post <a href="https://fenavi.seplus.jp/gogo_arukikata/choice_of_programming_languages/">基本情報 プログラミング 言語の選択と学習方法｜午後問題の歩き方</a> first appeared on <a href="https://fenavi.seplus.jp">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></description>
										<content:encoded><![CDATA[<div class="background c-round flex">
<p class="mag_rt10 mag_h00"><i class="material-icons blue-text" style="font-size:2.2em">info</i></p>
<p class="blue-grey-text mag_h00">アルゴリズムとプログラミング問題の対策には、新しい擬似言語にリライトした連載<a href="../../patterns_algorithms/" class="bold">「アルゴリズムとプログラミング問題を解くコツ」</a>がオススメです。</p>
</div>
<h2>プログラミング言語の特徴と選び方</h2>
<p>基本情報技術者試験の午後試験では、「 C 言語」「 Java 」「 Python 」「アセンブラ ( CASLⅡ ) 」「表計算」の中から、 1 つを選択しなければなりません。プログラミングの経験がない人は、「どれを選んで、どのように学習すればよいのだろう？」と悩んでしまうでしょう。</p>
<p>そこで、この記事では、それぞれのプログラミング言語の特徴を説明し、それぞれの学習方法をアドバイスします。</p>
<p>&nbsp;</p>
<p>はじめに、それぞれの言語の特徴を説明しましょう。</p>
<p>「何か 1 つプログラミング言語をマスターしたい」と思っている人は、それぞれの特徴から、自分の好みに合った言語を選んでください。<span class="u">「やってみたい！」と思った言語を選ぶことが重要</span>です。興味がない言語を嫌々学習したのでは、決してマスターできないからです。</p>
<style>table{font-size:.85em;}pre{font-family:'consolas','Courier New',"HCo Gotham SSm",Gotham,"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic ProN","Hiragino Sans","BIZ UDPGothic",Meiryo,sans-serif!important;background:#292a33;color:#eceff1;font-size:1em;margin:1em -7.5%;padding:1em 7.5%}th{text-align:center;}@media screen and (min-width:601px){.responsive-width{width:70%}}</style>
<h3>C言語 の特徴</h3>
<p>C 言語は、 IT 業界の第一プログラミング言語と呼べるものです。英語が世界の共通語であるように、 <span class="bold">C 言語は、 IT 業界の共通語である</span>と言えます。</p>
<p>図 1 は、プログラミング言語の人気ランキングを示した <a href="https://www.tiobe.com/tiobe-index/" rel="noopener" target="_blank">TIOBE Index</a> の 2021 年 3 月のランキングを Top 10 まで示したものです。 1 年前の 3 月に 1 位だった Java を抜いて、 C 言語が 1 位になっていることがわかります。</p>
<p class="background c-round blue-grey-text mag_h30 small-text blue-grey-text hide-on-med-and-up"><i class="material-icons light-blue-text mag_rt05">info</i>表は右にスクロールできます</p>
<div class="table-container">
<table class="striped centered responsive-width" style="font-family: Consolas, 'Courier New';">
<caption>図 1　2021 年 3 月のプログラミング言語の人気ランキング（ TIOBE Index より）</caption>
<thead>
<tr>
<th>Mar-21</th>
<th>Mar-20</th>
<th>Change</th>
<th>Programming<br />Language</th>
<th>Ratings</th>
<th>Change</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>2</td>
<td><i class="material-icons blue-text">call_made</i></td>
<td>C</td>
<td>15.33%</td>
<td>-1.00%</td>
</tr>
<tr>
<td>2</td>
<td>1</td>
<td><i class="material-icons red-text">call_received</i></td>
<td>Java</td>
<td>10.45%</td>
<td>-7.33%</td>
</tr>
<tr>
<td>3</td>
<td>3</td>
<td></td>
<td>Python</td>
<td>10.31%</td>
<td>0.20%</td>
</tr>
<tr>
<td>4</td>
<td>4</td>
<td></td>
<td>C++</td>
<td>6.52%</td>
<td>-0.27%</td>
</tr>
<tr>
<td>5</td>
<td>5</td>
<td></td>
<td>C#</td>
<td>4.97%</td>
<td>-0.35%</td>
</tr>
<tr>
<td>6</td>
<td>6</td>
<td></td>
<td>Visual Basic</td>
<td>4.85%</td>
<td>-0.40%</td>
</tr>
<tr>
<td>7</td>
<td>7</td>
<td></td>
<td>JavaScript</td>
<td>2.11%</td>
<td>0.06%</td>
</tr>
<tr>
<td>8</td>
<td>8</td>
<td></td>
<td>PHP</td>
<td>2.07%</td>
<td>0.05%</td>
</tr>
<tr>
<td>9</td>
<td>12</td>
<td><i class="material-icons blue-text">call_made</i></td>
<td>Assembly language</td>
<td>1.97%</td>
<td>0.72%</td>
</tr>
<tr>
<td>10</td>
<td>9</td>
<td><i class="material-icons red-text">call_received</i></td>
<td>SQL</td>
<td>1.87%</td>
<td>0.03%</td>
</tr>
</tbody>
</table>
</div>
<h3>Java の特徴</h3>
<p>Java は、私が知る限り、現在、最もニーズが高い言語です。</p>
<p><span class="u">ほとんどの IT 企業が、新人研修で Java を取り上げています。それは、配属後の開発の現場で Java が使われることが多いから</span>です。先ほどの TIOBE Index でも、 Java が第 2 位になっています。</p>
<p>実は、ここ数年、ずっと Java が 1 位だったのですが、最近になって人気に陰りが見えてきました。そのため、第一プログラミング言語である C 言語に 1 位の座を受け渡してしまったのです。</p>
<h3>Python の特徴</h3>
<p><span class="u">Python は、現在、最も注目が高まっている言語</span>です。</p>
<p>図 2 は、プログラマ向けの雑誌「日経ソフトウエア」 2021 年 3 月号の表紙です。これを見ると、特集記事も、連載記事も、付録の冊子も、ほとんどが Python 関連になっていることがわかるでしょう。それだけ Python が注目されているからです。</p>
<p>先ほどの TIOBE Index でも、 Python が第 3 位になっています。第 2 位の Java との差は、ほんのわずかです。 Python の台頭によって、 Java の人気に陰りが生じたのです。</p>
<figure><figcaption>図 2　プログラマ向け雑誌「日経ソフトウエア」の表紙</figcaption><img decoding="async" class="materialboxed z-depth-5 responsive-width" src="/wordpress/wp-content/uploads/2021/03/cover_nikkei_software.png" width="451" height="641" loading="lazy"><br />
</figure>
<h3>アセンブラ ( CASLⅡ [CASL2] ) の特徴</h3>
<p>アセンブラは、コンピュータのハードウエアを直接操作する命令を記述する言語です。</p>
<p>基本情報技術者試験のアセンブラは、 COMETⅡ （コメット・ツー）という架空のコンピュータを対象とした CASLⅡ （キャッスル・ツー）という架空のアセンブラです。したがって、開発の現場で CASLⅡ を使うことはありませんが、<span class="u">ハードウエアの仕組みとプログラムを関連付ける、という学習効果は、大いにあります。</span></p>
<h3>表計算の特徴</h3>
<p>表計算は、プログラミング言語ではありませんが、プログラミング言語の選択肢の 1 つになっています。</p>
<p>基本情報技術者試験の表計算は、 Microsoft Excel ではなく、独自仕様のものです。ただし、セルに数式や関数を入れてワークシートを作成することは、 Microsoft Excel と同様です。 <span class="u">Microsoft Excel を使ったことがあるなら、短時間でマスターできるでしょう。</span></p>
<h3>選択のポイント</h3>
<p>それぞれのプログラミング言語の特徴から、言語を選ぶポイントをまとめると、以下のようになります。</p>
<ul class="background c-round">
<li>IT業界の第一プログラミング言語を学んでおきたいなら <span class="bold">C 言語</span> です！</li>
<li>すぐに開発の現場で使える言語をマスターしたいなら <span class="bold">Java</span> です！</li>
<li>近い将来、開発の現場でニーズが高まる言語をマスターしたいなら <span class="bold">Python</span> です！</li>
<li>ハードウエアの仕組みとプログラムを関連付けて学習したいなら <span class="bold">アセンブラ</span> です！</li>
<li>試験までの学習時間がないなら <span class="bold">表計算</span> です！</li>
</ul>
<h2>プログラミング言語の学習方法</h2>
<p>次に、それぞれの言語の学習方法をアドバイスしましょう。</p>
<p>ここでは、<span class="bold">試験問題のプログラムを読めるレベルになるには、どのように学習すればよいかを示します。</span> ただし、プログラムを読めるだけでは、試験問題を解くことはできません。試験問題のテーマは、言語で示されたアルゴリズムを読み取ることだからです。 <span class="u">言語とアルゴリズムの学習を、並行して行ってください。</span></p>
<h3>C 言語 / Java / Python の学習方法</h3>
<p>C 言語、Java、Python の学習方法は、どれも同じです。それぞれの言語構文を解説した書籍を購入して、そこに示されたサンプルプログラムを作ってください。</p>
<div class="background c-round">
プログラミング言語は、暗記して覚えるものではありません。自分の手でプログラムを作って、自分の目で動作を確認して、体得するものです。</p>
<p>プログラムを作るには、専用のツールが必要です。ほとんどのツールは、インターネットから無償で入手できます。ツールの入手方法とインストール方法が示された書籍を選ぶとよいでしょう。
</p></div>
<p><span class="bold">基本構文だけがわかれば OK</span> なので、「はじめての〇〇」や「〇〇入門」のようなタイトルの書籍がよいでしょう。</p>
<div class="grey lighten-5 mag_h30 pad_20 c-round">
<i class="material-icons light-blue-text">search</i><span class="blue-grey-text mag_w10">タグで関連記事をチェック</span><a href="../../tag/java/" class="tag mag_rt05">Java</a><a href="../../tag/python/" class="tag">Python</a>
</div>
<h3>アセンブラ CASLⅡ [ CASL2 ] の学習方法</h3>
<p>アセンブラの学習も書籍で行いますが、実在するコンピュータのアセンブラではなく、<span class="u">基本情報技術者試験の架空のアセンブラである CASLⅡ の書籍を購入することに注意</span> してください。</p>
<p>CASLⅡのプログラムを作って動作を確認するときは、CASLⅡシミュレータを利用できます。インターネットから無償で入手できる CASLⅡ シミュレータがいくつかあります。図3は、<a href="https://www.chiba-fjb.ac.jp/fjb_labo/casl/index.html" rel="noopener" target="_blank">船橋情報ビジネス専門学校が公開している CASLⅡ シミュレータ</a>です。プログラムによって、 CPU とメモリの内部がどのように変化するかを、ビジュアルに確認できます。</p>
<figure><figcaption>図 3　CASLⅡ シミュレータの例</figcaption><img decoding="async" class="materialboxed z-depth-5 responsive-width" src="/wordpress/wp-content/uploads/2021/03/casl2_simulator.png" width="781" height="447" loading="lazy"><br />
</figure>
<div class="grey lighten-5 mag_h30 pad_20 c-round">
<i class="material-icons light-blue-text">search</i><span class="blue-grey-text mag_w10">タグで関連記事をチェック</span><a href="../../tag/casl-ii/" class="tag">CASLⅡ</a>
</div>
<h3>表計算の学習方法</h3>
<p>表計算の学習も書籍で行いますが、 <span class="u">Microsoft Excel ではなく、基本情報技術者試験の表計算の書籍を購入することに注意</span>してください。私の知る限りでは、基本情報技術者試験の表計算のシミュレータはないので、ワークシートやマクロを動作させることはできません。</p>
<div class="grey lighten-5 mag_h30 pad_20 c-round">
<i class="material-icons light-blue-text">search</i><span class="blue-grey-text mag_w10">タグで関連記事をチェック</span><a href="../../tag/表計算/" class="tag">表計算</a>
</div>
<p>&nbsp;</p>
<p>どの言語の学習も、書籍を購入して行うことになります。</p>
<p>実際に書店に行って、自分に合った書籍を探してください。書籍を最初から最後までを 1 回学習しただけでは、マスターできなくても当然です。少なくとも、同じ書籍で 3 回は学習してください。そうすれば、きっとマスターできます。</p>
<h2>擬似言語のことを考慮すると C 言語 か 表計算 がおススメかも</h2>
<p>基本情報技術者試験の午後試験には、 C 言語 、 Java 、 Python 、アセンブラ ( CASLⅡ )、表計算の他に、共通に使用される <span class="bold">擬似言語</span> というものがあります。</p>
<p>この擬似言語は、午後の選択必須問題である「データ構造およびアルゴリズム」で使われるので、読み方を覚えなければなりません。このことから、プログラミング言語では、表計算がおススメだといえます。なぜなら、表計算の問題の後半部は、擬似言語で記述されたマクロ（ワークシートを操作するプログラム）の内容を読み取るものだからです。</p>
<p>「擬似言語を覚えなければならないのだから、それを使える表計算を選ぶのが得策だ」というわけです。図 4 にマクロの例を示します。</p>
<figure><figcaption>図 4　表計算のマクロは擬似言語で記述されている（ 平成 23 年度 秋期 午後 問 13 から抜粋）</figcaption><pre>○マクロ: BonusCalc
○整数型: row, DeptPoint
■ <span class="blank">f</span>
| • DeptPoint ← 0
| ■
| | • DeptPoint ← DeptPoint + 1
| | • 相対(L1, row, 0) ← DeptPoint
| ■ <span class="blank">g</span>
| • <span class="blank">h</span>
■</pre>
</figure>
<p><span class="bold">擬似言語の構文は、 C 言語 に似ています。</span> このことから、プログラミング言語では、 C 言語もおススメだといえます。 C 言語をマスターすれば、擬似言語も容易に理解できるからです。</p>
<p>図 5 に擬似言語と C 言語の構文を対応付けた例を示します。</p>
<figure><figcaption>図 5　擬似言語と C 言語 の構文を対応付けた例</figcaption><div class="row">
<div class="col s6">
<figure><figcaption>擬似言語の構文</figcaption><pre>
<code class="language-none">
▲ 条件式
| 　処理 1
+---
| 　処理 2
▼
</code>
</pre>
</figure>
</div>
<div class="col s6">
<figure><figcaption>C 言語の構文</figcaption><pre>
<code class="language-clike">
if 条件式 {
    処理 1;
} else {
    処理 2;
}
</code>
</pre>
</figcaption></div>
</div>
<div class="row">
<div class="col s6">
<pre>
<code class="language-none">
■ 条件式
| 　処理
■
</code>
</pre>
</div>
<div class="col s6">
<pre>
<code class="language-clike">
while (条件式) {
    処理;
}
</code>
</pre>
</div>
</div>
</figure>
<p>「擬似言語の構文で、黒い三角は C 言語の if 文であり、黒い四角は C 言語の while 文だ」とわかれば、すぐに理解できるでしょう。</p>
<p>Java と Python には、オブジェクトを定義するクラスという構文があります。擬似言語では、クラスが使われません。 C 言語でも、クラスが使われません。この点でも、擬似言語と C 言語は、よく似ています。</p>
<div class="grey lighten-5 mag_h30 pad_20 c-round">
<i class="material-icons light-blue-text">search</i><span class="blue-grey-text mag_w10">タグで関連記事をチェック</span><a href="../../tag/擬似言語/" class="tag">擬似言語</a>
</div>
<div class="divider mag_h40"></div>
<p>以上で、私のお話は、おしまいです。基本情報技術者試験のプログラミング言語の選択に悩んでいる方々に、少しでもお役に立ったなら幸いです。</p>
<p>それでは、またお会いしましょう！</p><p>The post <a href="https://fenavi.seplus.jp/gogo_arukikata/choice_of_programming_languages/">基本情報 プログラミング 言語の選択と学習方法｜午後問題の歩き方</a> first appeared on <a href="https://fenavi.seplus.jp">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>矢沢久雄さんが執筆! 午後 プログラミング 問題対策の参考書「速習言語」を刊行しました!!</title>
		<link>https://fenavi.seplus.jp/gogo_arukikata/release_sokushu_programming4fe/</link>
		
		<dc:creator><![CDATA[基本情報技術者試験 受験ナビ 編集部]]></dc:creator>
		<pubDate>Wed, 20 Nov 2019 08:09:57 +0000</pubDate>
				<category><![CDATA[CASL II]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[午後プログラミング言語問題]]></category>
		<category><![CDATA[参考書]]></category>
		<category><![CDATA[表計算]]></category>
		<guid isPermaLink="false">/?post_type=gogo_arukikata&#038;p=2861</guid>

					<description><![CDATA[<p>info 速習言語は試験制度変更により販売を停止しました 基本情報技術者試験 受験ナビでも多くの記事を書いて頂いている 矢沢 久雄 さんにお願いし、基本情報技術者試験 午後のプログラミング問題に特化した参考書、 「速習言 [&#8230;]</p>
<p>The post <a href="https://fenavi.seplus.jp/gogo_arukikata/release_sokushu_programming4fe/">矢沢久雄さんが執筆! 午後 プログラミング 問題対策の参考書「速習言語」を刊行しました!!</a> first appeared on <a href="https://fenavi.seplus.jp">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></description>
										<content:encoded><![CDATA[<p class="background c-round blue-grey-text"><i class="material-icons red-text mag_rt10" style="font-size:2.2em">info </i>速習言語は試験制度変更により販売を停止しました</p>
<p>基本情報技術者試験 受験ナビでも多くの記事を書いて頂いている 矢沢 久雄 さんにお願いし、基本情報技術者試験 午後のプログラミング問題に特化した参考書、</p>
<p><span class="bold">「速習言語 Java 」<br />
「速習言語 CASLⅡ 」<br />
「速習言語 表計算」</span></p>
<p>この 3 冊を電子書籍として刊行しました!! <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f389.png" alt="🎉" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f389.png" alt="🎉" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f389.png" alt="🎉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>令和 2 年度 ( 2020 年度) 春期試験より、プログラミング問題は配点が高くなり、避けて通れない問題になりました。</p>
<p>この記事では、このプログラミング問題に特化した「速習言語」の特徴や中身をチラ見せしますので、ぜひぜひ立ち読み感覚でご覧ください!</p>
<h2>プログラミングをマスターするのではなく「プログラムが読める」ようになること</h2>
<p>ご存知の通り、基本情報技術者試験ではソースコードを実際に書いて、合否判定されるわけではありません。</p>
<p>つまり、&#8221;プログラミングができること&#8221; が問われていません。あくまでプログラムの仕様とプログラムを読んで、それを選択肢から選んで解答するものです。</p>
<p>&nbsp;</p>
<p>これは英語の入試などに似ていて、こういった試験では、外国人と会話でコミュニケーションできることが問われるのではなく、あくまで、</p>
<ul>
<li class="mag_h10">英文を読める</li>
<li class="mag_h10">英語を聞いて理解できる</li>
</ul>
<p>この 2 つが主です。</p>
<p>英語で外国人とのコミュニケーションできるようになるには、膨大な時間が必要ですが、ただ、筆記試験に限って言うと、英語でコミュニケーションが取れなくても合格できます。</p>
<p>そして、英語の筆記試験の攻略法は、皆さんがご経験の通り、単語の引き出しを増やす、言語構文を覚える、文章の流れを読むテクニック、こういった特有のコツを身につけることですね。</p>
<p>&nbsp;</p>
<p>刊行した「速習言語」でも同様に、プログラミングをマスターするのではなく、&#8221;出題される&#8221; 言語構文、関数、ライブラリだけを解説し、開発言語ごとに試験のプログラムを読むテクニックを解説しています。</p>
<p>これにより、速習言語を使うと、時間を圧倒的に短縮して学ぶことができます。</p>
<h2>わかりやすさでお馴染みの矢沢 久雄さんが執筆!</h2>
<p>基本情報技術者試験 受験ナビの著者紹介ページにもありますが、この受験ナビの著者でもあり、「プログラムはなぜ動くのか」という書籍を書いた 矢沢 久雄 さんに速習言語を執筆頂きました。<br />
(ちなみに、「プログラムはなぜ～」はIT書では、異例の 10 万部を突破した書籍です)</p>
<p>矢沢さんが書かれる文章のわかりやすさは、受験ナビの読者の皆さまにも、恐らく伝わっているのでは? と思っています。</p>
<p>&nbsp;</p>
<p>また、皆さまのおかげで、矢沢さんが書かれた記事は Google の検索ランキングで、</p>
<div class="card-panel z-depth-0 bold" style="border-radius: 5px;">
<code>基本情報 java</code>　<code>基本情報技術者試験 java</code> などの検索ワードで 1 位 !!<br />
<code>基本情報 casl</code>　<code>基本情報技術者試験 casl2</code> などの検索ワードで 1 位 !!<br />
<code>基本情報 表計算</code>　<code>基本情報技術者試験 表計算</code> などの検索ワードで 1 位 !!
</div>
<p><small class="grey-text" style="text-inline: 2rem">2019 年 8月 ~ 11 月の 3 ヶ月間 の平均順位</small></p>
<p>とご評価いただいています。</p>
<p>「速習言語」では、Web ページの都合上、カットせざるを得なかった言語構文や、関数、ライブラリなどの解説ページを大幅追加しています。ぜひご期待ください。</p>
<p>&nbsp;</p>
<style>code{font-family:monospace;background-color:#eceff1;color:red;padding:.4rem;font-size:.9rem}.indent{padding-left:1em;text-indent:-1em;line-height:200%}</style>
<h2>速習言語 のご紹介</h2>
<p>速習言語は電子書籍のみで、Kindle ストアで販売を開始しています !!</p>
<div class="card hoverable mag_h30">
<div class="row">
<div class="col m4 center hide-on-small-only"><img decoding="async" src="/wordpress/wp-content/uploads/2019/11/spreadsheet_cover.jpg"></div>
<div class="col m8">
<div class="card-content black-text">
<span class="card-title">速習言語 表計算 編</span></p>
<div class="chip teal white-text">目次</div>
<p>ステップ1　表計算の基礎知識<br />
ステップ2　セルの参照と複写<br />
ステップ3　関数の種類と機能<br />
ステップ4　マクロによるプログラミング<br />
ステップ5　問題演習<br />
&ensp;</p>
<div class="chip teal small-text white-text">価格</div>
<p>￥<big class="bold">980</big> (税込)　<small class="grey-text">Kindle ストアで販売中</small>　<img decoding="async" src="/wordpress/wp-content/uploads/2019/11/iconfinder_Amazon_1298723.png">
</div>
</div>
</div>
</div>
<div class="card hoverable mag_h30">
<div class="row">
<div class="col m4 center hide-on-small-only"><img decoding="async" src="/wordpress/wp-content/uploads/2019/11/casl2_cover.jpg"></div>
<div class="col m8">
<div class="card-content black-text">
<span class="card-title">速習言語 CASLⅡ（CASL2）編</span></p>
<div class="chip teal white-text">目次</div>
<p>ステップ1　アセンブラ言語の特徴<br />
ステップ2　命令の種類<br />
ステップ3　覚えておくべきプログラミング技法<br />
ステップ4　問題演習<br />
補足資料　言語リファレンス<br />
&ensp;</p>
<div class="chip teal small-text white-text">価格</div>
<p>￥<big class="bold">980</big> (税込)　<small class="grey-text">Kindle ストアで販売中</small>　<img decoding="async" src="/wordpress/wp-content/uploads/2019/11/iconfinder_Amazon_1298723.png">
</div>
</div>
</div>
</div>
<div class="card hoverable mag_h30">
<div class="row">
<div class="col m4 center hide-on-small-only"><img decoding="async" src="/wordpress/wp-content/uploads/2019/11/java_cover.jpg"></div>
<div class="col m8">
<div class="card-content black-text">
<span class="card-title">速習言語 Java 編</span></p>
<div class="chip teal white-text">目次</div>
<p>ステップ1　Javaの基本構文<br />
ステップ2　Javaによるオブジェクト指向プログラミング<br />
ステップ3　Javaの基本的なクラスライブラリ<br />
ステップ4　問題演習<br />
補足資料　言語リファレンス<br />
&ensp;</p>
<div class="chip teal small-text white-text">価格</div>
<p>￥<big class="bold">980</big> (税込)　<small class="grey-text">Kindle ストアで販売中</small>　<img decoding="async" src="/wordpress/wp-content/uploads/2019/11/iconfinder_Amazon_1298723.png">
</div>
</div>
</div>
</div>
<h2>立ち読みコーナー 「まえがき」全文掲載</h2>
<p>では、最後に速習言語がどのような内容なのか、矢沢さんから許可をいただき、「まえがき」を全文掲載いたします。</p>
<p>お気軽にお立ち読みください !!</p>
<div class="card-panel grey lighten-5 z-depth-0 indigo-text" style="border-radius: 10px">
<h3 class="bold">基本情報技術者の合格を目指す皆さんへ</h3>
<h4 class="bold">本書の目的</h4>
<p>　本書は、基本情報技術者試験の午後問題として必ず出題される「プログラミング問題」の学習書です。</p>
<p>　本書の目的は、プログラミングの基本概念を理解している受験者を対象とし、できる限り短時間で無駄なく特定の言語を学習し、試験問題に解答できる能力を身に付ける手助けをすることです。</p>
<h4 class="bold">試験問題に解答できる能力とは？</h4>
<p>　この試験のプログラミング問題のほとんどは、プログラム内にある空欄を適切なコードで埋めるものとなっています。しかしその設問自体は、コードの候補を示した選択式となっているため、プログラミング言語のスペルを暗記しておく必要はありません。さらに、プログラムの中では高度な命令は使われず、基本的な入出力命令（キー入力、ディスプレイ出力、ファイル入出力）だけが使われますから、すべての命令の使い方を覚える必要もありません。つまり、オリジナルのプログラムの作成能力までは要求されていないのです。では、何が必要なのでしょうか。それは、他人（出題者）が作ったプログラムを読みこなす能力です。</p>
<p>　この能力を身に付けることは、単なる試験対策のためではありません。プログラミングができるとはプログラムを作れることを意味しますが、いきなりゼロから作れる人などはいません。最初は、他人が作ったプログラムを読んでまねることから始めるのです。目的に合わせて既存のプログラムの内容を部分的に改造することを繰り返している内に、自然とオリジナルのプログラムが作れるようになります。したがって、この能力は、本格的なプログラミングの学習においても第一歩となる重要なことなのです。</p>
<h4 class="bold">プログラミングの学習ステップ</h4>
<p>　最初にマスターする言語を決めたら、次に説明するステップに沿って学習を始めましょう。</p>
<div class="indent mag_h20"><span class="bold">第一段階のステップでは、命令とデータの記述方法を学びます。</span><br />
プログラムとは、コンピュータに与える「命令（〜せよ）」および命令の対象となる「データ（…を）」をプログラミング言語の文法に従って記述したものです。プログラミング言語の種類によって、命令やデータを表すキーワード（単語）と、それらを並べる構文（文法）に若干の違いがあります。ただし、どのようなプログラミング言語であっても、その内容は基本的に「…を〜せよ」という命令文を書き並べたものだといえます。</div>
<div class="indent mag_h20"><span class="bold">第二段階のステップでは、プログラムの流れの表現方法を学びます。</span><br />
たった一つの命令文だけでプログラムが完結することなどめったにありません。プログラムの中には、複数の命令文が記述されています。それらが、まずこの命令文、次にこの命令文、次に…と、まるで川のように流れていくのです。その流れには、「順次（まっすぐ流れる）」「分岐（条件に応じて流れが分かれる）」「反復（同じ流れを何度か繰り返す）」の3種類があります。</div>
<div class="indent mag_h20"><span class="bold">第三段階のステップは、複数の小さなプログラムの構成方法を学びます。</span><br />
ある程度大きなプログラム（命令文の総数が多いプログラム）は、小さな部品に分けて作られます。そして、プログラムの入り口となる「主プログラム」と、主プログラムから利用される「副プログラム」とに構成されるのです。</div>
<p>　どのようなプログラミング言語でも、基本的には、上述したような三つのステップで学習して行きます（本書では、さらにプログラミング言語の種類ごとにステップを細かく分けています）。</p>
<div class="indent mag_h20"><span class="bold">最終段階は、学習の総仕上げとして、過去に出題された問題に挑戦です。</span><br />
本書で学習した知識があれば、プログラムの内容は読みこなせるはずです。試験当日は、1問を30分程度で解答できなければなりませんが、学習段階では1〜2時間かけてかまいません。プログラムの先頭から末尾まで完全に理解できるようになるまで、何度でもプログラムを読んでください。多くの問題を中途半端に解くより、一つの問題を丁寧に解いた方が確実に理解が深まります。プログラムを注意深く読む練習が必要なのです。答えを覚えてしまうぐらいになってから、新たな問題に進むとよいでしょう。どんなプログラムでも読みこなせるという自信がもて、試験当日にも冷静に問題に取り組めるはずです。</div>
<h4 class="bold">試験当日まで粘り強く</h4>
<p>　プログラミング言語の学習方法は、外国語の学習方法とよく似ています。教材を1回だけ学習したり、プログラムを1回だけ読んでマスターできるものではないからです。もしも理解が不十分だと思う部分があれば、該当する項目を何度でも復習してください。同じプログラムを何度でも読んでください。言語は、同じことを繰り返し学習して身に付けるものです。</p>
<div class="indent mag_h20"><span class="bold">いつまで繰り返せばよいのでしょう。</span><br />
ゴールは決まっています。情報処理技術者試験の日までです。どうか強い意志を持って取り組んでください。皆さんが合格の栄冠を勝ち取られることを心より願っております。</div>
<p>　それでは、元気に学習を始めましょう！</p>
<p>　2019年10月吉日<br />
　矢沢久雄
</p></div>
<p>&nbsp;</p><p>The post <a href="https://fenavi.seplus.jp/gogo_arukikata/release_sokushu_programming4fe/">矢沢久雄さんが執筆! 午後 プログラミング 問題対策の参考書「速習言語」を刊行しました!!</a> first appeared on <a href="https://fenavi.seplus.jp">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>午後問題の歩き方 ｜ CASLⅡで必要となる2進数に関する知識</title>
		<link>https://fenavi.seplus.jp/gogo_arukikata/guide_caslii_2_of_questions_at_pm/</link>
		
		<dc:creator><![CDATA[矢沢 久雄]]></dc:creator>
		<pubDate>Mon, 20 Aug 2018 05:22:28 +0000</pubDate>
				<category><![CDATA[2進数]]></category>
		<category><![CDATA[CASL II]]></category>
		<category><![CDATA[マスク]]></category>
		<category><![CDATA[午後プログラミング言語問題]]></category>
		<category><![CDATA[午後問題の解説]]></category>
		<category><![CDATA[論理回路]]></category>
		<guid isPermaLink="false">http://www.seplus.jp/dokushuzemi/ec/fe/fenavi/?post_type=gogo_arukikata&#038;p=388</guid>

					<description><![CDATA[<p>前回の記事 では、 「 CASLⅡの言語構文を覚えるだけなら、それほど時間はかかりません（簡単です）」 「ただし、問題を解くには、2 進数に関する様々な知識が必要 とされます（それほど簡単ではありません）」 ということを [&#8230;]</p>
<p>The post <a href="https://fenavi.seplus.jp/gogo_arukikata/guide_caslii_2_of_questions_at_pm/">午後問題の歩き方 ｜ CASLⅡで必要となる2進数に関する知識</a> first appeared on <a href="https://fenavi.seplus.jp">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></description>
										<content:encoded><![CDATA[<p><a href="/gogo_arukikata/guide_caslii_1_of_questions_at_pm/">前回の記事</a> では、</p>
<blockquote>
<ul>
<li>「 CASLⅡの言語構文を覚えるだけなら、それほど時間はかかりません（簡単です）」</li>
<li>「<span class="bold">ただし、問題を解くには、2 進数に関する様々な知識が必要</span> とされます（それほど簡単ではありません）」</li>
</ul>
</blockquote>
<p>ということを説明しました。</p>
<p>今回は、過去問題に出題されたプログラムを例にして、<span class="bold">どのような知識が、どのような場面で必要とされるのか</span> を説明します。</p>
<p>CASLⅡを選ぼうかどうか迷っている人の参考になれば幸いです。</p>
<ul class="background c-round blue-grey-text">
<span class="small-text"><i class="material-icons light-blue-text mag_rt05">error</i>編集部注</span></p>
<li>本記事ではわかりやすいよう、プログラムの問題に背景を入れています。</li>
<li class="hide-on-med-and-up">スマートフォンでご覧の際、計算式やプログラムは横スクロールすると全文をご覧になれます。</li>
</ul>
<style>ul.background li{font-size:.9em}pre{font-family:'consolas','Courier New',"HCo Gotham SSm",Gotham,"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic ProN","Hiragino Sans","BIZ UDPGothic",Meiryo,sans-serif!important;background:#2d2d2d;color:#fbfbfb}article pre:not(.line-numbers){margin-right:-7.5%!important;margin-left:-7.5%!important;padding-left:7.5%!important}article pre.line-numbers{margin-right:-7.5%!important;margin-left:-7.5%!important}.r-width{width:50%;margin:auto}@media screen and (max-width:600px){.r-width{width:100%}}.border{padding:.2em 4em;border:.2em solid #fff;font-weight:700;display:inline-block;margin:.2em}ol.background li{margin-left:1.5em}.img-background{background-size:100%;background-position:center;background-repeat:no-repeat;transition:background-size .4s ease-in-out}.inner{background:#09090980;color:#fff;padding:2.5em 1.25em;border-radius:.5em;transition:color .4s ease-in-out;font-weight:700}.img-background:hover{background-size:110%;transition:background-size .4s ease-in-out}.img-background:hover .inner{color:#40c4ff;transition:color .4s ease-in-out}.ccc{color:#ccc}</style>
<h2>シフトと加算で乗算を行う手順を知っていますか？</h2>
<p><a href="https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2009h21_1/2009h21h_fe_pm_qs.pdf#page=50" rel="noopener" target="_blank">平成 21 年度 春期 午後 問 12</a>  のテーマは「 32 ビットの乗算」です。</p>
<div class="card-panel mag_h30">
問 12</p>
<p>次のアセンブラプログラムの説明及びプログラムを読んで，設問 1 ，2 に答えよ。</p>
<p>【プログラムの説明】<br />
32 ビットの乗算を行う副プログラム MULS である。<br />
&#x205D;
</p></div>
<p>この問題を解くには、<span class="u">シフトと加算で 2 進数の乗算を行う手順を知っていなければなりません。</span></p>
<p>以下にシンプルな例題を示したので、手作業でやってみてください。演算結果は、初期状態でゼロクリアされているとします。</p>
<div class="chip" style="height: auto; line-height: 2;"><i class="material-icons light-blue-text mag_rt05">code</i>〔例題〕シフトと加算で 2 進数の乗算を行う</div>
<pre class="pad_h10 ccc">
  00000000000000000000000000001111  被乗数
× 00000000000000000000000000000101  乗数
------------------------------------
  00000000000000000000000000000000  演算結果
</pre>
<p>まず、乗数 の 最下位桁 が 1 なら 演算結果 に 被乗数 を 加算 します。</p>
<p>次に、乗数 を 1 ビット論理右シフト して、次にチェックする桁を 最下位桁 に移動します。<br />
そして、次の 加算 に合わせて、被乗数 を 1 ビット論理左シフト します。</p>
<p>これを、乗数 が 0 になるまで繰り返します。</p>
<pre class="pad_h10 ccc">
  00000000000000000000000000001111  被乗数
× 00000000000000000000000000000101  乗数
------------------------------------
  00000000000000000000000000001111
+ 00000000000000000000000000111100
------------------------------------
  00000000000000000000000001001011  演算結果
</pre>
<p>この手順は、平成 21 年度 春期 だけでなく、何度も出題されています。</p>
<h2>最下位桁が 1 かどうかチェックする方法がわかりますか？</h2>
<p>先ほどの問題を解くための知識の説明を続けます。シフト と 加算 で 乗算 を行う手順の中で、乗数 の 最下位桁 が 1 かどうかをチェックします。</p>
<p>以下は、問題に示されたプログラムの一部です。</p>
<div class="chip"><i class="material-icons light-blue-text mag_rt05">code</i>プログラム 1</div>
<pre class="language-none">
LP      SRL     GR2,1   ; 乗数を 1 ビット右にシフト
        <span class="border">a</span>
        JZE     FIN
        JUMP    NEXT    ; 加算処理をスキップ
ADD32   ADDL    GR6,GR4 ; 32 ビット + 32 ビット → 32 ビット
        ADDL    GR7,GRS
</pre>
<p>GR2 に格納されている  乗数を 1 ビット論理右シフトした後で、空欄 a には 最下位桁 が 1 なら ADD32 というラベルにジャンプする処理が入ります。</p>
<p>選択肢から答えを選ぶには、最下位桁 が 1 であることを判断する方法を知っていなければなりません。</p>
<div class="card-panel mag_h50">
a に関する解答群</p>
<p>ア　<code class="language-none"> JMI　ADD32 </code>　　<br class="hide-on-med-and-up">イ　<code class="language-none"> JMI　LP　</code><br />
ウ　<code class="language-none"> JOV　ADD32 </code>　　<br class="hide-on-med-and-up">エ　<code class="language-none"> JOV　LP　</code><br />
オ　<code class="language-none"> JPL　ADD32 </code>　　<br class="hide-on-med-and-up">カ　<code class="language-none"> JPL　LP　</code>
</div>
<p>答えは、選択肢ウ の JOV ADD32 です。</p>
<p>&nbsp;</p>
<p>最下位桁 が 1 なら、論理右シフト によって、その 1 がはみ出します。それを JOV（ Jump OVerflow, オーバーフローならジャンプする）で判断するのです。</p>
<p>一般的な感覚では、上位桁 からはみ出すことが オーバーフロー（桁あふれ）ですが、コンピュータでは、<span class="bold">下位桁 からはみ出すこともオーバーフロー</span> なのです。</p>
<p>&nbsp;</p>
<p>なお、別の年度の問題では、論理右シフト することではなく、「 #0001 と AND 演算した結果が ゼロ でないなら 最下位桁 が 1 である」と判断するプログラムが出題されたこともあります。</p>
<p>いろいろな方法があるので、 1 つに決め付けないようにしましょう。</p>
<h2>ビット演算で数値を数字に変換する方法がわかりますか？</h2>
<p>次の例は、<a href="https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2013h25_2/2013h25a_fe_pm_qs.pdf#page=60" rel="noopener" target="_blank">平成 25 年度 秋期 午後 問 12「数字列の時間と数値の秒との変換」</a> です。</p>
<p>この問題を解くには、<span class="bold">ビット演算で 1 桁の数値を数字に変換する</span> 方法を知っていなければなりません。</p>
<p>&nbsp;</p>
<p>プログラムの中で、該当する部分を以下に示します。たったの 1 行だけです。空欄 c の選択肢には、レジスタ の名前が示されています。</p>
<p>レジスタの名前を選ぶには、この処理を見て<span class="bold">「 1 桁 の数値を 数字に変換する処理 だ！」</span> とピンと来なければなりません。</p>
<div class="chip"><i class="material-icons light-blue-text mag_rt05">code</i>プログラム 2</div>
<pre class="language-none">
18 |　　      OR    <span style="padding:.2em 2em;border:.2em solid #fff;font-weight:700;display:inline-block;margin:.2em">c</span> ,='0'
</pre>
<p>&nbsp;</p>
<p>以下は、試験問題に添付されている文字の符号表です。</p>
<p><img decoding="async" class="materialboxed hoverable mag_h30" src="/wordpress/wp-content/uploads/2018/08/Q12_h25_table.png" alt="" /></p>
<p>&#8216;0&#8217; ～ &#8216;9&#8217; という数字（文字）には、#30 ～ #39（先頭の # は、16 進数であることを意味します）という符号が割り当てられています。</p>
<p>したがって、たとえば GR0 に 0 ～ 9 の数値が格納されていれば、それと #30 を OR 演算することで、#30 ~ #39 という数字に変換できます。</p>
<p>#30 は、 &#8216;0&#8217; の文字コードなので、このプログラムでは、</p>
<pre class="language-none">
    OR    GR0,=#30
</pre>
<p>という処理を、</p>
<pre class="language-none">
    OR    GR0,='0'
</pre>
<p>と表記しています。</p>
<p>「 &#8216;0&#8217; の文字コードと OR 演算しているんだから、何をやっているかわかるよね！」というヒントなのでしょう（たぶん）。</p>
<p>このような知識は、1 つひとつ確実に覚えていきましょう。そうすれば、他の問題で応用ができます。</p>
<p>&nbsp;</p>
<p>たとえば、以下は<a href="https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2018h30_1/2018h30h_fe_pm_qs.pdf#page=63" rel="noopener" target="_blank">平成 30 年度 春期 午後 問 12「数字列の数値への変換」</a>に出題されたプログラムの一部です。</p>
<p>先ほど覚えた知識があれば、これを見て、すぐに何をしているのかピンと来たでしょう。</p>
<div class="chip"><i class="material-icons light-blue-text mag_rt05">code</i>プログラム 1</div>
<pre class="line-numbers" data-start="8"><code class="language-none">    SUBL  GR4,='0'  ; 1 桁を数値に変換</code></pre>
<p>ご丁寧にコメントも付けられていますが、この処理は、GR4 に格納されている 数字 を 数値 に 変換 しています。</p>
<p>たとえば、GR4 に &#8216;5&#8217; という数字の符号の #35 が格納されているとすれば、そこから &#8216;0&#8217; の符号の #30 を引くことで、数値の 5 に変換できます。</p>
<p>この変換は、</p>
<pre class="language-none">
    AND   GR4,#000F
</pre>
<p>と ビット演算 でもできますが、SUBL という 減算 を使っているのは、出題者の好みなのでしょう。</p>
<h2>#FFFF が 2 進数でいくつか、すぐにわかりますか？</h2>
<p>ビット演算 を行うには、 <span class="bold">マスク</span> を作る必要があります。</p>
<p>マスクとは、たとえば、0101010101010101 の下位 8 ビットを取り出すときには、</p>
<pre class="pad_h10 ccc">
    0101010101010101
AND 0000000011111111
</pre>
<p>という ビット演算 を行いますが、このときの 0000000011111111 というパターンのことです。</p>
<p>&nbsp;</p>
<p>以下は、<a href="https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2017h29_2/2017h29a_fe_pm_qs.pdf#page=64" rel="noopener" target="_blank">平成 29 年度 秋期 午後 問 12「ビット列の検索・置換」</a> に出題されたプログラムの一部です。</p>
<p>「マスク作成」というコメントにあるように、GR6 に マスク を作成しています。</p>
<p>仮に、GR3 の値が 10 進数 で 8 だとしたら、GR6 には、どのようなパターンのマスクが作られるでしょう。トレースしてみてください。</p>
<div class="chip"><i class="material-icons light-blue-text mag_rt05">code</i>プログラム 1</div>
<pre class="line-numbers" data-start="4">
<code class="language-none">    LD    GR6,=#FFFF  ; マスク作成
    SRL   GR6,0,GR3
    XOR   GR6,=#FFFF</code>
</pre>
<p>マスクのパターンを見出すには、<span class="bold">#FFFF という 16 進数が、2 進数で 1111111111111111</span> であることを知っておくべきです。</p>
<ol class="background c-round">
<li>4 行目で GR6 に 1111111111111111 が格納される</li>
<li>5 行目で GR6 が 8 ビット右論理シフト されて 0000000011111111 になる</li>
<li>6 行目で GR6 の 0000000011111111 と 1111111111111111 が XOR 演算される</li>
<li>GR6 は 1111111100000000 になる</li>
</ol>
<p>この時点の GR6 の内容が マスク です。</p>
<p>&nbsp;</p>
<p>6 行目にも知っておくべき知識があります。</p>
<p>CASLⅡ の論理演算の命令は、AND 演算、OR 演算、XOR 演算だけであり、データを反転する NOT 演算がありません。</p>
<p>NOT 演算を行いたい場合は、すべての桁 が 1 の マスク と XOR 演算することで代用します。</p>
<p>すべての桁 が 1 のデータは、16 進数で #FFFF です。6 行目の </p>
<pre class="line-numbers" data-start="6"><code class="language-none"> XOR   GR6,=#FFFF </code></pre>
<p>を見て <span class="bold">「これはデータの反転だ！」とわかるようになりましょう。</span></p>
<div class="grey lighten-5 mag_h30 pad_20 c-round">
<i class="material-icons light-blue-text">search</i><span class="blue-grey-text mag_w10">タグで関連記事をチェック</span><a href="../../tag/マスク/" class="tag">マスク</a>
</div>
<h2>#FFFF が 2 の補数表現 でマイナス 1 だとすぐにわかりますか？</h2>
<p>最後に、もう一度だけ、目的を実現する方法を 1 つに決め付けないようにしましょう、ということを言っておきたいので、以下のプログラムを見てください。</p>
<p>これは、<a href="https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2011h23_2/2011h23a_fe_pm_qs.pdf#page=56" rel="noopener" target="_blank">平成 23 年度 秋期 午後 問 12「除算と2 進 10 進数文字列変換」</a> に出題されたプログラムの一部です。</p>
<p>注目してほしいのは、<span class="bold">「商の初期化」</span> とコメントされた部分にある #FFFF です。</p>
<div class="chip"><i class="material-icons light-blue-text mag_rt05">code</i>プログラム 1</div>
<pre>
<code class="language-none">DIV   START               ; 減算を用いた 32 ビット除算
      PUSH    0,GR6
      PUSH    0,GR7
      LD      GR6,GR1
      LD      GR7,GR2
      LD      GR1,=#FFFF  ; 商の初期化
      LD      GR2,=#FFFF
LP    LD      GR4,GR6
      LD      GR5,GR7
      ADDL    GR2,=1      ; 商のカウントアップ</code>
</pre>
<p>先ほども説明したように、#FFFF という 16 進数は、 2 進数 で 1111111111111111 です。</p>
<p>それでは、この 1111111111111111 は、マスク を作るためのデータなのでしょうか。</p>
<p>&nbsp;</p>
<p>ここでは、違います。</p>
<p>1111111111111111 は、<span class="bold">2 の補数表現 の -1</span> です。</p>
<p>すべての桁が 1 の 2 進数を見て「 2 の補数表現 で -1 だ」とわかるようになってください。</p>
<p>それを <span class="bold">16 進数で示した #FFFF を見ても「これは -1 だ」とわかるようになりましょう</span>。</p>
<p>これも、知っておくべき重要な知識です。</p>
<p>&nbsp;</p>
<p>この問題では、引き算 を繰り返して、被除数 から 除数 を引けた回数を 商（除算の結果）とします。</p>
<p>それなら、「商の初期化」とコメントされた部分では、商を格納するレジスタをゼロクリアするべきです。</p>
<p>ところが、このプログラムでは、繰り返し処理の先頭（「商のカウントアップ」とコメントされた部分）で、引き算を行う前に、商をカウントアップしています。ここで -1 が ゼロになる のでつじつまが合うのです。</p>
<p>ちょっと、わかりにくいですね。</p>
<p>&nbsp;</p>
<p>そもそも、CASLⅡ では、= の後に 10 進数を記述することもできるので、商を -1 で 初期化 するなら、= #FFFF ではなく、= -1 と表記すべきです（これは、筆者の個人的な意見です）。</p>
<p>ここも、わかりにくいですね。</p>
<p>&nbsp;</p>
<p>でも、そういう問題が出題されているのですから、あれこれ文句を言わずに、とにかく練習あるのみです。</p>
<div class="grey lighten-5 mag_h30 pad_20 c-round">
<i class="material-icons teal-text">search</i><span class="blue-grey-text mag_w10">タグで関連記事をチェック</span><a href="../../tag/2進数/" class="tag">2進数</a>
</div>
<p>&nbsp;</p>
<div class="divider mag_h30"></div>
<p>実際の試験に出題された 2 進数の知識を見て、どう思いましたか？</p>
<p>「これなら、できそうだ！」と思った人は、迷わず CASLⅡ を選んでください。本試験に向けて、CASLⅡの過去問題をドンドン練習してください。</p>
<p><span class="bold">それとは逆に「こりゃ、だめだ！」と思った人は、本試験まで時間がなければ、CASLⅡをキッパリと断念して、別の言語を選びましょう</span>。</p>
<p>次回は、表計算の学習手順と、問題を解くために必要とされる知識を説明しますので、参考にしてください。</p>
<p><a href="/gogo_arukikata/guide_spreadsheet_1_of_questions_at_pm/"></p>
<div class="card mag_h50 hoverable c-round">
<div class="row valign-wrapper direction-column-on-small">
<div class="col m3 s12 pad_00 flex"><img decoding="async" src="/wordpress/wp-content/uploads/2018/08/light-spreadsheet_cover.jpg" loading="lazy"></div>
<div class="col m9 s12 pad_20 bold black-text">表計算も簡単ではなくプログラミング問題（1）基礎知識</div>
</div>
</div>
<p></a></p>
<p>それでは、またお会いしましょう！</p>
<p>&nbsp;</p>
<p><i class="material-icons indigo-text mag_rt05">label</i>そのほかのプログラミング言語の記事</p>
<div class="row">
<div class="col m6">
<a href="/gogo_arukikata/how_about_python/"></p>
<div class="img-background" style="background-image: url('/wordpress/wp-content/uploads/2019/01/python_cover.png');">
<div class="inner">「基本情報 の Python ってどんな感じ？」を解説｜午後問題の歩き方</div>
</div>
<p></a>
</div>
<div class="col m6">
<a href="/gogo_arukikata/guide_java_1_of_questions_at_pm/"></p>
<div class="img-background" style="background-image: url('/wordpress/wp-content/uploads/2018/08/java_logo.jpg');">
<div class="inner">午後問題の歩き方 ｜ Java プログラミング問題の難易度（1）Java基本構文</div>
</div>
<p></a>
</div>
</div>
<p>&nbsp;</p><p>The post <a href="https://fenavi.seplus.jp/gogo_arukikata/guide_caslii_2_of_questions_at_pm/">午後問題の歩き方 ｜ CASLⅡで必要となる2進数に関する知識</a> first appeared on <a href="https://fenavi.seplus.jp">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>午後問題の歩き方 &#124; プログラミング問題 CASLⅡは意外と短時間で学習できる (選択可否チェックリスト付き)</title>
		<link>https://fenavi.seplus.jp/gogo_arukikata/guide_caslii_1_of_questions_at_pm/</link>
		
		<dc:creator><![CDATA[矢沢 久雄]]></dc:creator>
		<pubDate>Wed, 08 Aug 2018 04:48:57 +0000</pubDate>
				<category><![CDATA[CASL II]]></category>
		<category><![CDATA[午後プログラミング言語問題]]></category>
		<category><![CDATA[午後問題の解説]]></category>
		<category><![CDATA[学習方法]]></category>
		<guid isPermaLink="false">http://www.seplus.jp/dokushuzemi/ec/fe/fenavi/?post_type=gogo_arukikata&#038;p=377</guid>

					<description><![CDATA[<p>午後問題の問 7 ～問 11（ 1 問選択）は、ソフトウェア開発がテーマであり、C 言語、Java 、Python 、CALSⅡ（アセンブラ）、表計算の中からプログラミング言語を選びます。 プログラミング経験がない場合は [&#8230;]</p>
<p>The post <a href="https://fenavi.seplus.jp/gogo_arukikata/guide_caslii_1_of_questions_at_pm/">午後問題の歩き方 | プログラミング問題 CASLⅡは意外と短時間で学習できる (選択可否チェックリスト付き)</a> first appeared on <a href="https://fenavi.seplus.jp">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>午後問題の問 7 ～問 11（ 1 問選択）は、ソフトウェア開発がテーマであり、C 言語、Java 、Python 、CALSⅡ（アセンブラ）、表計算の中からプログラミング言語を選びます。</p>
<p><strong>プログラミング経験がない場合は、言語の習得に時間がかからない CASLⅡ か 表計算 を選ぶ人が多い</strong>ようですが、<strong>どっちにしようか迷っている人も多い</strong>ようです。</p>
<p>この連載を読んで、自分に合っていると思う方を選んでください。</p>
<p>今回は、CASLⅡ の学習手順と、問題を解くために必要とされる知識を説明します。</p>
<style>pre{margin-right:-7.5%!important;margin-left:-7.5%!important;padding-left:7.5%!important}.r-width{width:80%;margin:auto}table:not(.no-font){font-family:consolas,'Courier New',"HCo Gotham SSm",Gotham,"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic ProN","Hiragino Sans","BIZ UDPGothic",Meiryo,sans-serif!important}@media only screen and (max-width:600px){.r-width pad_05{width:100%}}label{color:#3f51b5}[type=checkbox].filled-in:checked+span:not(.lever)::after{border:2px solid #3f51b5;background-color:#3f51b5}[type=checkbox].filled-in:not(:checked)+span:not(.lever)::after{border:2px solid #3f51b5}</style>
<h2>学習手順 1：ハードウェアの構成要素の役割を知る</h2>
<p>CASLⅡ は、アセンブリ言語（アセンブラ）です。アセンブリ言語は、コンピュータの内部のハードウェアの動作を、そのまま記述します。したがって、CASLⅡ をマスターするには、 <strong>ハードウェアの知識が必要</strong> になります。</p>
<p>一般的なコンピュータのハードウェアは、</p>
<ul class="background">
<li>演算装置と制御装置を兼務する CPU </li>
<li>データと命令を記憶する メモリ</li>
<li>キーボードや液晶ディスプレイなどの周辺装置とデータの入出力を行う I/O（ Input / Output の略で、アイ・オーと読む）</li>
</ul>
<p>から構成されています。</p>
<p>&nbsp;</p>
<div class="chip"><i class="material-icons indigo-text">description</i> コンピュータのハードウェアの構成要素</div>
<p><img decoding="async" class="hoverable materialboxed r-width pad_05 mag_h30" src="/wordpress/wp-content/uploads/2018/08/min_architecture_hw1.png" alt="" loading="lazy"></p>
<h2>学習手順 2：COMETⅡの CPU とメモリの構造を知る</h2>
<p>基本情報技術者試験は、国家試験なので、特定のメーカーのハードウェアを題材にすることができません。</p>
<p>そこで、COMETⅡという架空のコンピュータがあるとして、それを題材にした問題が出題されます。COMETⅡ 専用のアセンブリ言語が CASLⅡ というわけです。</p>
<p>コンピュータである以上、ハードウェアの構成要素として CPU 、メモリ、I/O があるはずですが、CASLⅡ の問題では、I/O は登場しません。プログラムから I/O を使う場合は、OS（架空の OS があるとします）を介して間接的に使うことになっているからです。</p>
<p>つまり、問題には、</p>
<ol class="background">
<li>あらかじめ何らかの方法でメモリにデータが入っている</li>
<li>そのデータを CPU の内部で演算する</li>
<li>その結果をメモリに記憶する</li>
</ol>
<p>というプログラムしか出題されないのです。</p>
<p>したがって、<strong>COMETⅡ の CPU とメモリの内部構造を知っておけば、CASLⅡ のハードウェアの知識は十分</strong> です。</p>
<p>&nbsp;</p>
<p>CPU の内部には、データを格納する箱が並んでいます。これらの箱は、<strong>レジスタ</strong> と呼ばれ、GR0 や GR1 などの名前で区別されます。</p>
<p>メモリの内部にも、データを格納する箱が並んでいますが、レジスタとは呼ばれません。メモリの箱は、<strong>アドレス</strong>（箱を識別する番号）で区別されます。</p>
<p>&nbsp;</p>
<div class="chip"><i class="material-icons indigo-text">description</i>  COMETⅡの CPU の内部構造</div>
<p><img decoding="async" class="materialboxed hoverable r-width pad_05 mag_h30" src="/wordpress/wp-content/uploads/2018/08/light_architecture_cpu1.png" alt="" loading="lazy"></p>
<div class="chip"><i class="material-icons indigo-text">description</i>  COMETⅡのメモリの内部構造</div>
<p><img decoding="async" class="materialboxed hoverable r-width pad_05 mag_h30" src="/wordpress/wp-content/uploads/2018/08/light_architecture_memory.png" alt="" loading="lazy"></p>
<h2>学習手順 3：CASLⅡ の命令の構文を知る（構文は 1 つだけです）</h2>
<p><strong>CASLⅡ の学習に時間がかからないのは、命令の構文が、基本的に 1 つだけしかない</strong> からです。</p>
<p><span class="u">英語の命令文と同じ「動詞 目的語」という構文で、「～せよ ・・・を」を表します。</span></p>
<p>「～せよ」を表す<strong> 動詞の部分をオペコード</strong> と呼び、「・・・を」を表す <strong>目的語の部分をオペランド</strong> と呼びます。</p>
<p>英語の目的語と同様に、オペランドは、無い場合と、1 個の場合と、2 個の場合があります。</p>
<p>オペランドが 2 個の場合は、カンマで区切ります。</p>
<p>&nbsp;</p>
<div class="chip"><i class="material-icons indigo-text">description</i> 英語の命令文の構文</div>
<table class="bordered no-font">
<tbody>
<tr>
<td>STOP</td>
<td>動詞だけ（目的語無し）</td>
</tr>
<tr>
<td>HELP ME</td>
<td>動詞と目的語 1 個</td>
</tr>
<tr>
<td>GIVE ME MONEY</td>
<td>動詞と目的語 2 個</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<div class="chip"><i class="material-icons indigo-text">description</i>  CASLⅡ の構文</div>
<table class="bordered">
<tbody>
<tr>
<td>RET</td>
<td>オペコードだけ（オペランド無し）</td>
</tr>
<tr>
<td>JZE L1</td>
<td>オペコードとオペランド 1 個</td>
</tr>
<tr>
<td>LD GR0, DATA1</td>
<td>オペコードとオペランド 2 個<br />（オペランドをカンマで区切る）</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>オペコードに指定できる命令の種類は、すぐあとで説明します。</p>
<p><strong>オペランドに指定できるのは、CPU やメモリの箱</strong> です。箱を対象にして、データのコピーや演算を行うのです。</p>
<p>&nbsp;</p>
<div class="mag_h30 divider"></div>
<p><span class="badge red white-text" style="float: left!important;">PR</span></p>
<div class="center" style="padding-top: 1rem;">
<a href="https://www.amazon.co.jp/dp/B081PNHBRJ"><br />
<img decoding="async" class="hoverable z-depth-5" src="/wordpress/wp-content/uploads/2018/08/casl2_banner.png" loading="lazy"><br />
</a>
</div>
<div class="mag_h30 divider"></div>
<h2>学習手順 4：オペコードの種類を知る（ 28 種類だけです）</h2>
<p>CASLⅡ の学習に時間がかからないことには、もう 1 つ理由があります。</p>
<p><strong>オペコードに指定する命令の種類がとても少ないのです。全部で 28 個しかありません。</strong>命令は、英語を短縮した表現になっています。</p>
<p>たとえば、LD という命令は、load を短縮したものです。</p>
<p>以下に、すべての命令を示しますが、丸暗記する必要はありません。過去問題を 2 、3 問くらい練習すれば、ほとんどの命令を見ることになり、自然と覚えられるからです。</p>
<p>&nbsp;</p>
<div class="chip"><i class="material-icons indigo-text">description</i>  CPU とメモリでデータをコピーする命令</div>
<table class="bordered">
<tbody>
<tr>
<td width="50%">メモリから CPU へ</td>
<td width="50%">LD, LAD, POP</td>
</tr>
<tr>
<td>CPU からメモリへ</td>
<td>ST, PUSH</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<div class="chip"><i class="material-icons indigo-text">description</i>  CPU 内で演算する命令</div>
<table class="bordered">
<tbody>
<tr>
<td width="50%">算術演算（加算と減算）</td>
<td width="50%">ADDA, ADDL, SUBA, SUBL</td>
</tr>
<tr>
<td>論理演算（ビット演算）</td>
<td>AND, OR, XOR</td>
</tr>
<tr>
<td>比較演算</td>
<td>CPA, CPL</td>
</tr>
<tr>
<td>シフト演算</td>
<td>SLA, SRA, SLL, SRL</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<div class="chip"><i class="material-icons indigo-text">description</i> プログラムの流れを変える命令</div>
<table class="bordered">
<tbody>
<tr>
<td width="50%">ジャンプ</td>
<td width="50%">JPL, JMI, JNZ, JZE, JOV, JUMP</td>
</tr>
<tr>
<td>サブルーチン呼び出し</td>
<td>CALL, RET</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<div class="chip"><i class="material-icons indigo-text">description</i> その他（試験問題には登場しません）</div>
<table class="bordered">
<tbody>
<tr>
<td width="50%">OS の機能を使う</td>
<td width="50%">SVC</td>
</tr>
<tr>
<td>何もしない命令</td>
<td>NOP</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>COMETⅡと CASLⅡ の仕様書は、午後問題に添付されています。情報処理推進機構の Web ページから過去問題（最近のものなら何年度でも構いません）の PDF ファイルをダウンロードして、CASLⅡ の仕様書の部分をプリンタで印刷するとよいでしょう。</p>
<p><a href="https://www.jitec.ipa.go.jp/1_13download/shiken_yougo_ver4_2.pdf#page=5" rel="noopener" target="_blank"></p>
<div class="card mag_h40 hoverable grey lighten-5 pad_20 c-round">
<span class="post-title">IPA PDF 資料 2. アセンブラ言語 CASLⅡの仕様<i class="material-icons mag_lt05 red-text">picture_as_pdf</i></span>
</div>
<p></a></p>
<p>仕様書を入手できたら、いよいよ最後の学習手順です。</p>
<h2>学習手順 5：プログラムの形式を知る</h2>
<p>これから紹介する 2 つのプログラムを読めれば、CASLⅡ のプログラムの形式を知ることができます。過去問題のプログラムも読めるようになります。</p>
<p>&nbsp;</p>
<p>1 つ目は、2 つの数値を加算するプログラムです。以下に示します。</p>
<p>プログラムの 1 行に記述できるのは、ラベル、オペコード、オペランド、コメントです。</p>
<p>ラベルは、その行に付けた任意の名前です。<br />
コメントは、その行を説明する任意の文書です。</p>
<p>詳しいコメントを付けたので、プログラムを読んでみてください。</p>
<p>先ほど紹介しなかった START、END、DC、DS は、プログラムの記述の開始と終了、およびデータを定義する命令であり、擬似命令（アセンブラ命令）と呼ばれます。</p>
<p>それぞれの命令の意味と機能は、CASLⅡ の仕様書に詳しく示されています。</p>
<p>&nbsp;</p>
<div class="chip"><i class="material-icons indigo-text">description</i>  2 つの数値を加算するプログラム</div>
<pre class="language-none">
<span class="blue-text">ラベル</span>  <span class="orange-text">オペコード</span>  <span class="cyan-text">オペランド</span>     <span class="blue-grey-text">コメント</span>
SAMPLE  START                 ; プログラムの先頭
        LD        GR0,DATA1   ; GR0 に DATA1 をコピーする
        ADDA      GR0,DATA2   ; GR0 に DATA2 を加算する
        ST        GR0,ANS     ; GR0 を ANS にコピーする
        RET                   ; 処理を終了する
DATA1 	DC        123         ; 123 という値のデータの定義
DATA2 	DC        456         ; 456 という値のデータの定義
ANS     DS        1           ; 加算結果の格納領域の定義
        END                   ; プログラムの末尾
</pre>
<p>&nbsp;</p>
<p>2 つ目は、配列の合計値を求めるプログラムです。以下に示します。</p>
<p>ここでも、詳しいコメントを付けたので、プログラムを読んでみてください。</p>
<p><code class="language-none"> GR0, DATA, GR1 </code> というオペランドは、目的語が 3 つのように見えますが、 <code class="language-none"> GR0, DATA[ GR1 ] </code> という配列処理を意味しているので、実際には目的語は 2 つです。</p>
<p>&nbsp;</p>
<div class="chip"><i class="material-icons indigo-text">description</i> 配列の合計値を求めるプログラム</div>
<pre class="language-none">
<span class="blue-text">ラベル</span>  <span class="orange-text">オペコード</span> <span class="cyan-text">オペランド</span>     <span class="blue-grey-text">コメント</span>
PROG1   START                     ; プログラムの先頭
        XOR       GR0,GR0         ; GR0 をゼロで初期化する
        XOR       GR1,GR1         ; GR1 をゼロで初期化する
L1      CPA       GR1,LEN         ; GR1 と LEN を比較する
        JZE       L2              ; 等しければ L2 にジャンプする
        ADDA      GR0,DATA,GR1    ; GR0 に DATA[GR1] を加算する
        ADDA      GR1,=1          ; GR1 に 1 を加算する
        JUMP      L1              ; L1 にジャンプする
L2      ST        GR0,ANS         ; GR0 を ANS にコピーする
        RET                       ; 処理を終了する
DATA    DC        12,34,56,78,90  ; 配列の要素の定義
LEN     DC        5               ; 配列の要素数の定義
ANS     DS        1               ; 合計値の格納領域の定義
        END                       ; プログラムの末尾
</pre>
<p>ここまでできれば、CASLⅡ の言語構文の学習は完了です。それほど時間がかからないことがわかったでしょう。</p>
<p>このあとは、過去問題の練習に進んでください。</p>
<p>ただし、過去問題を解くには、CASLⅡ の言語構文の他にも、2 進数に関する知識が必要になります。もしかすると、そこが大きな壁になるかもしれません。</p>
<h2>問題を解くためには 2 進数に関する知識が必要とされる</h2>
<p>アセンブリ言語である CASLⅡ は、コンピュータの内部のハードウェアの動作を、そのまま記述します。</p>
<p>コンピュータの内部では、データが 2 進数で取り扱われていて、加算や減算だけでなく、<span class="u">ビット演算</span> や <span class="u">シフト演算</span> もバリバリ使われています。ビット演算 や シフト演算 は、2 進数のデータを対象とした演算です。</p>
<p>さらに、マイナスの数を表すために、<span class="u">2 の補数表現</span> も使われています。これも 2 進数独自の仕組みです。</p>
<p>&nbsp;</p>
<p>このように、CASLⅡ の問題を解くためには、2 進数に関する様々な知識が必要とされるのです。</p>
<p>2 進数に関する知識は、午前問題の最初の方で出題されます。以下に、おもな知識をまとめておきますので、「できる」ならチェックしてください。</p>
<p><strong>ハッキリ言って、全部「できる」でないと、CASLⅡ の問題を解くのは困難</strong>でしょう。「プログラムは読めるけれど、問題が解けない」ということになってしまいます。</p>
<h3>CASLⅡ 選択チェックリスト</h3>
<p>CASLⅡ を選ぼうかどうか迷っている人にお聞きします。2 進数できますか？</p>
<div class="card mag_h30 grey lighten-5 z-depth-0 c-round pad_20 indigo-text">
<span class="post-title">CASLⅡ 選択チェックリスト</span></p>
<form action="#">
<label><input type="checkbox" class="filled-in" /><span>10 進数 と 2 進数 の変換をする</span></label><br />
<label><input type="checkbox" class="filled-in" /><span>2 進数 と 16 進数 の変換をする</span></label><br />
<label><input type="checkbox" class="filled-in" /><span>2 の補数表現 で マイナスの数 を表す</span></label><br />
<label><input type="checkbox" class="filled-in" /><span>論理右シフト と 算術右シフト の違いを説明する</span></label><br />
<label><input type="checkbox" class="filled-in" /><span>符号拡張 の意味と方法を説明する</span></label><br />
<label><input type="checkbox" class="filled-in" /><span>AND 、OR 、XOR の ビット演算 の役割を説明する</span></label><br />
<label><input type="checkbox" class="filled-in" /><span>シフト演算 と 加算 で 乗算 を行う方法を説明する</span></label><br />
</form>
</div>
<p><i class="material-icons indigo-text">label</i> 関連タグ <a href="../../tag/論理回路/" class="tag">論理回路</a><a href="../../tag/2進数/" class="tag">2 進数</a></p>
<div class="divider mag_tp40 mag_bt30"></div>
<p>いかがでしたか。CASLⅡ の言語構文を覚えるには、それほど時間がかかりません。<strong>1 日（ 8 時間くらい）もあれば十分</strong>でしょう。</p>
<p>ただし、CASLⅡ の問題を解くには、言語構文の知識だけでなく、2 進数に関する様々な知識が必要とされるのです。</p>
<p>具体的に、どのような場面で、どのような知識が必要とされるのかは、次回の記事で紹介します。</p>
<p><a href="/gogo_arukikata/guide_caslii_2_of_questions_at_pm/"></p>
<div class="card hoverable mag_h50 c-round">
<div class="row valign-wrapper direction-column-on-small">
<div class="col s12 m4 pad_00 flex"><img decoding="async" src="/wordpress/wp-content/uploads/2018/08/caslII_2_cover-300x169.jpg" /></div>
<div class="col s12 m8 black-text bold pad_20">午後問題の歩き方 ｜ <br />CASLⅡで必要となる 2 進数に関する知識</div>
</div>
</div>
<p></a></p>
<p>それでは、またお会いしましょう！</p>
<p>&nbsp;</p><p>The post <a href="https://fenavi.seplus.jp/gogo_arukikata/guide_caslii_1_of_questions_at_pm/">午後問題の歩き方 | プログラミング問題 CASLⅡは意外と短時間で学習できる (選択可否チェックリスト付き)</a> first appeared on <a href="https://fenavi.seplus.jp">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
