2007年度の担当科目の紹介です

担当科目(2007年度)の紹介


2006年度のシラバスに書いたことが実際の授業にどのように反映されたかについて振り返りながら2007年度の授業について紹介してみたいと思います。科目数が多いため毎年全部の科目を最新のものに更新することはできません。できないものについては授業中に指摘されたことや、こちらが進める上で改善した方がよい部分が見つかった場合には次年度の更新時に積極的に取り入れていきたいと考えています。

テキストの公開は前回まではインターネットで公開してたものもありましたが方針を変えて、講義に関するものはイントラネットでの公開としています。インターネットでの公開はゼミで使用したものを中心に公開したいと考えています。ただし、ゼミで使用したテキストを公開する際に内容が不十分な場合には公開を控えています。

オペレーティングシステム論

2006年度はオペレーティングシステム(OS)が基本的なハードウェアを管理しているという話から始めて、プロセスに関する話題まで取り上げました。テキストに一つのアイディアとしてアーキテクチャの考えを取り入れました。OSを様々な角度からアーキテクチャとして構造をとらえることでその性質をわかりやすく説明することができたと考えています。

それからプログラムの実行単位であるプロセスに関する話に入り、マルチスレッドまで説明しました。実際にWindowsでのスレッドの動きについてタスクマネージャを使って調べてみました。

さらにファイルシステムについても話を進め、OSとしてLinuxをVMWareで動かしてファイルシステムに関連するコマンドの練習を行いました。このようにWindows以外のOSに触れる機会を増やす必要があるものと考えています。

組み込みOSについても説明する予定でいましたが、説明するタイミングを逃してしまい今回は取り上げずに終わりました。

今年度は昨年度の講義の内容をベースにLinuxを例にとりOSの仕組みについて説明したいと考えています。場合によってはコードを使ってその仕組みを説明できればいいなと考えていますが学生によっては戸惑うかもしれないので慎重に扱いたいと思います。

授業は5号館の演習室を利用し、教材はイントラネットで公開するなどインターネットを効果的に利用した授業を行います。ただし、受講者が多い場合には、情報ビジネスコース並びに教職で単位が必要な者を中心に受講者を決定します。

また講義中にレポートを提出してもらいます。これを評価の対象とします。出席はとりません。レポートは手書きで提出してもらいます。会社での小論文の試験や多くの資格試験および履歴書などでは手書きで文章を書く必要があることを考えると、このような手書きのレポート提出はしばらくの間、必要のように思えます。ペーパーレス化に伴い電子メールの使用は奨励されるべきものですが、教育の場では読みやすい日本語の文章を書く練習をしてもらいたいと考えています。

講義中に紹介した参考書を読むことで知識を深めることができます。また、わからないことがあれば授業中に質問してください。必要があれば資格試験についてアドバイスしますので、気軽に質問してください。

通信ネットワーク論

講義内容は昨年度と同じようにコンピュータ同士がネットワークを使用しないで情報交換を行う方法から始めて、LANを利用してその中で情報交換をする仕組み、それからルータでネットワーク同士を結びネットワーク越しに情報交換を行う仕組みまで説明します。

それらの説明と同時にTCP/IPをメインとした各種プロトコルの説明を行います。もちろん、ISOのOSIモデルも使っています。

進め方としてはコンピュータから情報が発信されてから、同じLAN内でデータ送信先をどのようにして見つけるのかというところから始めて、インターネット間で送信先をみつける仕組みまで説明します。説明する過程でMACアドレスやルータの役割などについても説明します。インターネット間でのデータの送受信に関して理解してもらいたいと考えています。

またポート番号に関する説明の部分ではファイアウォールとの関連を取り上げ、ファイアウォールの果たす役割と、便利な一面使いづらくなる面もあることとその時の対処法について説明します。

コンピュータネットワークの話題は広いので、昨年度のテキストをベースにして、一部新しい内容を取り入れながら講義を進めたいと考えています。

オペレーティングシステム論と同様に授業は5号館の演習室を利用し、教材はイントラネットで公開するなどインターネットを効果的に利用した授業を行います。ただし、受講者が多い場合には、情報ビジネスコース並びに教職で単位が必要な者を中心に受講者を決定します。

昨年度は受講者が大幅に増えたため上記のような基準で受講者を絞りました。選考する際には面接およびレポートの提出をしてもらいました。

また講義中にレポートを提出してもらいます。これを評価の対象とします。出席はとりません。レポートは手書きで提出してもらいます。会社での小論文の試験や多くの資格試験および履歴書などでは手書きで文章を書く必要があることを考えると、このような手書きのレポート提出はしばらくの間、必要のように思えます。ペーパーレス化に伴い電子メールの使用は奨励されるべきものですが、教育の場では読みやすい日本語の文章を書く練習をしてもらいたいと考えています。

講義中に紹介した参考書を読むことで知識を深めることができます。また、わからないことがあれば授業中に質問してください。必要があれば資格試験についてアドバイスしますので、気軽に質問してください。

ゼミナール1

2006年度もゼミの最初の時間を使ってグループごとに桜の観察記録をとってもらいました。前回は初めてのこともあって文章でのレポートが多かったのですが、今年度の特徴としてPowerPointやHTMLを使用してビジュアルに発表するグループが多かったことがあげられます。優劣つけがたい報告が多い中、石巻専修大学の桜の開花までを詳細に記録したり各地の開花状況と比較したものが特に人気がありました。ゼミでの評価は各ゼミ生におこなってもらっています。

次に恒例のホームページコンテストを行いました。今回は評価が一部の優秀な学生に集中してしまいました。私の授業でマルチメディア通信論というものがありますが、ここでFlashを体験した学生がFlashのアニメーションを使用した効果的なページを作ったり、さまざまな工夫をページに取り入れ見るものをあきさせないページを作っているものもいました。一部の学生に評価が集まりましたが全体的にレベルがアップしています。技術、デザイン、ユニークの3点で評価を行っています。高得点の学生に同じ名前が目立つ中、順位を分け合った学生さんがいます。自分の作品がゼミ生の多くに支持されたわけですから自信をつける良い機会になることを期待しています。

評価するときにはWebサーバを自分で立ち上げます。他のゼミ生がこのサーバにアクセスして自分のページを見ることができるようにします。WebサーバにはANHTTPDを使用しました。実習室の各端末で各ゼミ生がWebサーバを立ち上げますが、各ゼミ生のWebサーバにアクセスしやすいようにリンクのページはこちらで用意します。

今回は4年生の協力によりPerlやJavaを使用して評価を回収するプログラムを作ってもらいました。効率よく評価結果をまとめ時間内に公表することができました。

また、ページを作ってもらう際に役立つようにHTMLの教材も用意しました。昨年度がワールドカップの開催年であったのでこれを題材にして教材を用意しました。この教材に関してはゼミのページで公開しています。よかったら試してみてください。

後期はゲームプログラミングの希望があったのでJavaのアップレットを使用したゲームプログラミングをテキストとして用意しました。

まず、テキストベースのゲームプログラミングから試してみました。逆噴射ゲームと言って壁にぶつからないように減速して車を停止させるというゲームですが、使用する燃料を適切に与えないと壁に衝突してしまいます。プログラムはオブジェクト指向の考えは取り入れず画面に文章を表示するプログラムから始めて少しずつプログラムを増やしゲームを完成させる際の流れを体験してもらうことを目標にしています。単純なゲームですが徐々にコードが長くなるので全体を把握するためには前回までの流れを復習しておく必要があります。テキストは毎週、10個ぐらいのサンプルプログラムを用意しそれを試してもらいましたが、タイピングのスピード、前回までの流れを理解できているかどうかというところで差がついていたように思えます。

次に2Dグラフィックスによるアドベンチャーゲームを用意しました。今度はテキストの場合と違い、画像やサウンドのデータを管理する方法、オフスクリーンにバッファを用意してキャラクタと背景の画像の描画を行ったり、タイマーを実現するためにマルチスレッドを用意したり、マップを配列のデータとして扱うときの方法、そしてモンスターを出現させ追跡させる時に簡単な追跡用のルーチンを用意する、キャラクタやモンスターがマップの山の位置に入り込まないようにするにはどうしたらいいかなどいろいろなテクニックが必要になってきます。

これらのテクニックを練習するプログラムを用意するだけでも大変な量となり、学生は消化不良を起こしているようでした。また、これらのテクニックを一通り練習したからと言ってゲームが完成するわけでもありません。やはりゲームのストーリーというものが必要になってきます。

このようにゲームプログラミングの基本までは練習しましたが、自分たちの遊んでいるようなゲームを自分で作ることはなかなか大変であることを実感できたようです。しかし、これではせっかく自分でゲームを作って見たいという希望があったのに、創作の芽をつんでしまうことにもなりかねないので、このような実習は見直す必要があると考えています。やはり、テクニックも大切ですがそれらを各々練習していくよりはいったん一通り動くゲームをサンプルとして見せそれを改良していくアプローチをとることでゲームを作りたいという気持ちを保てるのではないかと考えています。

今年度はこのような反省をふまえ、前期には観察をテーマにした発表とホームページ作成、後期はゲームプログラミングを例に取りイメージどおりのプログラムを作るための練習を行いたいと考えています。

前年度のシラバスを見るとWebプログラミングよりのことをやるようなことを書いていますが、ゼミではアンケートを取って学生の希望を取り入れながら動的にゼミの内容を変更しています。

評価は観察、Webページ作成、プログラミングなどの活動の様子を参考にしてつけたいと考えています。試験はありません。出席もとりません。教科書はありません。参考書は必要に応じ紹介していきます。

情報システム演習III

毎年、javaのプログラミングを通じてオブジェクト指向プログラミングについて練習しています。統合開発環境としてEclipseを使用しています。

学生の感想を聞いてみるとなかなかオブジェクト指向プログラミングの考え方は理解してもらえないようです。まだテキスト自体に工夫が必要なように思われます。サンプルに使用するプログラムを使って応用の利くプログラム、つまりそのプログラムを利用してある程度利用できるプログラムが作れるようになれば学生も興味をもってくれるのではないかと期待しています。

そのようなサンプルプログラムはまず、オブジェクト指向抜きで考えますが、一通り動くようになってから、オブジェクト指向の考えを使ってプログラムを作り変える練習をしてみるとよいかもしれません。そこでどのようなサンプルを用意したらよいか今から頭の痛いところです。

実はFlashを使用したアニメーションやActionScriptを使用したプログラムではシンボルというものをいったん用意するとこれをもとにインスタンスを用意することができます。これはまさにオブジェクト指向の考え方なのですが、Javaで自分でプログラムによりオブジェクトを作る際には一般的にビジュアルにイメージできない例を使うことが多いので、このような点を考慮しておもしろい例が用意できればいいなと考えています。

また、Eclipseを使用してプログラムを開発していましたがJava SDKに含まれる基本ツールとNoEditorのようなテキストエディタからコマンドプロンプトを呼び出してプログラムを開発する方に変更したいと考えています。将来、プログラムの開発に従事するような仕事につく場合、会社側で統合開発環境を指定することになるでしょうから、大学で学習する際には基本的なツールによりプログラムを開発していくことでどのような手順をふんでプログラムが開発されるのかを知っておいた方がよいものと判断したからです。

Javaの基本的な文法をサンプルプログラムにより練習する方法をとってきましたが、それだけだと、応用の利かないものとなってしまいそうです。サンプルプログラムで何か仕事を行えるようにし、なおかつ基本的な文法にも慣れていってもらいたいという要求を満たすようなテキストを作れるように努力していきたいと考えています。

課題は2回ほど提出してもらうことを予定しています。課題で作ってもらったファイルは電子メールに添付してレポートを提出してもらいます。これをもとに評価を行います。また、毎時間、時間内に練習問題が解けたものについて名前を控え、評価の際に参考にしたいと思います。出席はとりません。試験はありません。出席もとりません。教科書はありません。参考書は必要に応じ紹介していきます。

入門ゼミナール

ゼミナールIで取り上げた内容をWin32APIを使用しCによりプログラムを作っていきました。私の場合、入門ゼミでは名前とは裏腹に実験的な内容を取り上げることが多くなります。今回はかなりきびしい内容になったようです。

最初にテキストベースのゲームプログラミング、次に2Dグラフィックスによるゲームプログラミングということになりました。Windowsのプログラミングを目指したためにテクニックの解説に終始してしまい、ゲームを完成させるところまでたどり着くことができませんでした。

ゼミナールIの学生がJavaを利用して比較的楽にプログラムを書くことができゲームプログラミングのきっかけをつかんだのに対し、入門ゼミの学生はWindowsに関するプログラミングに戸惑い、テクニックを自分のゲームにどのように反映させたらよいかというところで悩んでいるようでした。

これはやはりテクニック重視のテキストに問題があり、学生の許容範囲を超えたところに原因があると考えています。どのような開発環境を利用しようともゲーム作りの楽しさを伝えられるようなテキスト作りをしていきたいと考えています。そのために簡単でいいから一通り動くゲームを用意しそこから応用していくことで必要なテクニックを追加していくようにしていきたいと考えています。ただし、デバッグやタイピングに苦労しているようなので学生の様子を見ながらテキストを用意していきたいと考えています。

課題は最後の時間にレポート、プログラムを提出してもらいます。プログラムのデモも見せてもらいます。以上の提出物およびデモにより評価を行います。試験はありません。出席もとりません。教科書はありません。参考書は必要に応じ紹介していきます。

ネットワーク論特論

大学院の授業です。コンピュータネットワークに関する応用について考えていきます。

昨年度は前期にサーバを構築してもらいました。希望を取り入れてWindows2003R2サーバを使用しました。今年度も受講する学生がいるので、OSはWindows、Linux、FreeBSDのどれかを使ってインストールしてもらうことを予定しています。人数が少ない場合、こちらでPCを用意します。多い場合にはどのようにするか相談して決めたいと思います。

インストール後、ActiveDirectoryの設定、IIS(Internet Information Service)のインストール、セキュリティ面を考慮したシステムの運用、管理について実習を行いました。セキュリティポリシーについても考えます。

後期はスクリプト系言語を使用してシステムの運用、管理を行います。言語としてPerl、Ruby、Pythonを予定しています。この中から一つ選んでもらいます。慣れていないと思いますので基本から指導していきます。その後でCGI、掲示板、ブログ、データベースとの連携まで指導します。講義を終わるころには自分で考えたサービスをプログラムで組めるようになって欲しいと思います。

以上、理想も含めて述べましたが学生に負担をかけるような進め方は考えていません。マンツーマンで指導していきますので、自分のペースで進めることができるよう配慮します。

授業では一人から数人程度の少人数で行います。各自の作業やどの程度理解しているのかについて質問を通して評価していきます。レポートは必要に応じ提出してもらいます。

試験はありません。出席もとりません。教科書はありません。参考書は必要に応じ紹介していきます。

ゼミナール 2

4年のゼミです。前期は就職活動と重なるため、個人のスケジュールに従って行動してもらってかまいません。

注意して欲しいのは、まだ4年で履修する単位が残っている方は、必ず単位をとるようにしてください。そのためには会社の行事を優先させることなく、常に授業に参加するようにしてください。

昨年度の前期はPHPとMySQLを利用したWebプログラミングについて実習を行いました。テキストはゼミのページで公開しています。難しかったのか学生の反応はひとつでした。今年度は昨年のゼミIの続きとしてゲームプログラミングの希望があったので、新しいテキストによりJavaによるゲームプログラミングを予定しています。

後期は卒論の作成指導を行います。後期の第1時間目までにタイトルについて考えておいてください。また、この時間に後期のスケジュールについて説明します。

4年になるとわかりますが、後期に入ると時間があっという間に過ぎていきます。毎時間スケジュールについて説明しますがそれにしたがって卒論を書いていくようにしてください。

また、昨年度はゲームのコンテストに参加し、ある程度の成果を収めた学生もいました。チームを作ってコンテストに参加したわけですが、このような例はプロジェクトとみなしますのでプロジェクト単位で卒論を提出してかまいません。提出方法については通常の提出と異なりますのでチームを作ってプロジェクトを考えている学生は卒論を書く時期になったら相談してください。

評価は前期の実習の進み具合を見て決めます。また後期は卒論の制作過程を見ながら評価を決定します。具体的には、卒論の提出および面接は3回あるので、この3回の提出、面接すべてに出席した方は評価Aをもらえる可能性が高くなります。この3回の提出、面接を通し製作の進捗状況を考慮して評価をつけます。試験はありません。出席もとりません。教科書はありません。参考書は必要に応じ紹介していきます。

基礎ゼミ

1年の前期に行うゼミです。大学の授業を受けるにあたり基本的なことを学習しようということになっています。まだ大学の授業に慣れていない時期なので力をいれて授業を進めています。

毎年いろんなやり方をしていますが、昨年度は新聞を読むところから初めて、いろんな作家の文章を読ませました。いろんな人がいていろんな考え方をしているんだということを知ることは大切なことだと思います。

この授業では出席を取りたいと思います。出席およびレポートなどにより評価を行いたいと考えています。教科書はありません。参考書は必要に応じ紹介していきます。

マルチメディア通信論

昨年度もFlashを使用したアニメーションとActionScriptによるプログラミングについて練習しました。前半でFlashのアニメーションの作り方について解説していきます。基本的なテクニックを中心に解説していきます。テキストはページで提供すると実習室の15インチのディスプレイでは画面が狭く作業に集中できなくなるので印刷したものを配布しています。

基本的なテクニックだけなので物足りない学生もいるかもしれませんが、習ったテクニックを使ってここまで表現できるんだということを示す練習問題を用意しています。そして課題は区切りとしてActionScriptの練習に入る前に1回出してもらいますが、その時までに今までに習ったテクニックを使用して自分がイメージしたアニメーションを作ってもらいます。

課題提出時には基本的なテクニックだけでもすばらしい内容の個性的な作品ができるんだなと毎回感心しています。必要に応じてテクニックを覚えるような学習方法にしていくことが大切なんだなと感じております。

後半ではActionScriptを使用して簡単なプログラムの練習を行います。シンボルに対するインスタンスの考え方に慣れてもらいオブジェクト指向の考え方も体験してもらいたいと考えています。

このように授業ではテクニックを学ぶよりはオリジナルの作品を創作することに重点を置いています。従って授業では最初に基本的なテクニックについてサブモニタを使って解説するので、これを見ながら実際に試してもらいます。その後で練習問題を用意するので練習したテクニックを使用してどこまで表現できるのか練習してもらいます。

課題では完成度の高い個性的な作品も見られます。また、課題もいろいろなレベルのものを用意するのですが、高いレベルの課題に挑戦する方もいて実習に対する意欲が感じられます。昨年と同じテキストを使ったのですが一部冗長な部分もあったので今年度は一部変更することを考えています。

課題はアニメーションとActionScriptによるプログラミングについて、2回ほど課題制作用の時間を用意しています。課題用に作ってもらったSWFファイル並びにFLAファイルをメールに添付して提出してもります。これらのファイルをもとに評価を行います。また、毎時間、時間内に練習問題が解けたものについて名前を控え、評価の際に参考にしたいと思います。。試験はありません。出席もとりません。教科書はありません。参考書は必要に応じ紹介していきます。

大学院演習

大学院の博士課程前期(修士課程)の演習です。期間としては2年にわたります。修士課程での研究は自分がイメージしたアプリケーションやシステムを完成してもらうことを目標にしています。必要に応じて最新の技術を取り込んでもらいます。このようにして作ったシステムやアプリケーションで商業的に成功するのかについても考察してもらいます。また、TAなどの活動を通して、後輩の指導を行ってもらいたいと考えています。

この演習では1年目の連休明けぐらいまでにプロジェクトのテーマを考えてもらいます。テーマについて教えてもらった後で、テーマが具体的なものに絞りきれていない場合には、どの程度のものを論文として表現したいのかについて相談しながら絞り込んでいきます。

それから、実験をしてもらうことになります。自分のイメージするアプリケーションを作ってもらったり、自分の考えているシステムを実現してもらうことになりますが必要なツールやアイディアについては随時相談に応じます。

年が明けて1月ぐらいに進捗状況について報告してもらいます。この時期どの程度進んでいるかによってテーマを変える場合もあります。そして10月ぐらいまでに自分が取り組んできたプロジェクトをある程度完成させてもらいます。

10月ぐらいから論文を書き始めてもらいたいと思います。これは翌年の1月末が審査用論文の締め切りとなっているためです。従って、論文の指導はこのぐらいの時期から始めます。具体的には10月終わりぐらいまでに序論を提出してもらいたいと考えています。12月末から1月中旬までに論文のほとんどを完成させることを目標にしてください。ただしプロジェクトの進捗が順調な場合には論文を書く時期を早めに設定することも考えています。

学生によっては、実験がうまくいかない場合などが起こることも考えられます。このような時には相談してください。論文の構成について一緒に考えていきましょう。

また、この他にも11月末ぐらいに中間発表が予定されています。発表の割り当てが回ってきたときには、自分が行っている研究についてプレゼンテーションを行ってもらいます。この発表に備えてプレゼンテーションの練習を何度か行います。

このようにして演習を進めていきますが、演習を進めるにあたり、お願いしたいことがあります。プログラミング言語を二つマスターしてください。一つはC、C++、Javaなどの大規模なプログラムを作る際に使用される言語です。もう一つは、Perl、Ruby、Python、などのスクリプト系の言語やScheme、Haskel、MLなどの言語です。

一つの言語にこだわることなく、状況によっていくつかの言語を使いこなせるようになってください。

評価はプロジェクトの運営、管理についての報告書、および目標の達成度により決定します。これは論文の作成過程も含んでいます。試験はありませんが論文に関しては、演習を終了して修士論文を提出した後で審査が行われます。論文は基本的に日本語で提出してもらいますが、希望があれば英語での提出も認めたいと思います。出席はとりません。参考書は必要に応じ紹介していきます。

人文情報処理<非常勤>

東北大学文学部の2年生以上を対象にしたコンピュータリテラシーに関する授業です。セメスターで行っています。まず、Excelを使って表計算に慣れてもらいます。グラフを作ったり、組み込みの関数の使い方、VBAを使用した関数の作り方についても練習します。

次にSQLというデータベース用の言語をAccessを使って練習します。そして、プレゼンテーション用のスライドをPowerPointを使用して作ってもらいます。

それからHTMLを使用してWebページを作る練習を行います。CSSやJavaScriptについても練習します。その後は毎年様々な実習を行っていましたが、昨年度はPerlの基本的なプログラミングについて練習しました。今年度はRubyを使用したプログラミングを取り上げたいと考えています。

レポートは原則として実習当日に提出してもらいます。提出する際には指示に従い印刷して提出してもらいます。このように提出してもらったレポートをもとに評価を行っています。試験はありません。出席は取らないことにしていますがチェックのために学籍番号、名前を書いてもらうことがあります。教科書はありません。参考書は必要に応じ紹介していきます。

高大連携プロジェクト関連

昨年まではSPPというプロジェクトの関連で高大連携用の授業を受け持っていました。石巻地域の高校生を対象にした授業を夏休みに設けるというものです。午前午後のそれぞれ2時間ほど使って授業を行います。

昨年度で2年目となります。テキストとしてKnoppixを使用したLinuxの利用方法について実習を通して解説しています。モニターを使用して解説しているためVMWareを起動してからLinuxを使っています。

今年度も同様のプロジェクトで続けるのかどうかについてはまだ決まっていません。この他に新たにFlashを使用した授業を高校生に向けて行うような企画が予定されています。

評価はありません。テキストはここで公開しています。興味のある方はご覧ください。