到達目標
C言語でプログラミングの基礎を習得し、課題解決に向けた論理的な思考を養うことを目的とする。変数、配列、ポインタ、関数、構造体の概念を理解し、標準入出力関数、条件分岐、繰り返し処理を使ったプログラミングができるようになることを目指す。具体的な到達目標は下記の通りである。
・自分で作成したプログラムを実行し、正しく動作するかどうかの確認が行える。エラーが出力された場合に適切に対処できる。
・サイコロを振るプログラムやおみくじを引くプログラムを作成できる。
・西暦から和暦に変換するプログラムを作成できる。
・数字の列を小さい順や大きい順に並び替えるプログラムを作成できる。
ルーブリック
| 理想的な到達レベルの目安 | 標準的な到達レベルの目安 | 最低限の到達レベルの目安(可) | 未到達レベルの目安 |
【疑似乱数、if文】サイコロを振るプログラムやおみくじを引くプログラムの作成 | 疑似乱数のしくみやif文の構文を理解し、サイコロやおみくじのプログラムを自分で作成できる。疑似乱数やif文を用いて創造的なプログラミングができる。 | 疑似乱数のしくみやif文の構文を理解し、サイコロやおみくじのプログラムを自分で作成できる。 | サイコロやおみくじのプログラムをお手本を見ながら作成できる。 | サイコロやおみくじのプログラムを作成できない。 |
【演算、標準入出力】西暦から和暦に変換するプログラムの作成 | 西暦から和暦に変換するアルゴリズムを自分で考え、プログラムを作成できる。 | 西暦から和暦に変換するアルゴリズムを極力自分で考え、お手本を見ながらプログラムを作成できる。 | 西暦から和暦に変換するプログラムをお手本を見ながら作成できる。 | 西暦から和暦に変換するプログラムを作成できない。 |
【ソーティング】数字の列を小さい順や大きい順に並び替えるプログラムの作成 | 数字の列を小さい順や大きい順に並び替えるアルゴリズムを自分で考え、プログラムを作成できる。
| 数字の列を小さい順に並び替えるアルゴリズムを極力自分で考え、お手本を見ながらプログラムを作成できる。大きい順に並び替えたい場合にプログラムのどの部分を変更したら良いかを把握している。 | 数字の列を小さい順に並び替えるプログラムをお手本を見ながら作成できる。 | 数字の列を小さい順に並び替えるプログラムを作成できない。 |
学科の到達目標項目との関係
教育方法等
概要:
本授業では、プログラミング言語としてC言語を学ぶ。変数、配列、ポインタ、関数、構造体の概念を理解し、printf関数やfgets関数などの標準入出力関数、if文を使った条件分岐、while文やfor文を使った繰り返し処理を使ったプログラミングを行う。最終的にはソーティングアルゴリズムの中で最も基本的なアルゴリズムであるバブルソートを学習し、そのプログラムを作成する。
授業の進め方・方法:
教科書とオンライン教材を用いて学習する。授業は、スライドを用いた説明(30分程度)とオンライン教材とプリントを併用したプログラミング演習(60分程度)で行う。課題は、オンライン教材とプリントを出す。課題の提出が遅れた場合や提出内容が不十分な場合は減点する。成績は課題ごとの平均値と到達度試験で評価する。プログラミングの楽しさを味わってもらうために、授業内で不定期にミニ・プログラミングコンテストを開催する。ただし、ミニ・プロコンの結果は成績には関係しない。
注意点:
授業の属性・履修上の区分
授業計画
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
授業ガイダンス、プログラミングの基礎、オンライン教材の説明 |
プログラムとは何かを説明できる。C言語の特徴を説明できる。 統合開発環境について説明できる。paizaラーニング学校フリーパスへの登録を完了させる。
|
2週 |
printf関数を用いた標準出力、rand関数を用いた疑似乱数 |
サイコロを振るプログラムを作成できる。
|
3週 |
if文による条件分岐 |
おみくじを引くプログラムを作成できる。 西暦(20xx年)から和暦(令和oo年)に変換するプログラムを作成できる。
|
4週 |
while文、for文による繰り返し処理、fgets, sscanf関数を用いた標準入力 |
for文とwhile文の書き換えができる。 入力されたデータを取得し、そのデータを出力できる。
|
5週 |
配列と文字列の基礎 |
配列や文字列の概念を理解し、説明できる。 入力された複数行のデータを配列に読み込むことができる。
|
6週 |
ポインタ |
ポインタの概念を理解し、説明できる。
|
7週 |
総合演習(中間総復習) |
これまでに学習した内容を使って創造的なプログラミングに挑戦できる。
|
8週 |
中間試験 |
|
2ndQ |
9週 |
多次元配列 |
多次元配列の概念を理解し、説明できる。
|
10週 |
関数 |
関数の概念を理解し、説明できる。 ポインタを用いてswap関数を作成できる。
|
11週 |
構造体 |
構造体の概念を理解し、説明できる。 連結リストについて理解し、説明できる。
|
12週 |
データ構造 |
スタックとキューのそれぞれのデータ構造の特徴を理解し、説明できる。
|
13週 |
ソーティングを学ぶ |
ソーティングとは何か、ソーティングアルゴリズムにはどのようなものがあるかを説明できる。
|
14週 |
バブルソートアルゴリズムの実装 |
数字の列を小さい順や大きい順に並び替えるプログラムを作成できる。
|
15週 |
総合演習(期末総復習) |
これまでに学習した内容を使って創造的なプログラミングに挑戦できる。
|
16週 |
期末試験 |
|
モデルコアカリキュラムの学習内容と到達目標
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
基礎的能力 | 工学基礎 | 情報リテラシー | 情報リテラシー | 同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを知っている。 | 3 | |
与えられた基本的な問題を解くための適切なアルゴリズムを構築することができる。 | 3 | |
任意のプログラミング言語を用いて、構築したアルゴリズムを実装できる。 | 3 | |
評価割合
| 課題 | 試験 | 相互評価 | 態度 | ポートフォリオ | その他 | 合計 |
総合評価割合 | 20 | 80 | 0 | 0 | 0 | 0 | 100 |
基礎的能力 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
専門的能力 | 20 | 80 | 0 | 0 | 0 | 0 | 100 |
分野横断的能力 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |