計算機言語論演習

科目基礎情報

学校 豊田工業高等専門学校 開講年度 平成30年度 (2018年度)
授業科目 計算機言語論演習
科目番号 34301 科目区分 専門 / 必修
授業形態 演習 単位の種別と単位数 履修単位: 1
開設学科 情報工学科 対象学年 4
開設期 通年 週時間数 1
教科書/教材 「LPIC Level.1 1回で合格必達テキスト+問題集」、末永貴一著(SBクリエイティブ社)、ISBN:978-4-7973-7722-4/「新しいLinuxの教科書」、三宅英明ら共著(SBクリエイティブ社)、ISBN:978-4-7973-8094-1
担当教員 神谷 直希

到達目標

(ア)UNIXの一般的なコマンドからOSの基本的機能について理解できる。
(イ)シェルスクリプトによりOSの動作が理解できる。
(ウ)SQLを用い、DMLによるデータ操作ができる。
(エ)Python、GTK+などによるアプリケーションが開発できる。
(オ)Wolfram言語による数式処理ができる。
(カ)様々な言語によるGPIO制御が実現できる。
(キ)カーネル・ソースからOSの仕組みが理解できる。

ルーブリック

理想的な到達レベルの目安 (優)標準的な到達レベルの目安 (可)未到達レベルの目安 (不可)
評価項目1UNIXの一般的なコマンドからOSの基本的機能について理解できるとともに,その他のコマンド・機能へ展開することができる.UNIXの一般的なコマンドからOSの基本的機能について理解できる。UNIXの一般的なコマンドからOSの基本的機能について説明することができない.
評価項目2シェルスクリプトによりOSの動作を説明することができるともに,具体的な例をとりあげ説明することができる。シェルスクリプトによりOSの動作が理解できる。シェルスクリプトによりOSの動作を説明することができない.
評価項目3SQLを用い、DMLによるデータ操作ができるだけでなく,自由にテーブルの構築から操作を一通り行うことができる。SQLを用い、DMLによるデータ操作ができる。SQLを用い、DMLによるデータ操作をすることができない.
評価項目4Python、GTK+などによるアプリケーションが開発できるとともに,汎用のアプリケーションの内部動作を説明することができる.Python、GTK+などによるアプリケーションが開発できる。Python、GTK+などによるアプリケーションの開発をすることができない.
評価項目5Wolfram言語による数式処理ができるとともに,現実世界の解法に適用することができる.Wolfram言語による数式処理ができる。Wolfram言語による数式処理を行うことができない.
評価項目6様々な言語によるGPIO制御が実現できるだけでなく,それぞれの特徴を活かしたGPIO制御が提案できる。様々な言語によるGPIO制御が実現できる。様々な言語を用いたGPIO制御を行うことができない.
評価項目7カーネル・ソースからOSの仕組みが理解できるとともに,最新のカーネルについてその仕組みを説明することができる。カーネル・ソースからOSの仕組みが理解できる。カーネル・ソースからOSの仕組みを説明することができない.

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

学習・教育到達度目標 A2 ソフトウェア開発において,数理的理論に基づくスマートな設計ができるとともに,ハードウェアの基本動作を意識した設計ができる.
JABEE d 当該分野において必要とされる専門的知識とそれらを応用する能力
本校教育目標 ① ものづくり能力

教育方法等

概要:
本演習では、ARMプロセッサを搭載し、Linux系OSが動作する小型コンピュータであるRaspberry Piを用い、様々な計算機言語の動作基盤となるOSの仕組みを様々側面から理解することを目的とする。ここでは、エンジニアとして必要な様々なLinux系システムの操作・管理・運用技術を最初に学び、理論に偏らない理解を目指す。そして、SQL、Python、GTK+などの周辺技術からソフトウエア開発に必要な技術を学ぶ。後半では、実際のカーネル・ソースを用い、OSの仕組みを様々な側面から紐解く。
授業の進め方・方法:
本演習では,ARMプロセッサを搭載し,Linux系OSが動作する小型コンピュータであるRaspberry Piを用い,様々な計算機言語の動作基盤となるOSの仕組みについて実機演習を行う.「計算機言語論A」および「計算機言語論B」科目における理論習得と合わせ,エンジニアとして必要なスキルであるLinux系システムの操作・管理・運用技術,および,様々な言語を用いたオペレーティングシステムの内部構造について実機上における現象に基づき,理論的背景との関係を理解することを目的とする.
注意点:
「計算機言語論A」、および「計算機言語論B」を併せて受講しなければならない。継続的に授業内容の予習・復習を行うこと。また、授業内容について、決められた期日までの課題(レポート)提出を求める。適宜ノートパソコンを持参すること。「情報科学」教育プログラムの必修科目である。

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 シラバスを用いた授業内容の説明、課題等の提出方法の説明 Raspberry Piの特徴と汎用システムとの関係を理解する.
2週 OSのインストールとパッケージ管理によるシステム構築 OSのインストールを通して,ハードウェア特徴を理解する.
3週 OSのインストールとパッケージ管理によるシステム構築 パッケージ管理システムを用いたパッケージのインストールとシステム構築の流れを理解する.
4週 GNUとUNIXのコマンド:コマンドライン操作の基本、正規表現、ストリームエディタ、プロセス管理 コマンドライン操作の基本について理解するとともに,GNUとUNIXのコマンド体系について理解する.
5週 GNUとUNIXのコマンド:コマンドライン操作の基本、正規表現、ストリームエディタ、プロセス管理 GNUとUNIXのコマンド操作をとおして正規表現について理解する.
6週 GNUとUNIXのコマンド:コマンドライン操作の基本、正規表現、ストリームエディタ、プロセス管理 GNUとUNIXのコマンド操作をとおしてストリームの概念について理解するとともに,ストリームエディタの扱いを理解する.
7週 GNUとUNIXのコマンド:コマンドライン操作の基本、正規表現、ストリームエディタ、プロセス管理 GNUとUNIXのコマンド操作をとおしてプロセス管理の方法を理解する.
8週 シェルスクリプトによるOSの動作・仕組みの理解 シェルスクリプトの基本的な文法について理解するとともに,実行方法を理解する.
2ndQ
9週 シェルスクリプトによるOSの動作・仕組みの理解 シェルスクリプトを用いたインタプリタ型のプログラムについて理解する.
10週 シェルスクリプトによるOSの動作・仕組みの理解 シェルスクリプトを用いてOSの管理や動作制御がどのように行われているか理解する.
11週 SQLによるデータ管理 SQLによるデータ管理の方法について,MySQLをインストールし,データベースを構築することにより理解する.
12週 SQLによるデータ管理 SQLによるデータ管理の方法について,MySQLを用いて疑似データの入力,操作法を理解する.
13週 オブジェクト指向スクリプト言語Pythonによるアプリケーション開発 オブジェクト指向スクリプト言語として,Pythonの基本的な特徴を理解する.
14週 オブジェクト指向スクリプト言語Pythonによるアプリケーション開発 Pythonの基本文法について理解するとともに,簡単なCUIアプリケーション開発方法について理解する.
15週 オブジェクト指向スクリプト言語Pythonによるアプリケーション開発 Pythonの基本文法について理解するとともに,モジュールを用いたアプリケーション開発について理解する.
16週
後期
3rdQ
1週 オブジェクト指向スクリプト言語Pythonによるアプリケーション開発 Pythonの基本文法について理解するとともに,モジュールを用いたマルチメディアアプリケーション開発について理解する.
2週 GTK+によるX Windowアプリケーションの開発 GTK+によるX Windowアプリケーションの開発をイベント処理と合わせて理解する.
3週 GTK+によるX Windowアプリケーションの開発 GTK+によるX Windowアプリケーションの開発について,インタフェース設計法について理解する.
4週 Wolfram言語による数式処理の演習 Wolfram言語を用いた数式処理の基礎を理解する.
5週 シェルスクリプトによるGPIO制御 GPIO制御の基礎を理解するとともに,シェルスクリプトを用いた制御の基礎を実現する.
6週 シェルスクリプトによるGPIO制御 シェルスクリプトの特徴と制御されたGPIOの動作を対応付けて理解する.
7週 様々な言語によるGPIO制御 様々な言語によるGPIO制御について,実際に動作させることによりその特徴を理解する.
8週 カーネルの取得と構造の確認 最新カーネルを取得し,その構造について理解する.
4thQ
9週 カーネル・ソースとC言語の関係 カーネル・ソースの特徴を理解する.
10週 カーネル・ソースとC言語の関係 カーネル・ソースとC言語の関係について理解する.
11週 カーネル・ソース内のシステム・コールの確認とその利用 システム・コールの仕組みについて理解する.
12週 カーネル・ソース内のシステム・コールの確認とその利用 具体的なシステム・コールをとりあげ,カーネル・ソースにおける動作を理解する.
13週 デバイス・ドライバとモジュールの仕組み デバイス・ドライバとモジュールの仕組みについて,具体的なカーネル・ソースを用いて理解する.
14週 分割コンパイルと分散コンパイル、分散コンピューティング 分割コンパイルの仕組みについて,簡単なソース・コードを用いて理解する.
15週 分割コンパイルと分散コンパイル、分散コンピューティング 実際に分散コンパイルを行うことで分散コンピューティングについて理解する.
16週

モデルコアカリキュラムの学習内容と到達目標

分類分野学習内容学習内容の到達目標到達レベル授業週
専門的能力分野別の専門工学情報系分野プログラミング主要な言語処理プロセッサの種類と特徴を説明できる。3前8,前9,前10
ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。3前8,前9,前10
ソフトウェアソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。3前8,前9,前10
同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。3前8,前9,前10
システムプログラム形式言語の概念について説明できる。3前8,前9,前10
オートマトンの概念について説明できる。3前8,前9,前10
形式言語が制限の多さにしたがって分類されることを説明できる。3前8,前9,前10
正規表現と有限オートマトンの関係を説明できる。3前8,前9,前10

評価割合

課題合計
総合評価割合100100
専門的能力100100