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

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


2008年度の新入生からカリキュラムが変わりました。今まで前期に基礎ゼミというものを設けてクラス単位で学生を指導してきました。それを発展拡張し通年で行うようになりました。背景には各大学で抱えている基礎学力の充実があげられます。また、学生が自分から学生生活にはいっていけないものもいるため、十分な期間を与え教師が助言、指導を与える場を設けています。

カリキュラムが変わるため説明する際に新カリ(新しいカリキュラムの名称)と旧カリ(旧いカリキュラムの名称)で同じ名前が使われるあるので、必要に応じて担当科目の紹介において科目名の後に新カリ、旧カリと記しておきます。

また、新カリでは、2年で入門ゼミと言って先生が任意に開講していたゼミがなくなり、2009年度からは2年からゼミ1(新カリ)というものが開講されます。それに伴い3年のゼミ1(旧カリ)がゼミ2(新カリ)、4年のゼミ2(旧カリ)がゼミ3(新カリ)というように名称が変わります。これは2008年度新入生から適用されます。

新カリにおいて2年でまず、どんなゼミがあるのか体験してもらい、3年、4年で自分にあったゼミを決めてもらうことを念頭においています。また、従来どおり2年から3年にかけて進級要件というものがあり、これを満たさないものは留年することになります。この大事な時期に学生に対し教師が助言、指導を行う場が今までなかったので、このゼミ1(新カリ)を通してその場が提供され、留年するものが減ることが期待されています。

このように経営学部ではゼミナールというものを通し、教師と学生の交流の場を提供していきます。これからさらに2年からゼミを始めていくわけですが、どのように展開していくのか楽しみです。

また、石巻専修大学は高大連携事業というものも行っています。石巻地域の高校を対象に授業に参加してもらい単位を認定すると言うものです。コンピュータ基礎という授業でそれを担当することになりました。

2007年度は学生の活動に影響されることもありました。去年から今年にかけて学生がDoCoMoカップというケータイアプリのコンテストに参加して、ゲーム部門にエントリーし、結局最終審査まで進みましたがグランプリ、準グランプリには及びませんでした。しかし、いろいろな賞をもらっていました。

私の方でも、ゼミ1(旧カリ)、2(旧カリ)でこの学生から影響されゲーム作りからプログラミングの楽しさを学んでもらおうとテキストを作成し、学生に試してもらったのですがなかなか理解してもらえませんでした。やはりプログラミングに個人差があるということ、素材、シナリオの準備においても個人差があるということ、だからといってゼミ生の中から役割分担をしてゲーム作りをしようと考えるものが出ずどうしても一人で作りこんでしまうというようになってしまうところに問題があるようです。

また、テキストを作る側としても、RPGタイプのゲームにしても場面が変わるとか、所持品の変更、NPCの扱い、クエストの設定、クリアなどを徐々に追加していくのですが、追加するたびにプログラムが増えていき学生には理解しがたいようだったことが教えていて感じられました。

この時DoCoMoカップに参加した学生も話を聞いていたわけですが、やはりほとんど理解できていないようでした。しかし、ではなぜゲームのプログラムを作れるようになったかというと、自分の理解した範囲で、自分が実現したいことをプログラムしていったということのようです。プログラムを作る際にはJavaを使用していますが、結局クラスは数個でそれで数万行のプログラムを書いています。しかもほとんどは繰り返しや条件分岐でリファクタリングの格好の素材となるようなプログラムでした。

しかし、彼の場合、プログラムのテクニックはさておきゲームとして考えたアイディアを決められた期間中に実現することに力を入れていたわけです。

彼の考え方は初心者が問題を解決するにあたっては大事なアプローチ方法ではないかと気づきました。つまり、ソフトウェアを開発する際にいろんなことをすべて知ったからといって、作るものがイメージできなければ何もできないわけです。それに対しプログラミングのテクニックは稚拙でも作りたいもののイメージがあればそれなりの作品は完成できることが実証されたわけです。

ただ、これだけでは作品が完成できなかったのも事実です。やはり彼を取り巻く先輩、後輩や友人の力も大きかったように思います。院生の先輩や友人は実現したい部分でプログラムをどのように書いたらいいかわからなかった時に時間を惜しまずに協力してくれていたようです。また、DoCoMoのケータイを持っている友人や後輩はテストに快く参加してくれて、参考になる意見やきびしい批判をもらったそうです。

今回の経験はゼミでも使えそうです。今までのやり方だと実習中心に進めるものの、こちらからの一方的な練習や課題により自分で考えることにあまり時間を割くことができていないようでした。 そこで、早速2007年度3年後期からゼミ1(旧カリ)に新しい進め方を取り入れました。このアイディアはゲームを作る際のプロセスを参考にしています。まず、学生に残りの学生生活において目標をもってプロジェクトを企画してもらいます。もちろん、ゲームを作るとか、Webページを作るというものもいましたが、一番多いのは資格を取るというものでした。変わったところでは運動部関連で筋肉の鍛錬などというものもありました。

このような企画をもとに企画書を作ってもらいます。その企画書をもとに面接を行い意図が伝わらない企画については書き直してもらいます。それから仕様書として、プロジェクトのスケジュールや目標を達成するための手順などを示してもらいます。また、面接を行い計画に無理のあるもの、説明が詳細な部分に至らないものについて書き直しとなります。それから実際に仕様書に従いプロジェクトを進めてもらいます。ゼミ1(旧カリ)の最後の方、3回分を使って中間報告を行います。また、面接を行いプロジェクトの進行状況について報告してもらいます。

そして引き続き4年に入ってからゼミ2(旧カリ)でプロジェクトの見直し、あるいは順調にいっているものには目標をさらに高めるなどの指導をしていきたいと考えています。

今までゼミにおいてものを作るということに焦点をあててきました。もちろん、プログラミングを前提にしていますが、ゼミでは何を作るかというところが画一的なものになっていたように思います。目標をこちらで与えて作ってもらうというのは、プログラミングの知識、プログラムを作るという意欲がそろわないと難しいもののように思えます。

今回取り上げたプロジェクトの企画、運営および面接による指導ということを通して、学生が意欲をもって取り組めるものを知り、目標を設定してその目標を達成するための手助けをしてあげたいと考えています。もちろん、失敗はどんなプロジェクトにもつきものですが、そこから学び取るものは貴重なものなので、それについての考察を行ってもらいたいと考えています。

ゼミに関するこの計画は2007年度3年のゼミ1(旧カリ)の後期から始めました。これから学生にどのように受け入れられていくのか期待しながら見て行きたいと思います。

以上、今回経験してきたことをもとにいろいろゼミに思うところを述べてきました。今回のシラバスではゼミ1,2(旧カリ)の紹介から始めたいと思います。

ゼミナール1、2(旧カリ)

先に説明したように来年度から新カリのゼミが加わり学生は4年を通してゼミに参加することになります。それに先駆けて、例年ゼミ1、2は別の曜日に行っていましたが、今年から火曜の4講目が3年のゼミ1(旧カリ)、5講目が4年のゼミ2(旧カリ)となり、ゼミを連続して行うことができるようになりました。

このような連続した時間をとることで3年が引き続き4年のゼミに参加すること、および4年が3年のゼミに参加して指導してもらうなど、授業形態を活かす事ができるものと考えています。

また、3年、4年を通して、プロジェクトを企画、立案、運営する、およびそれに応じて本来の研究を行うことが可能になてくるように思います。

昨年度の経過および各ゼミの進め方は以下の通りです。。

2007年度のゼミ1(旧カリ)では、前期にまずCSSについて考えてもらいました。参考としてhttp://www.csszengarden.com/tr/japanese/のページを見てもらいました。(最近は日本語のページも用意されたようです)このサイトでは共通のHTMLのページに対し、CSSを用意してもらいどのようなアイディアやデザインが可能かをみんなで紹介しあうというページです。

学生がいきなりCSSを使ってこのサイトのようなページを作るのは難しいので、いろいろあるページから自分の気にいったデザインのものを選んでもらい、こちらがアレンジした上で、自分のトップページを作ってもらう練習をしました。

しかし、トップページはなんとかできるものの、これを応用して自分のサイトを構築するというところまで進むものは残念ながらいませんでした。

これはページの構成がまだできていないうちにデザインを先行して取り入れていったことが問題だったようです。自分のページの構成が決まってくるに従い、与えれたCSSをどのように変えれば、自分が必要とした項目を追加したり、いらない項目を削ったりすることができるのかということが必要になってきますが、自分が選んだCSSの例で項目の追加や削除を行った場合、レイアウトやデザインが極端に変わってしまうものもあり簡単に応用できないものが多かったように思います。

その後、恒例のホームページコンテストを行ったわけですが、先に与えたCSSのデザインから抜けられず、トップページだけで終わっているもの、リンクさせるページの準備ができなかったものが多く見られました。

コンテストでは、自分のイラストを紹介するページを作った学生が1位となりました。彼の場合、CSSは捨てて、フレームを使ってイラストを紹介するようにしていました^^;

これをふまえて、最初からデザインやレイアウトから入っていくのはインパクトは与えるものの、自分でページを作るということには役に立たないことがわかりました。ある程度自分のページというものが構成できてから、自分のテクニックに合わせてデザインやレイアウトを導入していった方がよさそうです。

後期には新しくプロジェクトの企画、立案、運営という作業を行ってもらうことにしました。これは年度をまたいで4年の前期までにプロジェクトを完成させるというものです。

もともとは後期はゲームプログラミングを予定していたのですが、ゼミ1(旧カリ)に参加している学生の意見を聞くかぎりでは、必ずしも全員がゲームプログラミングを進んでやりたいと思っているわけではありませんでした。

また、ゲームプログラミングを行うにあたって必要な技術についても、レベルがそろっていないことがわかりました。そこで、このまま続けていった場合、特定の学生に対するゼミ1(旧カリ)の活動ということになってしまい、不参加の学生が多くなることが予想されました。

ゲームプログラミングにおいて参考にした次の本では、ゲームを作るにあたって、企画書、仕様書を準備するところから始まるというようなことが書いてありました。

アクションゲームプログラミング、藤田 和久 著、ソフトバンク、2007

この考え方はゲームはもちろんのこと、さらに対象をゲーム以外のものに拡張して、プロジェクトを考えることに応用すれば、学生も目標をもってゼミに参加できるものと考えました。

そこでスケジュールを決めて必要な書類の提出、および面接を受けてもらうことにしました。大体の流れとして企画書の提出、提出後の面接、仕様書の提出(ゲーム以外のプロジェクトのものに関しては、詳細な企画書)、提出後の面接、そして年度末に中間報告書の提出してもらい合わせて面接をおこなうようにしました。

10月に企画書を提出してもらうことを期待したのですが、学生によっては資格の取得、クラブ活動において忙しいなどの理由により決められたスケジュールに従えないものもいました。

厳密にスケジュール通りに従ってもらうということを前提にしていません。今から、学生にストレスを与える必要はないものと考えています。ただ、4年の前期の終わりまでにはプロジェクトをまがりなりにも完成させるという目標をもってもらいたいということを強く希望しています。

年度末の中間報告の段階では、思ったようにプロジェクトが進んでいるもの、企画を変更するもの、資格をプロジェクトとして選んだものは、資格の取得に成功したもの、失敗したものと各学生によって結果がでてきています。

しかし、プロジェクトの経過が思わしくないものはそのうまくいかない原因を探り、改善策をプロジェクトに活かしてもらいたいと思います。経過が良好なものは、さらに一つ上を目指して、自分の可能性に挑戦してもらいたいと考えています。

以上のように昨年度の実績をふまえて、2008年度のゼミ1(旧カリ)でも同様に前期に、ホームページコンテストを前提にしてホームページの作り方から練習していきたいと考えています。今回は2007年度の反省をふまえ、自分がホームページを構成するにはどうしたらよいかというところに焦点をあて、ページの構成、素材の準備などを中心に解説していきたいと思います。その際に、自分が作りたいと思うページの構成について、考えてもらったあとでそれを私に説明してもらい、さくっとそれをまずページとして実現してもらうところから始めたいなと考えています。面接中心のゼミになるかと思います。

後期は、2007年度の経過で説明したスケジュールでもって、プロジェクトの企画、立案、運営について考えてもらいたいと思います。

今までは、ゼミの学生の希望を考えた動的なゼミの運営を考えてきましたが、昨年度から始まったプロジェクトの企画、立案、運営を主軸として、これにホームページコンテストを加えた、構成でしばらくやっていきたいと思います。

評価はホームページの作成、ホームページコンテストの結果、およびプロジェクトの企画、立案、運営に関しては面接を通してつけていきたいと考えています。試験はありません。出席もとりません。教科書はありません。参考書は必要に応じ紹介していきます。

次に続けてゼミ2(旧カリ)について説明します。

2007年度のゼミ2(旧カリ)では前期に、Javaによるゲームプログラミングについて練習しました。以下の本の例を参考にしてJavaでRPGのゲームを作ろうというものです。

Sams Teach Yourself Game Programming With Directx in 21 Days、Clayton Walnum 著、
Sams、2002

テキストを作りましたがなかなかプログラムについては理解してもらえなかったようです。Javaの場合クラスを利用するわけですが、いきなりクラスというものを用意しても何のために必要なのか、クラス同士の連携がどうなっているのかというところが理解できていないようでした。

DoCoMoのコンテストに参加していた学生も参加していましたが、やはりクラスの必要性ということが理解できていないようでした。彼の場合、クラスは二つぐらいで済ませていましたが、ほとんどは一つのクラスに書いていたわけですから、必要性を感じなかったし、用意したとしてもどのようにしてクラスを構成し、組み合わせて使っていったらよいのかわからなかったものと思われます。

このようなことから、最初からサンプルのプログラムを与えてこういう風にクラスを用意して作ったらいいよという進め方に問題があったようです。それよりは、この学生が進めたように自分のアイディアを実現するために、クラスの構成を考える前に一つのクラスでもかまわないからプログラムを作っていくことの方が大事なように思えます。それから、必要に応じてクラスというものを利用して、リファクタリングやパターン化していくことの方が進め方としては自然なように思いました。

ホームページ作成のところに書いたように、ここでも自分のアイディアをJavaという言語でもってさくっとプログラムが書けるように指導したいと考えましたが、すでにゼミ1(旧カリ)のところで説明したように、3年後期から4年前期にかけてプロジェクトについて考えてもらうことにしたので、このような指導は別の授業で行いたいと思います。

また、ゲームプログラミングにおいては、ある程度作りこむとコードはだいたい同じようなものを書いていくことになります。データとして画像やサウンド、シナリオに力を入れる必要が出てきます。特に画像やサウンドに関しては、プログラムを作る側ががそれに関する才能を持ち合わせていない場合が多いので、この段階で先に進まなくなってしまうように思います。

フリーの素材を使うことや、仲間を集めて仕事を分担することを勧めてみますが、自分だけのオリジナルにこだわる学生が多くいました。このようにゼミにおいてゲームプログラミングを行うには、ゲームのプログラムを作る以外に様々な作業が必要になってくること、またプログラミング、素材作成においてそのテクニックのレベルも大きな差があるため画一的なテキストでは各学生のレベルにあった内容を提供できないということがわかりました。

結果として、4年前期のゼミではテキストを用意しましたが、サンプルを実行する程度で終わった学生がほとんどのようでした。オリジナルのゲームまで応用が進んだ学生はいませんでした。

実は、2007年度のゼミ1(旧カリ)の後半でゲームプログラミングを行うことになっていましたが、このようなゼミ2(旧カリ)での経験をもとに、プロジェクトの企画、立案、運営を取り上げることにしました。

4年後期のゼミは、卒論指導を行いました。例年通り10月に入ってから卒論のテーマを教えてもらいます。テーマについては夏休みには考えておくように言ってあります。卒論のテーマは基本的になんでもかまいません。自分の書きやすいテーマをまず見つけてもらうところから始まります。

その後で、卒論の構成について説明してから、序論までを書いて提出してもらいます。同時に面接を行います。それから本論部分をある程度書いてもらい、提出後面接を行います。必要があれば書き直しをしてもらいます。

このように卒論の指導では製作過程を中心に見ていきます。一生のうちに卒論のような構成力が必要な文章を書くことはあまり機会がないと思います。この機会に文章の構成の仕方についてしっかり身に付けていってもらいたいと思います。

2008年度のゼミ2(旧カリ)では前期の場合、就職活動と重なるため、個人のスケジュールに従って行動してもらってかまいません。3年から続いているプロジェクトの運営をしっかり行ってください。

前期のスケジュールでは5月の連休明けぐらいにプロジェクトに関し、2回目の中間報告を行ってもらいたいと思います。7月にプロジェクトの最終報告書を提出をしてもらい合わせて面接を行います。最終報告書を提出する段階において、プロジェクトの成功および失敗は評価に大きく影響しません。それはむしろ副次的なものでプロジェクトを進める上で自分がどのような努力をしてきたのかということが問われます。

夏休み中は、後期の卒論の指導にむけて卒論のテーマについて考えておいてください。

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

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

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

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

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

入門ゼミナール

2008年度はありません。新カリに移行するため今年度からなくなりました。

昨年度はODEという剛体力学用のオープンソースの高機能ライブラリを使用したプログラミング実習を行いました。

下記の本が参考になります。

簡単!実践!ロボットシミュレーション - Open Dynamics Engineによるロボット
プログラミング、出村 公成 著、森北出版、2007

ただし、経営学部の学生が目標とするのはこの本の前半部分の知識だけで、複雑なロボットの動作までは必要としませんでした。簡単な動作のサンプルプログラムを用意して、学生に試させました。

最終的にヒンジとヒンジ-2ジョイントまで使えるようにして、課題を出しました。課題例としてはオリジナルの車を作れとか、迷路、ドミノ倒し、ビリヤードを作るというものを出しました。

その中でビリヤードを作った学生がいましたが、本当はビリヤードの枠にあたった時に跳ね返るようになればよかったのですが、そのまま枠を素通りしていってしまうというところが惜しい出来でした。

参考までに立体のプリミティブ同士の衝突検出は次のページに一覧できるようになっています。特に円柱同士の衝突はODEでまだ実装されていない(2008年3月末時点)ようなので注意する必要があります。

http://opende.sourceforge.net/wiki/index.php/Manual_(Collision_Detection)

入門ゼミでは実験的な授業として、過去にPOV-Ray、GLUT、ODEのプログラミング、そしてFlashとBlenderの実習を取り上げてきました。これらの実習を通してサンプルをまねてオリジナルの作品を作るということに重点を置いてきました。

学生さんには、授業の最初のうちは覚えることが多くなかなか大変だったかもしれませんが、課題を出すころには期待以上の素晴らしい作品を残してくれた学生も何人もおります。プログラミングのおもしろさが伝えられたかなと思っています^^

基礎ゼミ(新カリ)

今年は新カリの内容となり、1年生を対象に通年で行うことになりました。リメディアル教育を目標としています。そのうち半分の時間はクラスごとに割り当てられた先生が教えることになっています。残りは1年生全員を対象にして講義や講演などが予定されています。

今年度から始まるものなので、全体としてまだはっきりと何をやるかが決まっているわけではありません。

ここでは私が担当する分について説明しておきます。従来通り最初の時間は、履修の指導をしたいと考えています。

昨年度は残りの時間に公務員試験からとってきた問題を解いたり、英語で数学の問題を解いてもらったりしました。

何かのレポートで基礎ゼミで一緒だった学生に、基礎ゼミでレポートの書き方を教えてもらったことが役にたったということが書いてあったのでうれしく思いました。こういうこともあるので今年度はこのレポートの書き方についてみっちりやっていこうかなと考えています。

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

コンピュータ基礎(新カリ)

一年の前期にコンピュータの基本を学んでもらうことを目標に設けられた科目です。二人の先生がペアになって教えます。

前半は益満先生がWord、Excel、ブラウザやメールの使い方について教えます。後半が私の担当でCのプログラミングの基本について教えてくれということになっています。

開発環境の使い方、変数の扱い方、繰り返し、条件分岐までについて実習を行い、配列は扱わないということになっています。オリジナルのテキストを用意して臨みたいと考えています。

この授業でも、なんでプログラミングをするのか、何を作るのかということに重きを置いて取り組んでいきたいなと考えています。

また、私と益満先生が担当のコンピュータ基礎は高大連携のプログラムに入っていて、高校生も参加することになっています。

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

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

2008年度も基本的に2007年度の内容と同じです。ただ、基本情報処理の資格をとった学生からオペレーティングシステム論と通信ネットワーク論を勉強しておけば、午前の問題の関連する部分を十分に解くことができるんじゃないかという話を聞いてうれしく思っています。

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

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

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

組み込みOSについてはインターフェイスやトタンジスタ技術などの雑誌でもよく話題にのってきていることから今回取り上げてみようと考えています。最近、宮城県にセントラル自動車やトヨタの工場が進出するようなことが話題になっていますから、組み込みOSについて説明するにはいい機会かもしれません。

また、インテルのCPUが今コアを4つまで入れていますがこれが将来32になるという話も聞いています。それと消費電力の関係などCPUの話もおもしろそうです。そしてコアが増えた際のプログラミング環境の話、スケーラビリティなどについても時間があれば取り上げようかと考えています。

そして2008年初めFreeBSDはバージョン7.0がリリースされました。また、WindowsVistaもSP1を配布するなど新しい動きが見えてきています。これから新しいOSにはどのような機能が要求されるのかについても考えていきたいと思います。

授業は5号館の演習室を利用し、教材はイントラネットで公開するなどインターネットを効果的に利用した授業を行います。

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

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

通信ネットワーク論

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

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

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

またポート番号に関する説明の部分ではファイアウォールとの関連を取り上げ、ファイアウォールの果たす役割と、便利な一面使いづらくなる面もあることとその時の対処法について説明します。 2008年2月から3月にかけて、石巻専修大学の外部インターネット接続は二つの回線を利用したマルチホーム環境となりました。この環境においては10Mと5Mの回線を使用し、負荷分散装置を2台用いたものになっています。また、IPアドレスを新たに申請しクラスC分を確保しました。このような作業に実際に参加してきたのでその中から授業でつかえそうなものをとりあげていきたいと考えています。

また、2008年に入ってBフレッツのFLET'S.Netのサービスの契約が必要なくなるなどベンダーが提供するサービスに変化が生じてきています。このようなユーザサイドの情報も取り入れてみたいと思います。

また、石巻専修大学ではホットスポットの環境は学内ネットワークに関しては用意されていますが、学生に十分に周知されていません。外部のISPに対してはこれから無線LANの利用ができるように設備が設置されることが予定されています。このように学内のネットワーク環境もどんどん変わってきているので、この環境を学生に有効に使ってもらう上でも授業において解説していきたいと思います。

オペレーティングシステム論と同様に授業は5号館の演習室を利用し、教材はイントラネットで公開するなどインターネットを効果的に利用した授業を行います。

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

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

情報システム演習III

毎年、javaのプログラミングを通じてオブジェクト指向プログラミングについて練習しています。 昨年度は開発環境としてJDKのコマンドとテキストエディタを組み合わせてプログラムの開発を行いました。Eclipseを使うことも考えましたが、IDEとしてNetBeansなども出てきています。授業では一番基本的な環境でプログラムの開発を体験してもらうことにしました。

Javaを使用してゲームプログラミングの基本として画像を用いてマップを利用した画面を作り、さらにキャラクターの画像を用意してイベントに対応して動くところまで作る練習をしてみました。これをもとに課題としてオリジナルなものを目標にプログラムを作ってもらったのですが、なかなか応用にまで至りませんでした。迷路を自動生成するプログラムを考えた学生がいて努力している様子が窺がえました。

教材としてRPGまがいのものを取り上げましたが、これをオリジナルなものに発展させるには、サンプルとして難しいことがわかりました。2008年度も引き続きゲームを教材として取り上げたいと思いますが、オリジナルなものを作れるようにもっていけるようなプログラムを提供したいと考えています。

2007年度は履修した学生が少なかったので、この時間の実習が難しいものととらえられていたのかもしれません。このことを反省し学生が取り組みやすい教材を準備したいと考えています。Javaの基本を抑えつつ、ゲームを作るというのはなかなか難しいところで、いきなり説明が難しい話に飛躍しないように心がけていきたいと考えています。

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

ネットワーク論特論

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

2008年度は情報系を希望する院生がいなかったので開講しない予定です。

2007年度は恒例としてサーバのインストールと運営について取り組んでもらいました。OSとしてUbuntuを使用しました。サーバ用のコンピュータには院生室にころがっているものを利用しました^^;メモリが足りない分については遊びに来た学生が無償で提供してくれました。感謝しております。

日本環境を整えるまでいろいろ調べることがありました。また、Apacheの設定ファイルがUbuntuでは小分けになっているためそれに慣れるまでしばらく戸惑いました。運営が落ち着いて行えるところまでで前期の分が終わりました。

後期はRubyを使用してプログラミングの練習から始めました。RubyとMySQLのインターフェイスについて考えてもらいました。自分が作りたいアプリケーションについてイベントやそれに対するアクションについて説明してもらいました。

同時に、将来必要とされるアプリケーションはどういうものかについて考察してもらいました。そうやって出てきたアイディアをもとに簡単に試作版が作れるようになることを期待しています。

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

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

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

マルチメディア通信論

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

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

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

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

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

2007年度の課題ではピタゴラスイッチのフレーミィーを実現してみよという課題を出したところ、見事に作品を作ったものが何人かいました。また、オリジナルあふれる作品も何点かあり楽しませてもらいました。

何よりも、実習を楽しんでいる学生がいるということが、こちらも教えていてうれしくなってきます。授業では基本的なところしかやりませんが、興味をもったらさらに勉強して個性あふれる作品をたくさん作ってもらいたいものです。

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

大学院演習

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

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

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

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

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

また、プロジェクトの進捗がうまくいかない場合も出てくると思います。そのような場合に自分なりにどのような対策を立て、問題を回避できたか、さらに問題が生じた場合にはどうしたかについてメモしておきましょう。

プロジェクトにおいてシステムあるいはアプリケーションを作っている場合に、リリースノートみたいなバージョン管理用の記録を残してください。

このように実験が順調に進む場合も、実験がうまくいかない場合にも、プロジェクト進行中の記録というものは後で論文をまとめる時に大切な資料となってきます。常にノートを用意してプロジェクトに関する記録を取り続けるようにしてください。

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

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

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

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

人文情報処理<非常勤>

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

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

それからHTMLを使用してWebページを作る練習を行います。CSSやJavaScriptについても練習します。

2007年度後期は文学部の改修工事のため経済学部のコンピュータ室を利用させていただきました。経済学部の学生が常時利用する環境の中、やりづらかったかもしれません。また、1月に入って文学部にもどってきましたが設備が以前のように整備されていない状況でした。

2008年度はやはり他の科目で説明しているように、何のためにアプリケーションを使い、何を作るのかというところに焦点をしぼって、出来る範囲で少しずつテキストに反映させていきたいと思います。

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

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

2007年度はFlashを使用した授業を高校生に向けて行いました。文字を使った簡単なアニメーションについて考えてもらいましたが、なかなか思ったとおりに作品を作ることができずに苦労しているようでした。一人だけすらすらできる学生もいました。

高校の授業と違い、自分で考えることに重点を置いている授業にとまどっていたのかもしれません。やはり、高校生用に導入部を丁寧に解説する必要があるようです。

2008年度もFlashを使用した授業が予定されています。

評価はありません。しかし、授業の最後に感想などのレポートを提出してもらい、それに関して点数をつけて、評価担当の先生に参考資料として渡すことになっています。他の先生の資料と合わせて評価担当の先生が、最終的な評価を行うようになっています。

参考までにSPPの授業で使用したLinux(Knoppix)の使い方のテキストはここで公開しています。興味のある方はご覧ください。