2025年度後期プログラミング手法と言語

曜日・時限 木曜日2時限 期別 後期 週時間数 2
ナンバリング HW330613
開講学科等 総合情報学部-デジタルゲーム学科
教員名 魚井 宏高
魚井 宏高
職務履歴

https://research.osakac.ac.jp/index.php?%e9%ad%9a%e4%ba%95%e3%80%80%e5%ae%8f%e9%ab%98

教員情報データベースに遷移します

目的

様々なプログラミング手法を具体的に利用するために, 様々なプログラミング言語がある.
この講義では, 主立ったプログラミング手法とそのためのプログラミング言語との繋がりを中心に, なぜそのような言語を創造する必要があったのか?ということについて考える.その中でも特に,他の講義であまり取り上げられない 構造型プログラミング手法,関数型プログラミング手法,論理型プログラミング手法とビジュアルプログラミング手法 の4つについて重点的に学ぶ.

授業計画

授業回 形式 学修内容 学修課題
1 A 1.導入
・プログラミング手法 とはなにか
・プログラミング言語 とはなにか
・プログラミング言語の系譜概説
事前学修 各自のプログラミング経験についてまとめておくこと(2時間)
事後学修 各自のプログラミング経験について,この回の講義の内容に基づいて整理すること.
講義内レポート課題について,再度考察すること(計2時間)
2 AC 2. プログラミング言語とは?
 ・プログラミング言語の系譜
 ・プログラム書法/プログラミング作法 の違い
事前学修 配布スライドを読み,プログラミング言語の系譜について理解しておくこと(2時間)
事後学修 授業内で示すプログラムの意味について復習し、よく理解すること(2時間)
3 AC 3. 手続き型言語の登場
・ FORTRAN,COBOL,PL/I から C 言語まで
 構造型プログラミングとそれを支えた言語
・ PASCAL, ALGOL, BASIC など
・ なぜgoto文が忌諱されるようになったのか
事前学修 配布スライドを読み,手続き型言語,特にCについて理解しておくこと(2時間)
構造型プログラミング言語について理解しておくこと(1時間)
事後学修 授業内で示すサンプルプログラムの意味について復習し、よく理解すること(2時間)
「なぜgoto文を使用しない方の良いのか」について明確に答えられるようにすること
BASICプログラムが読めるようになること(1時間)
4 AC 4. プログラミング言語の意味
簡単な手続き型言語を基に,プログラムの意味について考える
事前学修 配布スライドを読み,プログラムの意味について理解しておくこと(2時間)
事後学修 授業内で示すプログラムの意味の求め方について復習し、よく理解すること(2時間)
5 AC 5. ジョブ制御言語とスクリプト言語の登場
   Shell(zsh), Perl, AWK, Ruby など
  文字列/HTML処理/正規表現
 
事前学修 配布スライドを読み,Perl言語について理解しておくこと(2時間)
事後学修 授業内で示すサンプルプログラムの意味について復習し、よく理解すること(2時間)
6 AC 6. スクリプト言語の特徴とRuby言語・Python言語
事前学修 配布スライドを読み,Ruby言語・Python言語について理解しておくこと(2時間)
事後学修 授業内で示すサンプルプログラムの意味について復習し,特にRuby言語・Python言語についてよく理解すること(2時間)
7 AC 7. Python言語の特徴と活用例1 形式言語の解析 事前学修 配布スライド・プログラムを読み,パーサーの仕組みについて理解しておくこと(2時間)
事後学修 授業内で示すサンプルプログラムの意味について復習し、よく理解すること(3時間)
8 AC 8. Python言語の特徴と活用例2 プログラミング言語の実装 事前学修 配布スライド・プログラムを読み,インタプリタの動作について理解しておくこと(3時間)
事後学修 授業内で示すサンプルプログラムの意味について復習し,特にプログラミング言語の実装についてよく理解すること(2時間)
9 AC 9. 関数型プログラミングとそれを支える言語達
 LISP, Haskell
事前学修 配布スライドを読み,Haskell言語について理解しておくこと(2時間)
事後学修 授業内で示すサンプルプログラムの意味について復習し,よく理解すること(2時間)

授業内で示すサンプルプログラムの意味について復習し,特にHaskell言語でプログラミングできるようになること(2時間)
10 AC 10. 論理型プログラミングとProlog言語
事前学修 配布スライドを読み,Prolog言語について理解しておくこと(2時間)
事後学修 授業内で示すサンプルプログラムの意味について復習し,よく理解すること(2時間)
11 AC 11. 並列・並行プログラミング指向の言語
  Erlang, GO など
事前学修 配布スライドを読み,GO言語を使ってみること(2時間)
事後学修 授業内で示すGOプログラムの動作について復習し、よく理解すること(2時間)
12 AC 12. 機械語とアセンブラ言語 
・ CASL/COMET 他
事前学修 配布スライドと資料を読み,アセン ブラ言語について理解しておくこと(2時間)
事後学修 授業内で示すCASLプログラムの動作について復習し、よく理解すること(2時間)
13 AI 13. ビジュアルプログラミングと様々なビジュアル言語
       VISCUIT, Scratch, TouchDesigner,  Blueprint(Unreal Engine) など
     まとめ
事前学修 配布スライドを読み,VISCUIT 言語あるいは Scratch言語を使ってみること(2時間)
授業内容全般について,配布スライドを読んでよく復習しておくこと(2時間)
事後学修 VISCUIT言語やScratch言語を使って,何か作品を作ってみること(2時間)
復習した内容について再確認すること(2時間)

授業形式記号

  • A:一斉授業(通常の講義)
  • B:問題発見・解決学習、プロジェクト学習
  • C:体験、実験、実習、演習など
  • D:調査 分析、解析など
  • E:ものづくり、作品制作
  • F:グループワーク(ディスカッション・ディベートを含む)
  • G:プレゼンテーション
  • H:地域・企業 連携型学習
  • I:その他

到達目標

修得する資質・能力:知識・理解・応用力【デジタルゲーム学科 DP-W-1-1】
・様々な異なる目的のプログラム作成に,自身が適切なプログラミング言語を選択し,参考書などを参照しつつもプログラミングできるようになること

なお,授業計画で取り上げられている言語はあくまでそのジャンルにおける代表例であり,それらをすべて講義で取り上げるわけではなく,また,それらをすべて「使えるようになる」ことが目的・目標ではない.

評価方法と評価観点

評価方法 配点合計知識・理解力応用力コミュニケーション力態度・志向性創造力 合計
定期試験またはレポート試験 50% 60% 40% 100%
小テスト、小論文 10% 40% 60% 100%
グループワーク 0%
プレゼンテーション 0%
レポート、宿題 40% 40% 60% 100%
授業での姿勢(ノート、質疑など) 0%
作品、パフォーマンス(実技、実演) 0%
その他1(具体的に: 0%
その他2(具体的に: 0%
100% 50% 50% 0% 0% 0% 100%

教科書・参考書

教科書は用いず,授業前にはその時間で行う内容をまとめたスライドファイルを配布するので,必ずダウンロードして目を通しておくこと.

参考書:  どちらも電子書籍版があるので,そちらの方が良い
「7つの言語 7つの世界」 Bruce A. Tate (著), まつもとゆきひろ (監訳), 田和 勝 (翻訳) オーム社 ISBN-978-4339023299
「まつもとゆきひろ 言語のしくみ」 まつもとゆきひろ 日経BP ISBN-978-4822239176

オフィスアワー

後期火曜4限,木曜お昼休みに10-306室まで,できるだけ授業後に申し出て下さい.
学内外の用務のため、オフィスアワーでも教員が教員室に不在の可能性があります.
事前予約の場合はできるだけ対応します.
電子メールでの相談はuoi@oecu.jpに送ってください(ただし,成績に関する問い合わせには返答できません).
授業内容に関する質問については,Moodleの授業掲示板(質問室)で行ってもらう方が望ましいです.
遠隔(ビデオ会議)でも対応しますが,時間調整のために事前にメールで予約してください.

その他

欠格条件:
課題がかなりの回数あるが,未提出が5回以上で,定期試験(レポート試験)の受験資格を失い,最終成績を評価不能(E)とする.
その場合は,卒業再試験の資格を失うので注意すること.

注意事項:
授業計画および,講義でとり上げる題材は,進行度合いに応じて変更される可能性があります.

Moodleを用いて,資料・教材の配布,小テスト,課題提出を行います.
その関係上,頻繁にノートPCを用いるので,忘れないように. 故障などの場合にはサポートデスクで代替機を借りておくように.
宿題・レポートは返却しないが,回答例を示したり,一部を取り上げての評価は講義中に行います.

実務経験のある教員による授業科目