1.C言語のポインタを使いこなすことができる.
2.C言語で,適切なプログラム間のインターフェースを決めることができる.
3.Linuxのシステムプログラミングの初歩の初歩を理解できる.
概要:
本授業では,1年,2年生で学んだC言語の知識を基に,実験プログラムを走らせながら,1,2年生で学んだことを再度確認する.また,同時にC言語を用いて,グループでプログラムを企画,設計,作成し,最後に発表を行う.また,時間の許す限り,Linux/Unixシステムプログラミングについて,プログラムを動かしなら解説を行う.
授業の進め方・方法:
1,2年生で学んだことを復習する簡単な実験プログラムを走らせ,C言語の理解を深める.同時に,Linux/Unixシステムプログラミングを知るために,実際にVM(Virtual Machine)上のLinux OSを動かしながら,システムプログラミングの初歩の初歩を学習する.授業ではVM(Virtual Machine)上のLinuxを用いる.また,高専機構が準備した教材によるセキュリティー教育も行う.
注意点:
教科書:新訂 新C言語入門 シニア編,林晴比古,SBクリエイティブ
参考書:(改訂新版)C言語入門書の次に読む本,坂井弘亮,技術評論社
GNU Make 第3版,Robert Mecklenburg (著), 矢吹 道郎 (監訳) ,オライリージャパン
高専機構が準備した「K-SEC情報モラル教材」「情報システム ユーザーガイドライン」「低学年教材」等
評価方法詳細:
定期試験 30%,課題等その他 70% を目安として評価する. 60点以上を合格とする.再試は行わない.
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
オリエンテーション:学習や開発に必要なPC環境に関する説明など. |
必要な環境を理解すること.
|
2週 |
PC環境の設定について学ぶ.セキュリティーの理解を深める. |
VM上にLinuxをインストールできる.
|
3週 |
以後11週まで,1,2年生で学んだC言語の復習を行いながら,システムプログラムが書けることを目指したC言語のプログラミングを行う C言語の復習(1) |
C言語の理解を深める(1)
|
4週 |
C言語の復習(2) Linux/Unixのbc(Unix電卓)にあたるプログラムを読む(A) |
C言語の理解を深める(2) 基本的なC言語の文法を理解している
|
5週 |
C言語の復習(3) Linux/Unixのbcプログラムを読む(B) |
C言語の理解を深める(3) 基本的なC言語の文法の理解している
|
6週 |
C言語の復習(4) Linux/Unixのbcプログラムを読む(C) |
C言語の理解を深める(4) コンパイラの初歩の初歩を理解している
|
7週 |
C言語の復習(5) Linux/Unixのbcプログラムを読む(D) |
C言語の理解を深める(5) bcプログラムを変更できるようになる
|
8週 |
C言語の復習(6) システムプログラムとは何か. |
C言語の理解を深める(6) システムプログラムとは何かを理解している
|
2ndQ |
9週 |
C言語の復習(7) lsのマニュアルを読む |
C言語の理解を深める(7) lsコマンドを理解している
|
10週 |
C言語の復習(8) lsコマンドの仕組みを学習する |
C言語の理解を深める(8) lsコマンドの仕組みを理解している
|
11週 |
C言語の復習(9) 簡素化したlsコマンドをプログラムする |
C言語の理解を深める(9) 簡素化したlsコマンドプログラムを理解できる
|
12週 |
プログラム作品発表会(1) |
プログラム作品を他人に分かりやすく紹介し,プログラムの内容を説明できる.
|
13週 |
プログラム作品発表会(2) |
プログラム作品を他人に分かりやすく紹介し,プログラムの内容を説明できる.
|
14週 |
プログラム作品発表会(予備) |
プログラム作品を他人に分かりやすく紹介し,プログラムの内容を説明できる.
|
15週 |
セキュリティーの理解を深める |
高度なセキュリティーに関する学習の必要性を理解できる
|
16週 |
|
|
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
基礎的能力 | 工学基礎 | 情報リテラシー | 情報リテラシー | 情報を適切に収集・処理・発信するための基礎的な知識を活用できる。 | 3 | |
論理演算と進数変換の仕組みを用いて基本的な演算ができる。 | 3 | |
コンピュータのハードウェアに関する基礎的な知識を活用できる。 | 3 | |
数値計算の基礎が理解できる | 2 | |
コンピュータにおける初歩的な演算の仕組みを理解できる。 | 2 | |
データの型とデータ構造が理解できる | 2 | |
情報セキュリティの必要性および守るべき情報を認識している。 | 3 | |
個人情報とプライバシー保護の考え方についての基本的な配慮ができる。 | 3 | |
インターネット(SNSを含む)やコンピュータの利用における様々な脅威を認識している | 3 | |
インターネット(SNSを含む)やコンピュータの利用における様々な脅威に対して実践すべき対策を説明できる。 | 3 | |
専門的能力 | 分野別の専門工学 | 電気・電子系分野 | 情報 | 基本的なアルゴリズムを理解し、図式表現できる。 | 2 | |
プログラミング言語を用いて基本的なプログラミングができる。 | 2 | |
情報系分野 | プログラミング | 変数の概念を説明できる。 | 3 | |
データ型の概念を説明できる。 | 3 | |
代入や演算子の概念を理解し、式を記述できる。 | 3 | |
制御構造の概念を理解し、条件分岐を記述できる。 | 3 | |
制御構造の概念を理解し、反復処理を記述できる。 | 3 | |
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。 | 3 | |
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。 | 2 | |
与えられたソースプログラムを解析し、プログラムの動作を予測することができる。 | 3 | |
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。 | 3 | |
計算機工学 | 整数を2進数、10進数、16進数で表現できる。 | 3 | |
小数を2進数、10進数、16進数で表現できる。 | 3 | |
整数・小数をコンピュータのメモリ上でディジタル表現する方法を説明できる。 | 3 | |
基数が異なる数の間で相互に変換できる。 | 3 | |