[an error occurred while processing this directive]
pin-darkred pin-darkred
**OLD Contents**

English contents available if tagged with eng
Home jpn Research, CV jpn
  • Interests
  • Publications
Teaching
  • enshu
  • jikken
Laboratory IPLlogo
  • Have fun
  • Research Park
CS Salon
  • Pro-Sym
  • PTT
  • Wakate no Kai
  • ICPC training
Socio-academics
  • EMMA
  • Academic Debate
  • kenshu places
Hobby, etc
(C) 2002-2004
Kazuhiko KAKEHI
 

Teaching

[Top] [Prog Lang (2005, Tsuda)] [B3 enshu (2004)] [B4 enshu A (2004)] [B3 jikken (2004)] [B4 enshu B (2004)]

プログラミング言語(2005年後期,津田塾大学)


日程

月曜日 2限(10:30から12:00まで),5206教室にて.

9月26日,10月 3日,10月17日,10月24日,10月31日,11月 7日,11月21日,11月28日,12月 5日,12月12日,12月19日, 1月16日の計12回.


概要

関数型言語Haskellに関する講義,Haskellを用いたアルゴリズム設計,およびプログラミング言語の仕組みについて学びます.


試験について

日程
2006年 1月23日(月)10:40から12:10まで90分間
場所
ここ5206教室
内容
基本的な概念,考え方がわかっているかどうかを問う問題を出します.
注意事項
参考書およびノート,授業でのスライドその他の持ち込みを許可します.
一方で,コンピュータや携帯通信機器の利用は不可とします.

レポート(第 2回)

形式言語に関するもの,および帰納法を用いた証明に関するものの合計 3題を解いて下さい.手間はかかりますが,授業で行なったことに従って手を動かせば解ける問題です.

※形式言語については試験には出しません.一方で,証明の部分は試験に出す予定ですので,練習だと思って手を動かして下さい.

問題は12月12日の授業資料を見て下さい.提出先は学科事務室もしくは授業とします.

  • 締切: 1月16日(月)午前中

レポート(第 1回)

Haskellの使い方に関して(本当に)簡単に説明したページを準備しますので,そちらを参照して下さい.

経過報告(2005年12月 5日)

合計で30名弱の提出を受けました.採点を済ませ学科事務室の返却ボックスに入れてあります.

経過報告(2005年11月21日)

9名分のレポートを受け取りました.提出した人はどうもご苦労さまでした.

今日で一次締切を迎えましたので,ヒント付カレンダーのプログラムrjustifyの定義を追加したもの)を公開します.とにかくカレンダーのプログラムを動かしたい場合は,rjustifyの上下にあるljustifyおよびcjustifyを消してしまうか,または--でコメントアウトしてしまえば可能となります.

まだ提出していない人,改良版を再度提出したい人は,二次締切までに提出して下さい.

提出方法

以下をまとめて提出して下さい.

  • 作成(修正)したプログラムおよびその実行結果
  • 作成(修正)した内容の説明
  • また,授業に関するフィードバックもお願いします(「早い」「わかりづらい」など…ちなみに特定できる場合には「…がまだわかっていない」と書いてもらえると助かります).
  • 氏名,学籍番号を忘れずに.

提出先は学科事務室とします.締切日を二段階にわけて設けます.

  • 一次:11月21日(月)午前中
  • 二次:12月 5日(月)午前中

一次締切の後には,カレンダーのプログラムを動作させるのに必要となる「右寄せ」(rjustify)を追加します(つまり一次締切では「右寄せ」がちゃんと実装できるかどうかを問うています).残りの課題を行なって下さい.

なお,書籍などの資料や他の人のレポートといったものを参考にした場合,それらを「参考文献(資料)」として挙げておくようにしましょう.

課題内容

主に第 6回授業で説明したカレンダーの例について(カレンダーのプログラムに手を加えることになります).

  1. 「左寄せ」(ljustify),「中央寄せ」(cjustify),「右寄せ」(rjustify)の関数を実装して下さい.
    • 文字列と横幅を示す数を受け取り,空白文字(' ')を追加してその文字列を適切な位置に配置させるようにして下さい.
    • 上記カレンダーのプログラムの中でその部分だけ定義が与えられていません.それを追加して下さい.
  2. 右寄せが実装させることでカレンダーが表示されるようになります(カレンダーをロードして"putStr (calendar 2005)"と実行してみて下さい).実際に実行できることを確認して下さい.
  3. カレンダーのプログラムに修正を加えて下さい.例えば:
    • 曜日や日付を縦並びでなく横並びに表示されるようにする
    • 月曜日から始めるようにする
    • 干支の情報を追加する
    • プログラム内に型情報を付記する

講義資料

ご報告 (2005年10月16日)
ようやくウェブサーバの設定を行ない,スライドが入手できるようになりました.
第 1回 [資料]
講義の概要,Haskellについて
第 2回 [資料],第 3回 [資料]
関数定義,式の書き方,基本データ型
第 4回 [資料]
型,リスト
第 5回 [資料]
リスト(写像,濾過,畳み込み)
第 6回 [資料]
リスト(パターン,処理の例)
第 7回 [資料],第 8回 [資料]
形式文法, 3型文法と正規表現, 2型文法と構文解析
第 9回 [資料]
再帰と帰納
第10回 [資料]
簡約と効率
第11回 [資料]
無限リスト,新しい型
第12回 [資料]
新しい型,おさらい

First written: Sunday, October 2, 2005 
Final revision: Jan 14, 2006, 11:54:34 JST