1 |
面接授業:A,C |
ガイダンス:プログラミングとは? ScratchとPythonの紹介・アカウントの作成・使い方の学習 Scratch:マウスで(GUI)Web上でプログラミングできる言語と環境 Python:エディタで(CUI)プログラミングする言語と環境 Scratchで楽しくプログラミング:簡単なゲームを作ってみよう。関数を使ったり、数学の公式で計算しよう。 |
事前学修 |
本科目のシラバスをよく読んでくること。 ScratchとPythonについて調べてみよう。 (1時間) |
事後学修 |
各自のPCにプログラミング環境を構築しよう。 Scratchのブロックに何があるかを見ておこう。 数学関数と四則演算を組み合せていろんな計算に応用しよう。入出力の仕方をマスターしておく。 (1時間) |
2 |
面接授業:A,C |
構造化プログラミングとアルゴリズム入門: ・構造化プログラミング ①連続処理②選択処理③反復処理 それぞれについて、Scratchで基本的なプログラムを書いてみよう。 ・アルゴリズム入門:値の交換・条件分岐・回数ループ ①ミルクとトマトジュースを入れ替えるには? ②二つの数の小さい方を見つけるには? ③数を数えるには? 他にもいろいろチャレンジしよう。 |
事前学修 |
アカウント情報(IDとパスワード)を確認し、Scratchにログインできるようにしておく。 入出力を復習しておく。二つの変数の中身を入れ替えるにはどうすればいいか考えておく。 前回に出題された課題のプログラムを作成する. (3時間) |
事後学修 |
Scratchによる入出力・値の入れ替え方・選択処理・反復処理を復習する。 自宅でもプログラミングして授業内容を確認。 動かなかった人→復習。動いた人→自由に応用。 (2時間) |
3 |
面接授業:A,C |
制御構造の表現とアルゴリズムの初歩 ・制御構造の表現:フローチャート・PAD ①連続処理②選択処理③反復処理 それぞれについて、フローチャートやPADを通して制御構造を理解しよう。 ・アルゴリズムの初歩 前回の基本的なプログラムを少し応用して初歩のアルゴリズムを学ぼう。 ①三つの数の最小値を求めるアルゴリズムは? ②コラッツ数列を次々出力するには? ③移動平均を求めるには? 他にもいろいろチャレンジしよう。 |
事前学修 |
Scratchのブロックに何があるかを予習しておく。 前回に出題された課題のプログラムを作成する. (3時間) |
事後学修 |
自宅でもプログラミングして授業内容を確認。 動かなかった人→復習。動いた人→自由に応用。 (2時間) |
4 |
面接授業:A,C |
選択処理の基本と反復処理入門 選択処理の基本3パターン: ①あるときは実行(if?型構文):雨が降ったら傘を差す ②いずれかを実行(if?else?型構文):合格それとも不合格? ③どれかを実行(if?elif?else型構文):成績はA,B,CそれともD? 反復処理入門:繰り返しを使って、いろんな数列を出力しよう。 |
事前学修 |
選択処理について予習しておく。 前回に出題された課題のプログラムを作成する. (3時間) |
事後学修 |
Scratchによる条件分岐の使い方を確認しておく。 自宅でもプログラミングして授業内容を確認。 動かなかった人→復習。動いた人→自由に応用。 (2時間) |
5 |
面接授業:A,C |
選択処理のネストと反復処理の基本 反復処理の基本3パターン: ①無限ループ(while true型):ずっと?する ②回数ループ(for型):?回繰り返す ③条件ループ(until型):?まで繰り返す 選択処理のネスト:条件分岐をネストして成績を判定しよう。 選択と反復:偶数なら半分,奇数なら3倍して1を足す。無限に繰り返すと…?
|
事前学修 |
選択処理(if文)を応用できるように使い方を復習しておく。 Scratchにある3種類のループ(無限ループ・回数ループ;条件ループ)について調べておく。 前回に出題された課題のプログラムを作成する. (3時間) |
事後学修 |
Scratchによる条件分岐のネストの使い方を確認しておく。 自宅でもプログラミングして授業内容を確認。 動かなかった人→復習。動いた人→自由に応用。 (2時間) |
6 |
面接授業:A,C |
選択処理の応用と反復処理のネスト(多重ループ) 多重ループで二進数の繰り上がりを学ぶ。 回数ループで数列の和でπやeを計算しよう。 条件ループで数を数えよう。 虫食い算や覆面算を解いてコンピュータの威力を実感しよう。 |
事前学修 |
Scratchにある3種類のループ(無限ループ・回数ループ;条件ループ)について調べておく。 ループのネスト(多重ループ)について調べる。 前回に出題された課題のプログラムを作成する. (3時間) |
事後学修 |
Scratchで作成した多重ループの動作を理解する。 課題を復習して同じ処理を繰り返すことの便利さを理解する。 自宅でもプログラミングして授業内容を確認。 動かなかった人→復習。動いた人→自由に応用。 (2時間) |
7 |
面接授業:A,C |
前半まとめ:選択処理と反復処理の応用課題の演習 分岐処理(条件判断)と反復処理(繰り返し)を利用した課題プログラムを作成する。
|
事前学修 |
Scratchの選択処理・反復処理について復習しておく。 前回に出題された課題のプログラムを作成する. (3時間) |
事後学修 |
いろいろな課題を通して、選択処理と反復処理の使い方をマスターする。 自宅でもプログラミングして授業内容を確認。 動かなかった人→復習。動いた人→自由に応用。 (2時間) |
8 |
面接授業:A,C |
アルゴリズムと計算量: ・アルゴリズムによって精度や計算時間が変わることを学ぶ。 アルゴリズムの元祖「ユークリッドの互除法」で最大公約数を求める。 乱数:数当てゲームと二分法,πの計算(モンテカルロ法) ・リファクタリング:よりよいプログラムにするにはどうすればいいか?
|
事前学修 |
ユークリッドの互除法について調べておく。 前回に出題された課題のプログラムを作成する. (3時間) |
事後学修 |
条件が成立するまで(until)繰り返すパターンを理解する。 二分法やモンテカルロ法について復習する。 できなかった課題は時間をかけて自宅で取り組む。 (2時間) |
9 |
面接授業:A,C |
リストとデータ構造: ・リスト:データをまとめて扱うリストの基本的な使い方を学ぼう。 ・データ構造:リストを使ってデータ構造(①キュー②スタック③リングバッファ)を学ぼう。 ①キューと②スタックで文字列を並べ替えたり、③リングバッファを回転寿しで学んだり、ハノイの塔で遊ぼう。 ・リスト応用:ヨセフスの問題(死亡フラグ)・エラトステネスの篩(素数)・ソート(並べ替え)にチャレンジ。
|
事前学修 |
Scratchのリストについて調べる。 十進数から二進数への変換について調べる。 前回に出題された課題のプログラムを作成する。 (3時間) |
事後学修 |
Scratchのリストの操作方法を予習する。 キュー・スタック・リングバッファというデータ構造について理解する。 自宅でもプログラミングして授業内容を確認。 動かなかった人→復習。動いた人→自由に応用。 できなかった課題は時間をかけて自宅で取り組む。 (2時間) |
10 |
面接授業:A,C |
各種ソートアルゴリズム 参加型イベント「人間ソート」を通じて、下記のソートの違いについて学ぶ。 ①交換ソート ②選択ソート ③バブルソート ④コムソート ⑤クイックソート |
事前学修 |
いろいろなソート法について調べておく。 値の入れ替え・ループのネスト・最小値、を復習しておく。 前回に出題された課題のプログラムを作成する。 (3時間) |
事後学修 |
ソートの動作を理解して、アルゴリズムによる計算量の違いについて理解する。 自宅でもプログラミングして授業内容を確認。 動かなかった人→復習。動いた人→自由に応用。 できなかった課題は時間をかけて自宅で取り組む。 (2時間) |
11 |
面接授業:A,C |
Python入門1:ScratchからPythonへ 今までScratchで学んだ基本的な制御構造をPythonではどのように書くかを学ぼう。
|
事前学修 |
Python 学習環境 Google Colaboratory について調べておく。 Python の基本構文について調べておく。 該当するScratchの過去の課題を復習しておく。 前回に出題された課題のプログラムを作成する. (3時間) |
事後学修 |
自宅でもプログラミングして授業内容を確認。 動かなかった人→復習。動いた人→自由に応用。 できなかった課題は時間をかけて自宅で取り組む。 (2時間) |
12 |
面接授業:A,C |
Python入門2:Pythonで構造化プログラミング 今までScratchで学んだ各種のアルゴリズムをPythonで書くことを通じて、プログラムを多言語へ移植するノウハウを学ぼう。
|
事前学修 |
Python 学習環境 Google Colaboratory の使い方を復習しておく。 Python の基本構文について復習しておく。 該当するScratchの過去の課題を復習しておく。 前回に出題された課題のプログラムを作成する. (3時間) |
事後学修 |
自宅でもプログラミングして授業内容を確認。 動かなかった人→復習。動いた人→自由に応用。 できなかった課題は時間をかけて自宅で取り組む。 (2時間) |
13 |
面接授業:C,E |
総括 今まで学んだことを応用して課題プログラムを作成する。 |
事前学修 |
これまでに学習したプログラムを復習し、理解しておく。 前回に出題された課題のプログラムを作成する. (2時間) |
事後学修 |
本授業を通してできなかった課題は時間をかけて自宅で取り組む。 学んだことを活かして自由にプログラミングする。 (1時間) |