改訂新版・初級Aコーステキスト
学習指導案
学習指導案
■単元名
初級Aコース Unit1-2 ITの基礎を学ぼう!
■単元の学習目標
ITの基礎として以下を学習する。
PC操作に必須のタッチタイピングとファイル操作。
コンピューターの5大装置。
デジタルとアナログ
使用するツールであるProcessingの環境を整える。
■テーマ選定の理由
社会の隅々までIT化された現代社会において、最低限必要なIT知識を身に付けておくことが重要である。
■単元の学習計画
カリキュラム
PC操作の基礎 Unit1
ハードウェアとソフトウェア
コンピューターの5大装置
デジタルとアナログ
プログラムとは
Processingとは Unit2
起動しよう
使いやすくしよう
■育成したい思考力
ロジカルシンキング
■評価計画
PCの操作、特にコピー・ペーストができる。
コンピューターの5大装置について理解している。
デジタル情報の単位や進数変換について理解している。
■応用・発展
身近なところでプログラムを使用しているものを調べてみる。
継続してタッチタイピングを練習する。
講義
Unit 1(120分)
Processing
コースの紹介
「プログラミング基礎」
ITの基礎を学ぼう!
「PC操作の基礎」
「ハードウェアとソフトウェア」
「コンピューターの5大装置」
「デジタルとアナログ」
「プログラムとは」
AI活用講座
AI活用講座 第1回をご紹介します。
- 生成AIってなんだろう?〜claude.aiで最初の会話〜(AI活用講座 第1回):claude.aiにログインし、自己紹介や気になる質問を投げてAIと会話してみます。「AIは会話ができる」ことを確認します。
Unit 2(120分)
Processing
準備 さあ、はじめよう!
「Processingとは」
「起動しよう」
「使いやすくしよう」
プログラミング基礎
変数を学ぼう!
「変数とは」
「変数には型がある」
「変数に名前をつけよう」
AI活用講座
AI活用講座 第2回をご紹介します。
- AIは「なんでも屋さん」じゃない〜得意なこと・苦手なこと〜(AI活用講座 第2回):アイデア出しや要約など得意そうな質問と、最新ニュースや複雑な計算など苦手そうな質問を実際に試し、AIの得意・苦手を整理します。
Unit 1 and 2 講義動画
学習指導案
学習指導案
■単元名
初級Aコース Unit2-12 プログラミング基礎
■単元の学習目標
プログラミングの基礎的事項として以下を学習する。
変数
座標
演算子
関数
構造化プログラミング
デバッグ
■テーマ選定の理由
最初にプログラミングの基本的な考え方を整理して習得することが必要である。英語を学ぶときに基本構文や文法を学ぶのと同じである。ここで学んだことはプログラミング一般に言えることであり、Processing以外のプログラミング言語を学ぶときにも役立つものである。
■単元の学習計画
カリキュラム
変数を学ぼう! Unit2to3
座標を学ぼう! Unit4
演算子を学ぼう! Unit5
関数を使いこなそう! 関数とは 組み込み関数を使おう Unit6
関数を使いこなそう! Unit7
構造化プログラミングを学ぼう! 構造化プログラミングとは Unit8
構造化プログラミングを学ぼう! 処理を多重に分岐しよう 処理を2重にループしよう Unit9
復習 Unit10
構造化プログラミングを学ぼう! 関数を活用しよう1 Unit11
構造化プログラミングを学ぼう! 関数を活用しよう2 Unit12
デバッグしてみよう! Unit12
■育成したい思考力
ロジカルシンキング
■評価計画
プログラミングの基礎知識が身に付いている。
簡単な構造化プログラミングができる。
■応用・発展
Processing以外の言語、例えばPythonではどのような文法になっているか調べてみる。
講義
Unit 3(120分)
Processing
プログラミング基礎
変数を学ぼう!
「変数を使おう」
「配列を使おう」
Roblox演習
この単元で学んだ「変数」の考え方を、Roblox Studio上でも体験します。
- 変数でパーツの大きさ・位置を変える:幅・高さ・位置を変数で管理してProcessingの図形を描く演習を、Roblox Studioのパーツ(Part)のSize・Positionプロパティを変数で制御する演習に置き換えます。同じ変数の考え方を3D空間で再体験できます。
AI活用講座
AI活用講座 第3回をご紹介します。
- 4Dフレームワークとの出会い〜AIと上手につきあう4つの力〜(AI活用講座 第3回):Delegation(委任)・Description(記述)・Discernment(見極め)・Diligence(誠実さ)の4つの力を紹介し、AIと上手につきあうための土台を作ります。
Unit 4(120分)
Processing
プログラミング基礎
座標を学ぼう!
「座標とは」
「座標の変換」
Roblox演習
この単元で学んだ「座標」の考え方を、Roblox Studioの3D空間に広げます。
- 座標を使ったオブジェクト配置:Processingのrect(x, y, w, h)で四角形を描く演習を、Robloxではパーツ(Part)をLuaスクリプトでワールド座標(x, y, z)に配置する演習に置き換えます。2次元座標(x, y)の学びを3次元座標(x, y, z)に拡張して理解できます。
AI活用講座
AI活用講座 第4回をご紹介します。
- Delegation①:何をAIに任せる?何は自分でやる?(AI活用講座 第4回):「AIに任せてよい作業」と「自分でやるべき作業」を具体例で仕分けし、任せる・任せない判断軸を身につけます。
Unit 3 and 4 講義動画
Unit 5(120分)
Processing
プログラミング基礎
演算子を学ぼう!
「算術演算子と代入演算子とは」
「関係演算子とは」
「論理演算子とは」
「ベン図とは」
AI活用講座
AI活用講座 第5回をご紹介します。
- Delegation②:3つの働き方〜自動化・拡張・エージェント〜(AI活用講座 第5回):AIとの関わり方には「オートメーション」「オーグメンテーション」「エージェンシー」の3つのモードがあることを、具体例とともに学びます。
Unit 6(120分)
Processing
プログラミング基礎
関数を使いこなそう!
「関数とは」
「組み込み関数を使おう」
AI活用講座
AI活用講座 第6回をご紹介します。
- Delegation実践:作品づくりでAIに任せる場面を考えよう(AI活用講座 第6回):自分が作りたい作品や取り組みたい課題について、「AIに任せる部分」「自分でやる部分」をワークシートに書き出して発表します。
Unit 5 and 6 講義動画
Unit 7(120分)
Processing
プログラミング基礎
関数を使いこなそう!
「自分の関数を作ろう」
Roblox演習
自分で作った関数を、Roblox Studioで実際に使ってみます。
- 自作関数で建物パーツを再利用する:自作関数を使って処理をまとめる演習を、「塔を建てる関数」「壁を作る関数」のように、Robloxで繰り返し使う建築処理を関数化する演習に置き換えます。関数化のメリット(再利用・保守性)を実感できます。
AI活用講座
AI活用講座 第7回をご紹介します。
- Description①:AIに「伝わる」お願いの仕方(AI活用講座 第7回):目的・対象・条件を伝えると、AIの回答がどう変わるかをclaude.aiで実際に比較体験します。
Unit 8(120分)
Processing
プログラミング基礎
構造化プログラミングを学ぼう!
「構造化プログラミングとは」
「順次とは」
「選択とは」
「繰り返しとは」
Roblox演習
「繰り返し」「選択(もし〜なら)」の理解を、Roblox Studioでの制作を通じて深めます。
- くり返し処理でブロックを一列に並べる:for文で正方形を横に並べて描く演習を、for文でパーツを一定間隔に並べて塀を作る演習に置き換えます。くり返しの効果が「増える・広がる」ものとして視覚的にわかります。
- 条件分岐でブロックの色を変える:マウス位置などの条件によって図形の色を変える演習を、プレイヤーとの距離や座標条件によってパーツの色(Color/BrickColor)を切り替える演習に置き換えます。選択構造(if文)の理解を継続して深められます。
AI活用講座
AI活用講座 第8回、および本コースとの対応が明記されている第29回・第30回をご紹介します。実際の授業では、このうちいずれか1回を選んで実施します。
- Description②:良い指示・悪い指示を比べてみよう(AI活用講座 第8回):「目的」「対象読者」「条件」「例」の4要素を使い、あいまいな指示文を改善するペアワークを行います。
- くり返し処理をAIに作ってもらおう(AI活用講座 第29回):「星型のマークを5個、横一列に並べて表示するWebページを作って」とAIに依頼し、コード中の「くり返し」にあたる部分(forループ等)を一緒に確認します。回数や間隔を変えて依頼し直す体験も行います。
- 条件分岐をAIに作ってもらおう(AI活用講座 第30回):「ボタンを押すと、ランダムで『あたり』か『はずれ』が表示されるくじびきページを作って」とAIに依頼し、コード内の条件分岐部分を確認します。あたりの確率を変える依頼にも挑戦します。
Unit 7 and 8 講義動画
Unit 9(120分)
Processing
プログラミング基礎
構造化プログラミングを学ぼう!
「処理を多重に分岐しよう」
「処理を2重にループしよう」
Roblox演習
「2重ループ」の理解を、Roblox Studio上の建築物づくりで深めます。
- 二重ループで格子状にブロックを配置する:二重ループで格子状の図形を描く演習を、二重for文でパーツを格子状(床や壁)に敷き詰める演習に置き換えます。ループのネスト構造の理解を、実際に建築物ができる達成感とともに学べます。
AI活用講座
AI活用講座 第9回をご紹介します。
- Description実践:自分の作りたいものをAIに説明してみよう(AI活用講座 第9回):4要素チェックリストを使い、自分が作りたいミニ作品(ゲーム・Webページ等)の説明文を下書きします。
Unit 10(120分)
Processing
復習
AI活用講座
AI活用講座 第10回をご紹介します。
- LLMミニ知識①:AIは「言葉の続きを予想する」しくみ(AI活用講座 第10回):文章の続きを予想するゲームを通じて、AIが「考えている」のではなく「予測している」というイメージをつかみます。
Unit 9 and 10 講義動画
Unit 11(120分)
Processing
プログラミング基礎
構造化プログラミングを学ぼう!
「関数を活用しよう1」
AI活用講座
AI活用講座 第11回をご紹介します。
- LLMミニ知識②:AIは時々まちがえる(ハルシネーション入門)(AI活用講座 第11回):存在しない本のあらすじなど答えにくい質問をAIに聞き、もっともらしい間違い(ハルシネーション)があることを知ります。
Unit 12(120分)
Processing
バグフィックス用のプログラムを以下からダウンロードします。
プログラミング基礎
構造化プログラミングを学ぼう!
「関数を活用しよう2」
プログラミング基礎
デバッグしてみよう!
「デバッグとは」
「便利な機能を使おう」
まとめ
「プログラミング基礎のまとめ」
AI活用講座
AI活用講座 第12回をご紹介します。
- クール1まとめ:Delegation×Descriptionで小さな作品を頼もう(AI活用講座 第12回):これまで学んだDelegationとDescriptionを組み合わせて、実際にAIへ小さな作品作りを依頼します。
Unit 11 and 12 講義動画
改訂新版・初級A 課題
課題1 進数変換
1-1.
10進数の31を2進数に変換しなさい。下のヒントを見て手計算で行うか、Processingを用いてもよい。余りを求める演算子は%です。
1-2.
また2進数の10111を10進数に変換しなさい。下のヒントを参考にすること。計算にProcessingを用いる場合、2のn乗はpow(2, n)で計算できます。
[1-1.のヒント]
10進数の26を2進数に変換する方法を説明します。
ステップ1: 2で割り続ける
最初に、10進数の26を2で割ります。商を次のステップに持ち越し、余りを保持します。
26 ÷ 2 = 13 … 0
ステップ2: 商を2で割り続ける
次に、ステップ1で求めた商である13を2で割ります。
13 ÷ 2 = 6 … 1
ステップ3: 再び商を2で割り続ける
次に、ステップ2で求めた商である6を2で割ります。
6 ÷ 2 = 3 … 0
ステップ4: 再び商を2で割り続ける
次に、ステップ3で求めた商である3を2で割ります。
3 ÷ 2 = 1 … 1
ステップ5: 最後の商を計算する
最後に、ステップ4で求めた商である1を2で割ります。
1 ÷ 2 = 0 … 1
ステップ6: 余りを逆順に並べる
ステップ1からステップ5までの計算結果の余りを逆順に並べると、2進数の表現が得られます。
26の2進数表現: 11010
以上が、10進数の26を2進数に変換する方法です。
[1-2.のヒント]
次に2進数の11010を10進数に変換する方法を説明します。
ステップ1: 2進数の桁の重みを計算する
2進数では、右端の桁から順に2のべき乗の重みを持ちます。右端の桁から順に、2^0, 2^1, 2^2, 2^3, 2^4 のように増えていきます。2^4は2の4乗を意味します。
桁の位置: 4 3 2 1 0
桁の重み: 16 8 4 2 1
ステップ2: 桁の重みと2進数の対応する桁を掛け合わせる
各桁の重みと2進数の対応する桁の値を掛け合わせ、合計を計算します。
1 * 16 = 16
1 * 8 = 8
0 * 4 = 0
1 * 2 = 2
0 * 1 = 0
ステップ3: 合計を計算する
ステップ2で計算した値を合計します。
16 + 8 + 0 + 2 + 0 = 26
以上が、2進数の11010を10進数に変換する方法です。結果として、2進数の11010は10進数の26になります。
課題2 負の数の表現
コンピュータでは計算に2進数を用いていますが、負の数を表現する場合、補数と呼ばれる数を利用します。
例えば4ビット(2進数4桁)の世界で考えます。
2進数0101に補数1011を足すと10000になります。
ところが4ビットの世界で考えているので最初の1は無視します。すなわち0000となります。
足して0になるということは補数1011は負の数-0101を表していると言えます。
このようにある自然数に対して足すと1桁増える最も小さな数を補数といいます。
2進数の補数は次のように求めることができます。
各桁の0と1を反転する。そして1を足す。
例えば0101を反転すると1010
1を足すと
1011となりこれが補数です。
それでは
1001の負の数-1001を2進数4桁で求めなさい。1001の補数を求めるということです。
課題3 XOR
排他的論理和XORを計算するProcessingのプログラムを作成しなさい。
[ヒント]
boolean演算子を組み合わせます。
XORは片方だけがTrueのときTrue、両方同じ値のときFalseになる演算子です。
boolean a, b, xor;
void setup() {
a = true;
b = true;
xor = ;
println(xor);
}
課題4 日付
日付(today=20270427)が与えられたときに年(year=2027)、月(month=4)、日(day=27)を求めて表示するプログラムを作成しなさい。
[ヒント]
int today = 20270427を整数10000で割ると小数点以下は切り捨てられて2027となります。
課題5 FizzBuzz問題
有名なFizzBuzz問題です。以下のルールに従いforループとif文を使ってProcessingのプログラムを作成すること。
1から100まで順に数を数え上げていき、3の倍数なら「Fizz」、5の倍数なら「Buzz」、両方の倍数(15の倍数)なら「Fizz Buzz」、そのいずれでもなければその数をprintlnで表示しなさい。
