シラバス参照

講義概要/Course Information
2025/04/25 現在

科目基礎情報/General Information
授業科目名
/Course title (Japanese)
プログラム言語論
英文授業科目名
/Course title (English)
Programming Languages
科目番号
/Code
COM506c COM506d
開講年度
/Academic year
2025年度 開講年次
/Year offered
3
開講学期
/Semester(s) offered
前学期 開講コース・課程
/Faculty offering the course
情報理工学域
授業の方法
/Teaching method
講義 単位数
/Credits
2
科目区分
/Category
専門科目
開講類・専攻
/Cluster/Department
Ⅰ類
担当教員名
/Lecturer(s)
佐藤 重幸
居室
/Office
西2-512
公開E-mail
/e-mail
pl-2025-group@gl.cc.uec.ac.jp
授業関連Webページ
/Course website
Google Classroom: https://classroom.google.com/c/NzUyNjE3NzI3MDM3?cjc=i5anvyrp
更新日
/Last update
2025/04/23 12:52:28 更新状況
/Update status
公開中
/now open to public
講義情報/Course Description
主題および
達成目標(2,000文字以内)
/Themes and goals(up to 2,000 letters)
プログラミング言語の諸概念と,それに基づくプログラミングパラダイムを学ぶ.
これにより,

* プログラミング言語に対する一般的な理解
* プログラミングパラダイムに沿ったプログラミング作法

の獲得を目指す.
前もって履修
しておくべき科目(1,000文字以内)
/Prerequisites(up to 1,000 letters)
特定の科目の履修を前提にすることはないが,

* 基本的なプログラミング(例えば「プログラミング通論」相当)
* 計算機の基本的な仕組み(例えば「計算機通論」相当)
* 集合論と記号論理の数学記法(例えば「離散数学」相当)

についての知識は前提とする.
前もって履修しておくこ
とが望ましい科目(1,000文字以内)
/Recommended prerequisites and preparation(up to 1,000 letters)
本科目の理解の助けになるであろう科目や経験は次の通り:

* 「言語処理系論」の同時履修
* 形式言語の基礎知識(例えば「形式言語理論」相当)

同学期に開講される「言語処理系論」とは密に連携した授業内容である.
両方履修すると,プログラミング言語の概念と仕組みがより深く理解できるように設計されている.
教科書等(1,000文字以内)
/Course textbooks and materials(up to 1,000 letters)
授業教材はオンライン資料として配布する.
その中に,参考資料を適宜記載する.
授業内容と
その進め方(2,000文字以内)
/Course outline and weekly schedule(up to 2,000 letters)
授業内容:

1. ガイダンス,イントロダクション
2. プログラミング言語:起源と歴史
3. ALGOL
4. 型システム
5. オブジェクト指向プログラミング:歴史と概観
6. クラスシステム
7. JavaとJVM
8. スクリプト言語
9. 関数プログラミング:歴史と概観
10. Haskellとモナド
11. Kokaと計算効果
12. メタプログラミング
13. 並列プログラミング
14. C
15. まとめ

進め方:

* 11回以降は発展的内容であり,授業進度に合わせて内容を取捨選択をする.
* 各回にコメントフィードバックを求め,次回で適宜取り上げる.
実務経験を活かした
授業内容
(実務経験内容も含む)
/Course content utilizing practical experience
授業時間外の学習
(予習・復習等)(1,000文字以内)
/Preparation and review outside class(up to 1,000 letters)
* 各回のコメントフィードバック,及びそれに係る復習・自習
* 期末試験,及びそれに係る復習
* レポート課題,及びそれに係る自習(プログラミングを含む)
成績評価方法
および評価基準
(最低達成基準を含む)
(1,000文字以内)
/Evaluation and grading
(up to 1,000 letters)
成績評価方法:

各回のコメントフィードバック・期末試験・レポート課題から総合的に判断する.
ただし,コメントフィードバックと中間レポート課題は,補助的な位置付けである.
期末レポート課題は,発展的なオプション課題である.


評価基準:

授業で扱ったプログラミング言語の諸概念やプログラミングパラダイムを理解し,自ら扱うことができるかを評価する.
期末試験の受験は,単位取得において必須とする.
尚,オプションの期末レポート課題を提出しなくても,他が十分良くできていれば,「優」が取れるように調整する見通しである.
オフィスアワー:
授業相談(1,000文字以内)
/Office hours(up to 1,000 letters)
Google Classroomで受け付ける.
学生へのメッセージ(1,000文字以内)
/Message for students(up to 1,000 letters)
プログラミング言語は,プログラマの思考を縛る.
あなたがプログラミング言語を1つしか選べないなら,あなたの思考はそれに囚われる.

"The tools we are trying to use and the language or notation we are using to express or record our thoughts, are the major factors determining what we can think or express at all!"
---Edsger W. Dijkstra (1972)
その他
/Others
木2開講
キーワード
/Keywords
プログラミングパラダイム,オブジェクト指向,関数プログラミング,言語設計,高階関数,型システム,計算効果