プログラミング言語の仕組み -さまざまなプログラミング言語の基礎となる概念を学ぶ-

単位数 ナンバリングコード
2 DIF305
教員名 長尾 光悦
専門 複雑系工学、システム工学、観光情報学
出身校等 北海道大学大学院工学研究科
現職 北海道情報大学経営情報学部 教授
授業形態
前期印刷授業・後期印刷授業
授業範囲
教科書の内容すべて
試験範囲
授業範囲すべて
(持ち込み許可物)自筆ノート(印刷物の貼付不可)
科目の概要
 本科目は、個々のプログラミング言語を抽象化した一般的な概念として、プログラミング言語を捉えられるようになることを目的とする。そのために、プログラミング言語一般が記述の対象とするデータ構造と制御構造について学習する。また,プログラムを部品(モジュール)から組み立てるための技術について学習する。さらに、プログラミング言語を形式言語とみなし、形式言語で記述された情報を処理するための基本的な技術について学習する。
 プログラミング言語には、数多くの種類があり、実社会において、業務としてプログラムを開発する場合には、技術者の個人的な好みによって、使用する言語を選択することはできない。したがって、技術者は、予め多くの言語を習得しているか、さもなければ、必要とされる言語を短期間に習得できなければならない。そこで、本科目では、個々のプログラミング言語を効率的に習得できるように、多くの言語に共通する基本事項を学習する。ただし、実際にプログラムを作成して、コンピュータ上で動作させるには、特定のプログラミング言語を使用する必要があるので、本科目では、そのための言語として、Javaを使用する。
授業における学修の到達目標
 教科書に基づいて、以下の項目を理解した上で、それを応用して、さまざまなプログラミング言語によるプログラムを、効率的に設計、記述できるようになることを目標とする。
 ・データ構造と制御構造の基本概念
 ・Javaにおけるデータ構造と制御構造
 ・モジュール設計の基礎
 ・言語処理プログラム
講義の方針・計画
 単に文法を暗記しただけでは、プログラミング言語を使いこなすことはできない。いかに使いこなすかを、自分の頭で考えることが重要である。教科書を読み解くことは、特に初級者にとって、それほど容易ではないかもしれないが、諦めずに読み進めていくことで、じっくり考える習慣を身につけていただきたい。教科書に掲載されたプログラムやアルゴリズムは、コンピュータ上で実行してみることを強く推奨する。

第1回:プログラムの基本的なデータ構造
第2回:構造化プログラミングの概念,手続きの概念、擬似言語
第3回:再帰と状態遷移
第4回:制御構造と手続きのJavaによる実現方法、クラスの概念
第5回:Javaにおける配列の使い方
第6回:リスト構造、スタック、キューのJavaによる実現方法
第7回:木構造をJavaで実現する方法、木構造を対象とする再帰を用いた処理の方法
第8回:状態遷移のJavaによる実現方法
第9回:モジュールの設計方法
第10回:モジュール間結合度とモジュール強度
第11回:モジュール設計の事例
第12回:形式言語
第13回:字句解析
第14回:構文解析
第15回:Javaによる言語処理プログラム
準備学習
印刷授業は、教科書や学習用プリントなどを基に自学自習で学習を進めますが、授業範囲の内容の他に、教科書の内容全体を2単位で90時間かけて学習することを目安としています。
わからない用語や内容は、参考文献等で検索することが準備学習として必要になります。
課題(試験やレポート等)に対するフィードバック方法
印刷授業は、提出されたレポートについて講評を付与して返却する。
成績評価の方法およびその基準
試験:100%
教科書
書 名:プログラミング言語の仕組み(初版)
著者名:斉藤康彦

※教科書は、学習用プリントと共に配付しますので、購入の必要はありません。
参考書
なし
その他
 Java言語やC言語などの高水準言語でプログラミングが行える環境にあることを前提条件とする。
(本条件を満たさなくても、履修登録は可能であるが、修得は困難であると予想される。)
試験期間
シラバス検索画面トップページ(https://syllabus-tsushin.do-johodai.ac.jp/)下部の「2022科目試験時間割」を参照
学習プリント
あり
教職科目
関連受講科目
 「プログラム設計」と「プログラミング基礎」(または「プログラム言語I」)を、既に修得していることを前提条件とする。
(本条件を満たさなくても、履修登録は可能であるが、修得は困難であると予想される。)
 加えて、「アルゴリズム」、「オブジェクト指向言語I」、「オブジェクト指向言語II」
担当教員の実務経験
実務経験なし
レポート課題
過年度のレポート課題は表示できません。