シラバス詳細

タイトル「2024年度」、カテゴリ「工) 情報システム工学科」

和文・英文ボタンを押すことで、和文↔英文の切り替えができます。

科目情報

科目名

プログラミング論

講義名

プログラミング論

実務経験のある教員による講義
-
学年

2年

キャンパス区分

ひびきの

開講学期

2学期

開講時期

秋期

曜日・時限

金3

科目種別

講義科目

ナンバリング

-

科目区分

-

単位区分

-

単位数

2

準備事項

備考

講義情報

ディプロマポリシー・到達目標

項番

内容

対象

到達目標

DP1

知識

プログラミングに関する基盤となる知識を体系的かつ総合的に身につけている。

DP2

技能

プログラミングを行うための基盤となるスキルを身につけている。

DP3

思考・判断・表現力

-

-

DP4

コミュニケーション力

-

-

DP5

自律的行動力

-

-

授業の概要

本授業では,時代時代で主流となったプログラミングパラダイムが,なぜ主流になったのか,歴史的背景を紹介し,具体的なプログラムコードを交えて,理論と実践の観点からプログラミングパラダイムの構成要素を詳述します.

説明する予定のプログラミング言語・環境は次の通りです: C, Java, Python, Elixir, Simula, Smalltalk, C++, SQL, GraphQL, ノーコード

教科書

オブジェクト指向プログラミング(OOP)パラダイムで下記書籍を用います.その他は授業中に講義資料を配布します.
国本,須藤: スッキリわかるPython入門,インプレス,2019.

参考書(図書館蔵書には〇)

鶴保 征城 著,駒谷 昇一 著: ずっと受けたかった ソフトウェアエンジニアリングの授業① 増補改訂版,翔泳社, ISBN: 978-4-798-11932-8
Dave Thomas著 笹田 耕一・鳥井 雪 訳: プログラミングElixir,オーム社,第2版,2020
Lee and Seshia, “Introduction to Embedded Systems: A Cyber-Physical Systems Approach”, 2nd edition, 2017.

授業計画・内容

回数

授業計画

内容

第 1回

オリエンテーション/命令型プログラミング(1)

プログラミングパラダイムを変えた歴史的背景/命令型プログラミング・手続き型プログラミング・構造化プログラミング/インデント/命名/関数の設計のしかた

第 2回

命令型プログラミング(2)

Cのデータ構造/ポインタ/構造体と共用体

第 3回

オブジェクト指向プログラミング(1) 理論編(1)

Pythonプログラミング/オブジェクト/クラス/モジュール

第 4回

オブジェクト指向プログラミング(2) 理論編(2)

OOPとGUIの歴史/SmalltalkとC++におけるメッセージとポリモーフィズムの解釈/Javaプログラミング

第 5回

オブジェクト指向プログラミング(3) 実践編(1)

1980年代から現代まで,ここ40年近くのプログラミング/OOPの変化

第 6回

オブジェクト指向プログラミング(4) 実践編(2)

サーバサイド/フロントサイドにおける状態

第 7回

オブジェクト指向プログラミング(5) 実践編(3)

OOPから関数型プログラミング/データ変換パラダイムへのパラダイムシフト

第 8回

関数型プログラミング/データ変換パラダイム(1) 理論編(1)

Elixirの基礎とデータ変換

第 9回

関数型プログラミング/データ変換パラダイム(2) 理論編(2)

データ変換パラダイム

第10回

関数型プログラミング/データ変換パラダイム(3) 実践編(1)

データ処理(変換,マージ,集約)

第11回

関数型プログラミング/データ変換パラダイム(4) 理論編(3)

同期・排他制御による並行・並列プログラミング/同期・排他制御の問題点/イミュータブル/データ変換パラダイムへの発展

第12回

関数型プログラミング/データ変換パラダイム(5) 理論編(4)

アクターモデルに基づく並行・並列プログラミング/プログラミング言語とプログラミング言語処理系

第13回

関数型プログラミング/データ変換パラダイム(6) 実践編(2)

並行・並列プログラミングにおけるOOPの限界とデータ変換パラダイムへの期待

第14回

関数型プログラミング/データ変換パラダイム(7) 実践編(3)

APIエコノミー、マクロな並行と分散コンピューティング

第15回

全体総括

ディスカッションの続きとアンケート回答、講義全体のアンケート

成績評価の方法

小テスト・レポート課題 40%
期末試験 50%
アンケート 10%

事前・事後学習の内容

・事前にCPUやGPU,GUI,ウェブシステム,機械学習について予備知識があると楽しめるでしょう.
・ただ授業を聞いているだけでは,プログラミング能力・ソフトウェア設計能力は身につきません.レポート課題として与えられたプログラミング課題のほか,授業時間外に教科書を踏まえて各自プログラミングに取り組んでください.具体的にどのようなことに取り組めば良いかわからない時には担当教員にアドバイスを求めてください.

履修上の注意

1年次第1学期の計算機演習Ⅰ,1年次第2学期の計算機演習Ⅱで習得したCとPythonのプログラミングについて復習をしてください.

担当者からの メッセージ

この授業では,プログラミングのパラダイムと歴史を概観します.歴史を総括し俯瞰する観点が得られることで,プログラミング言語のそれぞれの概念や構成要素が納得感を持って理解することができることでしょう.また,最新のプログラミング言語や業界の話題にも触れます.

キーワード

プログラミング・パラダイム(Programming paradigm),命令型プログラミング(Imperative programming),オブジェクト指向プログラミング(Object-oriented programming),関数型プログラミング(Functional programming).データ変換プログラミング(Data transformation programming)