高等学校「情報Ⅰ」向けPythonプログラミングツール
『理解ちゃんと学ぶ情報Ⅰ』は、情報Ⅰの学習内容に沿ってPythonのプログラミングを学べる新しい教材です。単にプログラミング言語の使い方を学ぶだけではありません。問題の発見や解決に向けて情報技術を使えるよう、アルゴリズムやモデル化・シミュレーションの理解と実践に注力した「問題解決のためのプログラミング」を学ぶツールとなっています。
学習サイクル
動画でポイントを学ぶ
学習者は各チャプターの学習内容を動画で閲覧することができます。動画は約40のチャプターで構成され、それぞれ5分から10分程度の長さで、学習ポイントを把握します。
Pythonを実行する
使用するプログラミング言語は人気のPythonです。備え付けのエディターにコードを入力して、すぐに実行できます。プログラムの実行結果は文字列やグラフで表示されます。もしプログラムに間違いがある場合には、エラー内容が表示されるので、試行錯誤を繰り返しながらプログラミング学習が行えます。
練習問題を解き、採点する
動画の内容に沿った練習問題が出題されます。学習者はその問題をPythonプログラミングで解くことができます。練習問題はヒントを参照することもできます。またプログラム結果の採点ができ、採点結果(学習履歴)がユーザー毎に記録されます。
学習の進捗を管理する
管理者は生徒毎の学習進捗度を確認することができます。
チャットする
チャットツール「mattermost」を標準装備。複数の生徒と先生、生徒同士で簡単にコミュニケーションが行えます。質問応答や作成したプログラム等の情報共有が効率的かつスムーズです。
不明点を質問する
不明点がある場合は、弊社エンジニアに質問をすることができます。初歩的なミスによるつまずきを無くします。
段階的にレベルアップできる充実したカリキュラム
各チャプターの学習内容は以下の通りです。
第1章 Pythonの基本プログラミング
【チャプター1】 さあ、Pythonをはじめよう
・Pythonの生い立ちとその思想や特徴、なぜ人気があるプログラミング言語なのかを理解します。
【チャプター2】 文字や数値を表示してみよう
・実際にプログラミングを作ってみます。基礎的なprint関数の使い方やクォートの記載方法を学びます。
【チャプター3】 エラーメッセージが表示されたらここに気を付けよう!
・エラーメッセージの読み方を習得します。
・代表的なエラーとその原因、チェック方法を6項目学びます。
【チャプター4】 コメントを活用しよう
・コメントの書き方とその重要性を学びます。
【チャプター5】 いろいろな演算子を使ってみよう
・和、差、積、商、剰余、べき乗などの演算方法を習得します。
・演算の優先順位を制御するカッコの活用方法を学びます。
【チャプター6】 コンピュータの計算誤差はなぜ発生する?
・正確に計算を行うはずのコンピュータ。でも思わぬ”ズレ”が発生する?計算誤差の発生原因と注意点を探ります。
【チャプター7】 変数を使ってみよう
・変数を使ってプログラムを使い回す方法を学ぼう。
・変数として使えない予約語や組み込み関数って何だろう?
【チャプター8】 複合代入演算子ってなんだろう
・様々な複合代入演算子( +=, -=, /=,*=,%=)の使い方を学びます。
【チャプター9】 データ型を理解しよう
・外部からのデータを取り込むinput関数及びデータ型を調べるtype関数の使い方を学びます。
・データ型を変換する方法はあるの?
【チャプター10】 if文を使って分岐してみよう
・分岐構造をコントロールするif文の使い方を学びます。
【チャプター11 】 一歩進んだif文にチャレンジしよう
・3つ以上に分岐する場合のif文(elif文)の使い方を学びます。
【チャプター12】 インデントを使ってブロックを定義しよう
・インデントを使ってブロック(処理のかたまり)を定義する方法と注意点を学びます。
【チャプター13】 反復処理のwhile文を使ってみよう
・反復を行うwhile文の書き方を学びます。
【チャプター14】 反復処理のfor文を使ってみよう
・反復を行うfor文の書き方を学びます。
・while文とfor文の使い分け方はある?
・range関数の使い方を習得します。
【チャプター15】 反復と分岐を組み合わせてみよう
・反復処理と分岐処理を組み合せてプログラミングの幅を広げます。
【チャプター16】 ループから脱出するbreak文を使ってみよう
・反復処理の途中で抜け出せるbreak文の使い方を学びます。
【チャプター17】 リストとその仲間たち
・変数の弱点を補う「リスト」の使い方について学びます。
・リストの仲間である「タプル」と「ディクショナリ」について特徴と使い分け方法を学びます。
【チャプター18】 リストを操作してみよう
・リストからデータを抜き出す「スライス」について学びます。
・リストへデータを追加・変更・削除する方法、またリスト同士を結合する方法を学びます。
【チャプター19】 オリジナル関数を作ってみよう
・自分で定義できる関数について、そのメリットと定義方法について学びます。
【チャプター20】 メソッドを使ってみよう
・データに紐づいた関数「メソッド」の呼び出し方法について学びます。
・upperメソッド、findメソッド、appendメソッド等の使用方法を学びます。
【チャプター21】 モジュールとライブラリについて
・モジュールを取り込むimport文の使い方、モジュールに別名をつけるas文の使い方を学びます。
・標準ライブラリと代表的な外部ライブラリについて学習します。
【チャプター22】 乱数を使ってみよう
・randomモジュールを使用して乱数を発生させる方法について学びます。
・randrange関数、randint関数、choice関数の使い分け方法を学習します。
【チャプター23】 WebAPIを使ってみよう
・APIとは何かとメリットを学びます。
・自分のプログラムとWebAPIとのデータ交換方法を学びます。
・郵便番号データ配信サービス「ZIPCloud」を使ってみよう。
・異なるプログラミング言語間でデータ交換できる「JSONデータ」の使い方について学習します。
【チャプター24】 リレーショナルデータベースを理解しよう
・データベースとは?そのメリットは?
・データベースの種類とリレーショナルデータベースの特徴を学びます。
・データベースの正規化について学習します。
・SQLを使ってテーブルの作成、データ登録、データ更新、データ削除、データ検索、テーブル結合の方法を学びます。
【チャプター25】 データベースを使ってみよう
・SQLiteの概要と特徴を学びます。
・テーブルの中から条件に合ったレコードを取り出す「選択」のプログラムを学習します。
・テーブルの中から特定のカラムを抜き出す「投射」のプログラムを学習します。
・複数のテーブルを1つのテーブルにする「結合」のプログラムを学習します。
・テーブルに新しいデータを追加登録するプログラムを学習します。
・テーブルから特定のデータを削除するプログラムを学習します。
・トランザクション処理について学習します。
【チャプター26】 再帰処理を使ってみよう
・再帰処理の考え方を学びます。
・再帰処理を使った階乗のプログラムを学習します。
・再帰処理のメリットとデメリットを学びます。
第2章 アルゴリズムを理解しよう
【チャプター1】 素数生成アルゴリズム:試し割法
・アルゴリズムの定義と目的、重要性について学びます。
・素数とは何か、その特性を学びます。
・素数を求める「試し割り法」のアルゴリズムを理解します。
・「試し割り法」を実装するプログラムを学びます。
【チャプター2】 素数生成アルゴリズム:エラトステネスの篩(ふるい)
・素数を求める「エラトステネスの篩」のアルゴリズムを理解します。
・「エラトステネスの篩」を実装するプログラムを学びます。
【チャプター3】 探索アルゴリズム:線形探索
・「線形探索」のアルゴリズムを理解します。
・「線形探索」を実装するプログラムを学びます。
・「線形探索」の特徴を理解します。
【チャプター4】 探索アルゴリズム:二分探索
・「二分探索」のアルゴリズムを理解します。
・「二分探索」を実装するプログラムを学びます。
・「二分探索」の特徴を理解します。
・「線形探索」と「二分探索」の違いを学習します。
【チャプター5】 ソートアルゴリズム:選択ソート
・ソートとは何か、昇順・降順について学びます。
・「選択ソート」のアルゴリズムを理解します。
・「選択ソート」を実装するプログラムを学びます。
・「選択ソート」の特徴を理解します。
【チャプター6】 ソートアルゴリズム:クイックソート
・「クイックソート」のアルゴリズムを理解します。
・「クイックソート」を実装するプログラムを学びます。
・「クイックソート」の特徴を理解します。
・「選択ソート」と「クイックソート」の違いを学習します。
第3章 モデル化とシミュレーション
【チャプター1】 モデル化とシミュレーションってなんだろう
・「モデル化」と「シミュレーション」の定義と目的、重要性について学びます。
・「モデル」の分類とそれぞれの特徴を学びます。
【チャプター2】 確定モデルのシミュレーション:複利法
・確定モデルの例として「複利法」のアルゴリズムを理解します。
・「複利法」を実装するプログラムを学びます。
・「複利法」のシミュレーションを実施します。
・「matplotlib」モジュールを使用して折れ線グラフを表示する方法を学びます。
【チャプター3】 確率モデルのシミュレーション:サイコロモデル
・確率モデルの例として、乱数を使用した「サイコロモデル」の考え方を理解します。
・「サイコロモデル」を実装するプログラムを学びます。
・「サイコロモデル」のシミュレーションを実施します。
・「matplotlib」ライブラリを使用して棒グラフを表示する方法を学びます。
・「numpy」モジュールを使用して乱数を生成する方法を学びます。
・確率モデルを扱う上での注意点を学習します。
【チャプター4】 確率モデルのシミュレーション:モンテカルロ法
・確率モデルのもう一つの例として、「モンテカルロ法」について学習します。
・モンテカルロ法を使用して、円周率を導出する考え方を学びます。
・円周率を導出するプログラムモデルを作成します。
・円周率を導出するシミュレーションを実施します。
・「matplotlib」ライブラリを使用して散布図を表示する方法を学びます。
・「numpy.random」モジュールを使用して乱数を生成する方法を学びます。
【チャプター5】 自然現象のモデル化とシミュレーション:物体の放物運動
・物体を斜め上に投げた場合の放物運動をモデル化してシミュレーションを行います。
・「放物運動」をX軸とY軸に分けてモデル定義します。
・ラジアンを使った三角関数について学びます。
・「放物運動」のシミュレーションを実施します。
・「matplotlib」モジュールを使用して折れ線グラフを比較表示する方法を学びます。
【チャプター6】 自然現象のモデル化とシミュレーション:生命体の増加
・生命体が増加してゆく姿をモデル化してシミュレーションを行います。
・「生命体の増加」を環境収納力を用いてモデル定義します。
・「生命体の増加」のシミュレーションを実施します。
・ロジスティクス曲線または成長曲線について学びます。
【チャプター7】 自然現象のモデル化とシミュレーション:ランダムウォーク
・「ランダムウォーク」とは何かを学び、ランダムウォークをモデル化してシミュレーションを行います。
・「ランダムウォーク」を乱数を用いてモデル定義します。
・「ランダムウォーク」のシミュレーションを実施します。
・「matplotlib」モジュールを使用して座標軸グラフを表示する方法について学びます。
お問い合わせ
ご購入・お問い合わせは【こちら】までお願いします。