プログラミング言語

科目基礎情報

学校 東京工業高等専門学校 開講年度 令和05年度 (2023年度)
授業科目 プログラミング言語
科目番号 20230 科目区分 専門 / 必修
授業形態 授業 単位の種別と単位数 履修単位: 1
開設学科 電気工学科 対象学年 2
開設期 前期 週時間数 前期:2
教科書/教材 C言語プログラミングレッスン入門編 第3版, 結城 浩 著, SBクリエイティブ(株)
担当教員 根本 雄介

到達目標

C言語でプログラミングの基礎を習得し、課題解決に向けた論理的な思考を養うことを目的とする。変数、配列、ポインタ、関数、構造体の概念を理解し、標準入出力関数、条件分岐、繰り返し処理を使ったプログラミングができるようになることを目指す。具体的な到達目標は下記の通りである。
・自分で作成したプログラムを実行し、正しく動作するかどうかの確認が行える。エラーが出力された場合に適切に対処できる。
・サイコロを振るプログラムやおみくじを引くプログラムを作成できる。
・西暦から和暦に変換するプログラムを作成できる。
・数字の列を小さい順や大きい順に並び替えるプログラムを作成できる。

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安最低限の到達レベルの目安(可)未到達レベルの目安
【疑似乱数、if文】サイコロを振るプログラムやおみくじを引くプログラムの作成疑似乱数のしくみやif文の構文を理解し、サイコロやおみくじのプログラムを自分で作成できる。疑似乱数やif文を用いて創造的なプログラミングができる。疑似乱数のしくみやif文の構文を理解し、サイコロやおみくじのプログラムを自分で作成できる。サイコロやおみくじのプログラムをお手本を見ながら作成できる。サイコロやおみくじのプログラムを作成できない。
【演算、標準入出力】西暦から和暦に変換するプログラムの作成西暦から和暦に変換するアルゴリズムを自分で考え、プログラムを作成できる。西暦から和暦に変換するアルゴリズムを極力自分で考え、お手本を見ながらプログラムを作成できる。西暦から和暦に変換するプログラムをお手本を見ながら作成できる。西暦から和暦に変換するプログラムを作成できない。
【ソーティング】数字の列を小さい順や大きい順に並び替えるプログラムの作成数字の列を小さい順や大きい順に並び替えるアルゴリズムを自分で考え、プログラムを作成できる。 数字の列を小さい順に並び替えるアルゴリズムを極力自分で考え、お手本を見ながらプログラムを作成できる。大きい順に並び替えたい場合にプログラムのどの部分を変更したら良いかを把握している。数字の列を小さい順に並び替えるプログラムをお手本を見ながら作成できる。数字の列を小さい順に並び替えるプログラムを作成できない。

学科の到達目標項目との関係

教育方法等

概要:
本授業では、プログラミング言語としてC言語を学ぶ。変数、配列、ポインタ、関数、構造体の概念を理解し、printf関数やfgets関数などの標準入出力関数、if文を使った条件分岐、while文やfor文を使った繰り返し処理を使ったプログラミングを行う。最終的にはソーティングアルゴリズムの中で最も基本的なアルゴリズムであるバブルソートを学習し、そのプログラムを作成する。
授業の進め方・方法:
教科書とオンライン教材を用いて学習する。授業は、スライドを用いた説明(30分程度)とオンライン教材とプリントを併用したプログラミング演習(60分程度)で行う。課題は、オンライン教材とプリントを出す。課題の提出が遅れた場合や提出内容が不十分な場合は減点する。成績は課題ごとの平均値と到達度試験で評価する。プログラミングの楽しさを味わってもらうために、授業内で不定期にミニ・プログラミングコンテストを開催する。ただし、ミニ・プロコンの結果は成績には関係しない。
注意点:

授業の属性・履修上の区分

アクティブラーニング
ICT 利用
遠隔授業対応
実務経験のある教員による授業

授業計画

授業内容 週ごとの到達目標
前期
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

評価割合

課題試験相互評価態度ポートフォリオその他合計
総合評価割合20800000100
基礎的能力0000000
専門的能力20800000100
分野横断的能力0000000