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