タグ別アーカイブ: ライティング

MS Word Online vs. Google Docs

はじめに

昨日学部教授会前のFDで,LMS利用やOffice365などを授業に利用することについてのお話がありました。その中で,WordやPowerPointを共有することによって協働的ライティングやグループプレゼンをやらせるというような例もありました。質疑応答で,Google Docs(以下,Docs)とWordはどちらがいいのかという話も出たので,個人的な意見を書きます。はじめに結論を言ってしまうと,所属機関が契約していてGoogle Classroomを使える人はDocs一択かなと思います。また,個人利用の場合でも,学生にGoogleアカウントを取得させてGoogle Classroomを利用することに抵抗がなく,それ自体を面倒だと思わないという方もDocsだと思います。以下,いくつかの観点でWordとDocsを比べてみます。一つお断りしておくと,この記事を読み終わっても結局は自分が使い慣れている方を使うという選択を取る人が多数だと思います(それだけ自分が慣れていないものを使い始めるのはハードルが高い)。私はWord Onlineを利用していますが,そのことについては過去に詳しく書いたのでそちらをお読み下さい。

Word Onlineを活用したライティング活動

比較の観点になりそうな部分

次の観点がどちらを選ぶかを決める際のファクターになるかなと思います。

  • アカウント作成
  • ファイルコピー
  • 外部連携(英語ライティングのときのみ)
  • 変更履歴

以下,順番にそれぞれの観点を詳しく説明していきます。

アカウント作成

これは自分の所属機関の状況次第でしょう。所属機関がOffice365の包括契約を行っているのであれば,学生は自分の大学メールアドレスでアカウント登録がすでにされている状態ですので,新しくMicrosoftアカウントを取得することなくOffice製品がオンラインで利用できます(オンライン版はデスクトップ版より機能は制限されます)。一方で,所属機関がGoogleと契約しているのであれば,大学メールアドレス=GoogleアカウントになるはずなのでGoogle DriveとDocsやスプレッドシート等が使えるようになっていると思います。この状態になっているということは,教員側は自分の授業に参加している学生のアカウントを知っている状態と等しいわけですから,大きなメリットになると思います。もしもMicrosoftアカウントやGoogleアカウントを個人で取得させた場合,教員は誰がどのアカウントなのかを把握して管理する必要が出てきます。人によってはメールアドレスやアカウント名から本名を判断できない場合もありますし,アカウント取得時に指示しても守らず好きな名前で登録してしまいアカウント名の変え方がわからなくなるなどのトラブル発生地帯でもあります。私の所属機関である関西大学はOffice365の契約ですので,私はWord Onlineを使用しています(過去記事)。そういう状況の人がDocsを使う場合というのは,その他の3つの観点で得られるメリットがこのアカウント作成のデメリットを上回る場合でしょう。

ファイルコピー

これは,Google Classroomの機能ですので,Docsだけ利用しているという方が得られるメリットではないと思います(Docsだけでもファイルコピーする方法をご存知の方がおられましたらコメント欄でお知らせください)。また,そもそもファイルコピーが必要ないという方もここは特に重視されない点かなと思います。

ファイルコピーがそもそもなぜ必要なのか

私は英語ライティングの授業でWord Onlineを使いますが,必ず教員が作ったテンプレートをシェアするようにしています。これにはいくつか理由があって(過去記事の「授業前の準備」のセクション参照),1つ目はフォーマットを統一したいということがあります。口頭や書面でフォーマットに関する指示を出しても,統一できなかったり設定の仕方がわからずにそこで授業の時間を空費してしまいます。それならば,こちらで予めフォントはTimes New Romanで12pt,行間は2行,タイトルは中央寄せ,インデントは1字字下げ,のように設定してしまったものを使わせたほうがあとあと添削入れる際に楽なわけです(テンプレ使わせても勝手に変えてしまう学生もいますけど)。もう1つは,ファイル管理の便利さです。例えば,学生側が新規ファイルを作成し,指定したファイル名をつけて教員とシェアするようにさせるとします。すると,教員側からは,「共有ファイル」という形でシェアされるため,各学生からシェアされた共有ファイルをフォルダでまとめて管理したりすることができません(Google DriveでもOneDriveでもできないと思いますがこの方法をご存知の方がいたらコメント欄でお知らせください)。これができないと,課題ごと,クラスごとにまとまった状態でファイルの閲覧ができないため,非常に不便です。使うのが学期に1度でグループごとのファイルが二桁いくかいかないかというような場合は特に問題ないかもしれませんが。さて,以上の理由から,教員がファイルを作って共有するという前提があるということをご理解いただけたかと思います。しかし,教員がファイルをシェアしようとしたとき,1つのテンプレだけを作って共有してしまうと,それにクラス全員が書き込もうとする状態が発生します。これを回避するには,テンプレファイルをコピーして保存させるか,あるいはあらかじめ学生全員分のテンプレファイルを作っておくかということになります。前者の方法を使うと,コピーしたものを再度教員と共有することになるため避けたいところです(前述の学生から教員にファイルシェアすることによる問題が発生するため)。よって,教員側で学生全員分のテンプレファイルを用意する必要が出てきます。ファイルのコピーを作る方法自体は何も難しくありません。シェルスクリプトやコマンドプロンプトでできる人には朝飯前でしょうし,それができなくてもMacならAutomatorがあります。また,受講生が100人でもCtrl (or command) + Cをたった100回連打するだけで100個のコピーファイルが作れます。しかしながら,単純にファイルをコピーするだけでは,”XXXのコピー1.docx”とか,”XXX(1).docx”のような連番ファイルしか作ることができません。できれば,ファイルに名前をつけてあげたいところですが,すべて手作業でファイル名変更するのは絶対にやりたくありませんよね。じゃあ,といって,学生それぞれに個別にファイルを共有することにしたとします。Aさんには”XXXのコピー1.docx”を共有して,”XXX_A.docx”とするように指示し,Bさんには”XXXのコピー2.docx”を共有して”XXX_B.docx”とするように指示したとします。2人ならいいですが,これを100人にやるなんて考えられませんよね(ライティングで100人なんてありえないと思いますが15人でもやりたくないです)。

Google Classroomの便利さ

Google Classroomを使えば,上記の煩わしさは一切ありません。なぜなら,テンプレファイルを作ってシェアする際に「クラス全員にコピーを作成」というオプションが使えるからです。この設定でDocsのテンプレファイルを課題としてストリームに投稿すれば,個別にコピーを作成してシェアする必要はありませんし,ファイル名も学生の名前のついたものができます。便利ですばらしい。よって,Google Classroomを使っているならDocsを使うべきだと思うわけです。

Office365利用者でもファイルコピーはある程度簡略化可能

では,Office365利用者はどうすれば,ということになりますが,ファイルコピーと名前の変更はプログラミング言語を使ってある程度自動化させることができます。我田引水になりますが,下記の記事を参照していただければ,Rでファイルコピーとリネームができます。

[R] 同じディレクトリ内でファイルを複製する

一度スクリプトを保存すれば,あとはファイル名やディレクトリ名などの一部分だけ書き換えるだけで作業はできますので,テンプレ作成->ファイルコピー&リネーム->共有の作業は数分で可能です。

ただし,この方法がGoogle Classroom利用と決定的に違う点が1つだけあります。それは,共有する際にはフォルダごと共有するという方法を取らなければいけないという点です。Google Classroomでは,コピー&リネーム&個別共有を一括でできましたが,OneDriveの場合はLMS的機能はありません。よって,ファイル共有に関してはもしも個別に共有するのであれば1つずつ共有する必要があります。これを,クラス全員のファイルが入ったフォルダをまるごと全員に共有し,作業の際は自分の名前のついたファイルを開いて書くというようにすれば,共有の手間はほとんどありません。ただし,この状態では全員が全員のファイルにアクセス可能になっています。ここから生じうる問題に懸念がある場合には,地道に個別共有するか,Google Classroomの利用を検討すべきでしょう。

過去記事にも書きましたが,私は全員が全員のファイルにアクセス可能の状態をむしろ好ましいと思っています。なぜなら,私は授業で学生同士のフィードバックを頻繁に取り入れているからです。誰のファイルでも見れる状態でなければ,紙でやるときと同じようなピアフィードバックはできません。また,それ以外でも,自分のライティングが行き詰まったときに他の人のライティングを見て良いところを真似したりということで活用している学生もいます。私はこれをさせずに自分の力だけでやらせることのほうが良いとは思っていませんし,良いと思われるものはどんどん真似して取り入れていくというのが良いと思っています。ただし,すべて真似して良いということにはしていません。ファイルの閲覧が許されるのはライティングを書いて修正するプロセス(1つのタイプにつき数週間の期間)のみで,最終的に評価の対象となるものを提出させる際は過去のドラフトには一切アクセスできなくしています(注1)。ただし,何も見ずに書くのではそれまでの修正点が反映されなくなってしまうので,ドラフトにフィードバックが与えられたものをみてWritten Languagingをさせて,それをもとに最終稿を書かせています。

外部連携

次の観点は外部連携です。これは主に英語ライティングを念頭においていますので,日本語でのレポート作成やプレゼンファイル共有の場合は関係がないと思います。英語ライティングに便利なツールとして,GrammarlyやGingerといった自動文法・スペリングチェッカーがChromeやSafariなどのブラウザの拡張機能として提供されています。また,Writing Mentor(過去記事参照)もDocsのアドオンとして利用可能です。これらの外部連携サービスは,現状ではWord Onlineでは利用できません(デスクトップ版WordではGrammarlyとGingerは使えます)。つまり,こうした外部連携サービスを利用したいと考えていて,それが授業設計で重要な部分を占めているという場合には,残念ながらDocsのほうが良いということになります。もちろん,GrammarlyやGingerはウェブアプリとしてそれぞれのウェブサイト上でライティングをすれば(あるいはテキストをコピペすれば)チェック機能を使うことができます。よって,Wordを使うのであれば,書き終わったものをGrammarlyやGingerにコピペしてチェックし,修正したものをもう一度Wordにコピペするということで利用はできます。ただ,GrammarlyやGingerは書きながらフィードバックを与えてくれるところも利点の1つではあるので,その利点を活かせるDocsに軍配が上がります。

一つ注意しなければならないのは,Docs上でGrammarlyが利用できるようにするには拡張機能がブラウザに追加されていなければいけないという点です。もしも大学のPC教室で授業をしているとすれば,ブラウザに拡張機能を追加することが禁止されていたりするかもしれませんし,一度追加してもシャットダウンすれば削除されてしまい授業のたびに追加する必要があるかもしれません。ウェブブラウザとしてGoogle Chromeを使っていれば,Googleアカウントにログインしてどのマシンでも同じ環境設定のChromeを利用できるよう同期設定をすることでこの問題は回避できます。つまり,個人のPCで使っているChromeでGingerやGrammarlyが拡張機能として追加されていれば,大学のPCでChromeを開いたときにGoogleアカウントに同期することでいちいち追加する手間は省かれます(もちろん毎回Googleアカウントとの同期は必要になりますが)。

変更履歴

私が使っている環境では特にこれが必要になることはないのですが,複数人で1つのプロダクトを完成させるようなcollaborative writingやグループプレゼンの資料作りをやる際には重要な部分なのかなと思います。変更履歴の記録や表示については,Docsのほうが整理されているかなという印象です。また,Wordはオンラインでは変更履歴は見れません。Wordのデスクトップ版で変更履歴の記録をオンにした状態で学生と共有し,そのファイルをデスクトップ版で見れば変更履歴が見れるようです。オンラインでは,「変更履歴:オン」というのがページ下部に表示されるだけで,どこがどのように変更されたのかはわかりません。OneDrive上で,誰がいつファイルを編集したか,誰がいつコメントしたかのような情報は記録されていますし,変更が行われるたびにversionの情報は残るので,変更が行われる前のファイルをDLすることで前後の比較はできるようにはなっています。Docsの場合は変更の記録と変更箇所の表示などがすべてブラウザ上で完結するので,変更履歴を見たり,何がどう変化したかを観察したいという目的があるのであれば,Docsのほうが適していると思います。

まとめ

DocsとWordの2つの似たようなサービスについて,(a) アカウント作成,(b) ファイルコピー,(c) 外部連携,(d) 変更履歴,の4つの観点で比較しました。私がとりあえず思いついた点で比較したので,この他にも使う人によっては重視したいポイントや気になるポイントはあるのかもしれません。ご指摘いただければ∧私がやる気になったら,コメントいただければ追記するかもしれません(し,しないかもしれません)。結論としては,まず自分の所属している機関が契約しているサービスがどちらかというのが一つの大きな分かれ道です。授業に利用するのであればなおさら所属している機関が契約しているサービスを使うほうが良いかと思います。ただ,Docsのほうがファイルコピー,外部連携,変更履歴の点では便利です。したがって,最初にアカウント作成させる必要があるというデメリットよりもそれらのメリットのほうが大きいと考えるのであれば,Docsを利用するほうがよいでしょう。注意しなければならないのは,ファイルコピーはGoogle Classroomを使うことによって得られる恩恵であるという点です。外部連携や変更履歴についても,授業で利用するつもりであり,そのことが授業設計に極めて大きな影響を与えるならば,という条件付きで,Docsのほうが良いということです。ちゃぶ台返しみたいなことを言ってしまえば,オンラインで使えるドキュメント作成サービスをなぜ,どのような目的で導入するのか,ということがぼやけている状態の人にとっては,どちらを選ぶかを決めることも難しいということです。そして,これは授業の目標と密接に関連することです。結局はDocsもWordもツールですので,そのツールを何のために使うのかをまず明確にし,その上でどちらを使うほうが良いのかという判断をするということです。その際に,私がここで挙げたような観点が参考になればと思います。

なにをゆう たむらゆう。

おしまい。

注1. ずる賢い学生はアクセスできなくなる前にファイルをDLしたり写メを撮ったりするという可能性もゼロではありませんしそれを完全に防ぐことはできませんししていません。もちろん口頭では注意しています。

広告

Slackを用いた授業外ライティング活動の便利ワザ[Google Spreadsheet編③]

はじめに

下記の2つの記事の続きで,おまけ的なものですが自分の備忘録のためにも残しておきます(R編がなかなかスタートしないw)。

Slackを用いた授業外ライティング活動の便利ワザ [Google Spreadsheet編①]

Slackを用いた授業外ライティング活動の便利ワザ[Google Spreadsheet編②]

簡単に何をやっているのかをまとめます。Slack上で授業外ライティング活動をさせ,そこで書かれたものをGoogle Apps Scriptを使ってGoogle Spreadsheetに記録し,そこで個人の1週間あたりの産出語数を学生と共有するということをやっています。大まかな枠組みについては,上記の記事でカバーされていますが,今回は,「ちょっとかゆいところに手が届くといいな」くらいのお話です。

問題の所在

https://twitter.com/tam07pb915/status/1118157873219948545

学生の書いたものを読んでいると,カンマやピリオドの後に半角スペースを入れないで書いているものが頻繁にありました。

Yesterday,I went to the zoo with my family.After that,we went to an Italian restaurant.It was delicious.

みたいな感じのものを想像していただければいいかなと思います。見る人が見たら気持ち悪くてたまらないと思うのですが,おそらくデジタル環境で英語を書くという経験の少なさからこのような英文になってしまうのだと思います。もちろん,タイポのようなことはありうるのですが,それでも一つの投稿で頻発していたり,ある特定の学習者が連続して誤りを犯しているとどうもこれは半角スペースを入れることを知らないのではないか?と考えるようになりました。

手書きでスペースをあける行為と,キーボードやスマートフォン上でスペースバーを押したり,フリック入力時に「空白」と書かれた部分をタップしたりという行為が関連付けられていないのかもしれません。また,日本語では句読点の後にスペースを入れるというルールはありません。

だからといって,彼らの今後の英語使用場面として手書き以外で英語を書くことがないと想定することはできませんし、スペース入れるということも身につけて欲しい(そうじゃない文見たときの気持ち悪さもわかって欲しい)ことではあるのでしつこく言っていかないといけない気がしています。もちろん,気づいたときにはメインのチャンネルにも共有する形でスペースを入れるようにコメントを出してもいます。ただ,そういうことよりもむしろ「リアルなコミュニケーション」の道具として英語を使って教員ともやりとりしてほしいというところもありますので,あまり半角スペース警察にはなりたくありません。

また,授業運営上でも問題はあります。それは,語数のカウントです。語数のカウントは,1語ずつを単語だと認識して数え上げているわけではなく,単語と単語の間に生まれるスペースを基準にして数えています(詳細は上記の過去記事か,「エクセル 単語数える」とかでググって見てください)。つまり,”Yesterday, I”は2語と認識されても,”Yesterday,I”は1語になってしまうというわけです。ピリオドのあとに半角スペースがなく次の文が始まる場合も同様です。私は,「1週間で○○語を書き込むこと」を課題としていますので,あまりにもこのミスが多いと語数のカウントが通常より少なく計算されてしまいます。

解決方法

私が考えつく解決方法は以下のとおりです。一番土方っぽいものから順に,

  1. Googlespreadsheetの書き込みを1セルずつ確認して,ピリオドやカンマのあとにスペースがなければ手作業で足す
  2. Googlespreadsheetの「検索と置換」でピリオドやカンマを探し,ヒットしたものを目視で確認して半角スペースがなければ足す
  3. Googlespreadsheetの「検索と置換」で正規表現を使ってピリオドやカンマのあとにスペースがないものを一括で修正する
  4. Googlespreadsheetでsubstitute関数を使って置換する

1や2はありえないとして,3も問題があります。それは定期的に作業をしないといけないという点です。Googlespreadsheetを使う利点は,一度作業をしたらしばらくの間は放置しておいても勝手に語数が記録されて学生が確認できるという点です。したがって,できれば4で考えたいところです。しかしながら問題は,substitute関数では置換したい対象をうまく持ってこれないという点です。もしも,「すべてのカンマまたはピリオドについて,ピリオドまたはカンマと半角スペースに入れ替える」とすると,正しく使われているところに余計にスペースを入れてしまうことになります。そうなると,スペースの数を基準とする語数カウントがうまくいきません。そこで,正規表現を使う必要が出てきます。なんと,Googlespraedsheetには正規表現が使える次のような関数があります。

  • REGEXEXTRACT(正規表現で一致する文字列を抽出)
  • REGEXMATCH(正規表現で一致する文字列があるか検索して真偽値を返す)
  • REGEXREPLACE(正規表現で一致する文字列を別の文字列に置き換える)

今回の場合は,置き換えが必要なので3番目のREGEXREPLACE関数を使います。正規表現についての詳しい説明はウェブ上にごろごろ転がっているので,以下では詳しい説明はしませんのでご了承ください(注1)。REGEXREPLACE関数は,REGEXREPLACE(検索対象テキスト, 正規表現, 置換)という引数を取ります。最初の検索対象は学生が書き込んだテキストの入っているセルをしていすることになります。では,正規表現の部分はどうすればよいでしょうか。置換したい対象の文字列は,「ピリオドまたはカンマのあとに単語列が続くもの」でした。これを正規表現で表すと次のようにできます。

“(\.|\,)(\w+)”

ここで,カッコでくくってグループ化しているのは,置換するときに元の文字列を使いたいからです。置換は,ピリオドとカンマ,その後に続く単語列はそのままで間にスペースを挟むので,

“$1 $2”

$1は最初にグループ化したものなので,ピリオドまたはカンマ,$2は次にグループ化したものなので,任意の単語列になります。その間に半角スペースが入っています。つまり,次のような関数が完成形になります。

=regexreplace(テキストのあるセル, “(\.|\,)(\w+)”, “$1 $2”)

これで,ピリオドまたはカンマのあとに単語列が続くときは半角スペースを挟む」という作業ができるようになりました。あとは,この関数のセルに対して語数カウントをする数式を適用すればよいわけです。

新たな問題

さて,うまくいったかのようにみえたのですが,実は先程の例を使うと別の問題が発生することに気づきました。それは,半角スペースはあるけれど,それがピリオドやカンマの前にあるという場合でした。例えば,下記のようなものです。

Yesterday ,I went to the zoo with my family .After that ,we went to an Italian restaurant .It was delicious.

このような用例に対して先程のREGEXREPLACE関数を適用してしまうと,新しく得られるものは次のようになります。

Yesterday , I went to the zoo with my family . After that, we went to an Italian restaurant . It was delicious.

これでは,カンマやピリオドが1つの単語として認識されてしまい,語数のカウントが逆に多くなってしまいます。これを避けるには,「文字列の直後にあるカンマやピリオドの場合には」という条件を加えれば良さそうです(注2)。ということで,改良版は次のようなものです。

=regrexreplace(テキストのあるセル, “(\w+)(\.|\,)(\w+)”, “$1$2 $3”

Googlespreadsheet上で見ると下記画像のようになります。

置換前と置換後のテキストと,それぞれの語数カウントの比較

 

おまけ(絵文字タグの削除)

slackといえば,絵文字も使えます。絵文字も文字コミュニケーションにおいては重要だという部分もありますし,一切絵文字は使うなというのもおかしな話です。slackから書き出される絵文字は,半角のコロン(:)に挟まれたタグになってテキスト化されます。”:heart:”や”rolling_on_the_floor_laughing”と言った感じです。これが文字列にくっついている場合は特に問題ありません(注3)。しかし,文字列から独立した状態で使われると,絵文字1つが1単語と認識されてしまいます。このことに気づくと,すべての文に絵文字をつけたり,あるいは半角スペースを挟んで絵文字を連続させたりという学生が現れます。昨年度は口頭注意でそれなりにケアしていましたが,どうせREGEXREPLACE関数を使うのだから,絵文字タグも取ってしまえばいいということに気づきました。下記のようにしてあげると,絵文字タグが取れます(注4)。

=regexreplace(テキストのあるセル,“\:.*?\:”,“”)

実際にGooglespreadsheet上で使うときには,スペースが入っていないことで生じる問題を解決する関数を使った上で,その結果の出力に対してさらに別の列で絵文字タグを取る関数を使うのもありです。むしろ,プログラミング的には良いのだと思います。なぜなら,なにか問題があったときにその問題の原因を探りやすいからです。ただ,入れ子にすれば1列で済みます。

=regexreplace(regexreplace(テキストのあるセル,“\:.*?\:”,“”),“(\w+)(\.|\,)(\w+)”,“$1$2 $3”)

さらに,語数をカウントする数式にこのREGEXREPLACE関数も入れ込むと…

=(LEN(regexreplace(regexreplace(テキストのあるセル,“\:.*?\:”,“”),“(\w+)(\.|\,)(\w+)”,“$1$2 $3”))LEN(SUBSTITUTE(regexreplace(regexreplace(テキストのあるセル,“\:.*?\:”,“”),“(\w+)(\.|\,)(\w+)”,“$1$2 $3”),” “,“”)))+1

もうなんだかわけがわからなくなってきましたが,この最後の数式を使えば,新しく列を増やしたりすることなしに語数カウントができるようになっています。

おわりに

この記事では,Googlespreadsheetで正規表現を使って学習者が犯すパンクチュエーションの誤りを直すということの例を示しました。他の媒体(R,Python,サクラエディタ)等で正規表現を使った経験があるのでなんとかなりました。一応ざっと確認して特に問題ないとは思っていますが,正規表現にはあまり自信がないので間違いを見つけた方はどうかコメント欄等でご指摘ください。

なにをゆう たむらゆう。

おしまい。

注1: 記号類をそのまま使うときになんでもかんでもエスケープ記号つけるのは私の癖です(そして一貫性もないですたまに忘れるので)

注2: この方法の一つの問題は,”I ate lunch ,and took a nap.”のようなものが残ってしまうという点です。「半角スペースの直後にピリオドやカンマがあり,その直後に文字列が続く場合には,半角スペースを消して文字列とピリオドやカンマの後に挿入する」のようにすれば解決されます。ただし,関数の入れ子が複雑になる上に単語数カウントには関係ないので今回は無視しています。REGEXREPLACE関数でやるとすれば,次のようなものになるかなと思います。

=regexreplace(対象文字列のセル,“\s(\.|\,)(\w+)”,“$1 $2”)

注3: もしも,単語リストを作ったり,コロケーションを見たりのようにテキスト分析にいこうとすると,この絵文字タグは外してあげないと絵文字タグと隣接する文字列が認識されなくなってしまいます。

注4: 17:10:29のように時間をコロン区切りで書き込むような例があると,これも引っかかってしまうのですが,まあほとんどないと言っていいと思うので木にしていません。

The Writing Mentorを使ってみた

Twitterで下のツイートを見かけました。

 

Google Docsで使える無料のライティング・フィードバックツールだと!?ライティングの授業を担当している私としてはこれは試してみるしかありません。というわけで,どのような機能がついているのかと,私の感想を書いておこうと思います。

はじめ方

  1. https://mentormywriting.org/に飛んで,”Download”をクリックします。
  2. Google Chromeのウェブストアに飛ぶので,インストールします(Googleアカウントの認証があります)
  3. Google Docsにアクセスしましょう。
  4. 下の画像のように,アドオン->Writing Mentor->Startをクリックします。

  1. 右側に,Writing Mentorが出てきます。下の画像の前の段階で,何の目的でライティングすることが多いかと,自分のレベルがどれくらいかを自己申告するものがあります(Grammarlyにもありますよね確か)。

  1. あとは,Google Docs上で何か書いて(またはどこかからコピペして),”Get Feedback”という緑のボタンをクリックすれば,フィードバックがもらえます。

どのような機能があるのか

フィードバックをもらいたいライティングプロダクトを入力して,緑のボタンを押すと,下のような画面が現れます。今回は,私が修士課程にいたときの授業の1つで,”Explain Bourdieu’s three kinds of capital.  Give some examples and tell how they are related.”というお題で書いた短い文章を使ってみました(他にパッと使えるものが思い浮かばなかったので)。

語数カウントと類義語検索

この画面では,左下に全体の語数のカウントが出ます。その隣には,目標語数が入力可能です。真ん中下の緑の”I’m finished”の右にある”Unfamiliar Words”は,単語を入力するとその類義語を表示してくれる機能のようです。テキスト中に含まれていない単語でもOKです。語数カウントは別にGoogle Docsの標準機能にありますし,類義語検索はGrammarlyのChrome拡張機能が入っていればダブルクリックで表示してくれるので,そちらのほうが便利ではないかなと思います。文中にないような類義語が知りたいという場面がどういうときに発生するかはわかりませんが,そういう用途があれば使えるということでしょうか。この2つは特にメインの機能ではないと思います。ただ,一ついいかなと思うのは,類義語検索した語とそのリストをテキストファイルで出力して保存できる点です。

includeは文書に含まれていたもの,insane(なぜこの単語)は文書に含まれていないものでした

フィードバック機能

フィードバックはConvincing, Well-developed, Coherent, Well-editedの4つの観点から提供されます。順番に見ていきます。

Convincing

Convincingはさらに”Claims”と”Sources”の2つに分かれています。要するに,書き手の主張はちゃんとサポートされているのかをチェックするよということのようです。”Claims”をクリックすると,”Hedge”, “Boosters”, “Standard”の3つの種類の表現がハイライトされます(全部一度にハイライトもできますし,個別にハイライトも可能)。

例えば,”Headges”では,can, could, tend toなどの表現がハイライトされます。ハイライト部分をクリックすると,下の画像のような文章が現れます。

ヘッジ表現を使っているけれども,ちゃんとこの主張はサポートされているのかい?ということですね。

“Booster”は逆に強めの主張で,willなどの助動詞や,Especiallyなどの副詞がハイライトされ,クリックすると上の画像と似たような感じで「これは強めの主張だけど,ちゃんとサポートされているのかい?」というメッセージが出てきます。

“Standard”はheadgeでもboosterでもないニュートラルなものと書いてありますが,ハイライトされたものを見てもどういう基準でハイライトが入るのかはちょっとよくわかりませんでした。

”Standard”でハイライトされた単語

おそらくですが,価値判断や主観が入るような単語や表現がハイライトされるのかなと思いました。クリックすると出てくるメッセージは「これはclaimかい?ちゃんとサポートされているのかい?」というものでした。

今回試しに入力した文章ではレファレンスがなかったのですが,レファレンスがあると”Sources”で確認できるようです。つまり,レファレンスに書いてあるものが本文中に書いてあればハイライトされるというような機能なのかなと思います。長めのレポートのチェックにかなり便利でしょうね。

Well-developed

この機能は,入力した文章の中で最も高頻度で現れた”main topic”と呼ばれるキーワード(多分名詞か形容詞に絞られていると思います)が示されるとともに,”topic keywords”と呼ばれるその他の重要そうな単語がハイライトされます。”topic keywords”は自分で追加・削除が可能で,変更するたびに”Apply Changes”をクリックすると変更が反映されます。

これは正直このフィードバック受けたあとにどうしたらいいかが先ほどのConvincingの部分よりもわかりにくいかなと思いました。入力した文章のせいかもしれませんが,文章のメインのトピックとそれに関連したサブトピックスのつながりとかそれぞれのサブトピックスについてちゃんと書けているのかといったことを確認していくことになるのかなという感じでしょうか。つまり,キーワードの周りを注意して読みましょうね,という。

Coherent

この下位分類として,Flow of ideas, Transition Terms, Long Sentences, Title&Section Headers, Pronoun useの5つがあります。Title&Sectiobn Headersはヘッダー入れようねということなので,長めのペーパーを意識したフィードバックかなと思います。今回は短い文章なので,それ以外の4つを見ていきます。

Flow of Ideasは,前のWell-developedとほぼ同様ですが,トピックが複数ある場合に有効なようです。今回は短めだったからかメイントピックは1つと認識されましたが,メイントピックが複数ある場合はそれに関連したキーワードのみを表示することが可能なので,複数のメイントピックがごちゃごちゃになっていないのかを確認することができるのだと思います。つまり,メイントピック1を書いている部分にメイントピック2のtopic keywordsが混ざっちゃってるよ!というようなことが視覚的にチェックできるということなのでしょう。このあたりは未確認なので,もっと長い文章で試してみる必要がありそうです。

Transition Termsはおなじみのやつですね。いわゆる接続語句で,Howeverなどの逆接や,for exampleなどの例示,first, secondなどの順序を表す語句などがハイライト表示されます。ハイライトされた語句をクリックすると,その単語の機能(As a resultをクリックすると,”Consequence”と出てきます)と類義語がリストで表示され,リストのうちの一つをクリックすると元の語句と入れ替わります。注意が必要なのは,この段階では文法のチェックはされないということです。よって,例えば文頭の”In contrast”の類義語として”in stead of”が出てきますが,それをそのまま使うと誤りになってしまうというようなことが起こるので,接続語句の使い方をわかっていなければいけません(in contrastとin stead ofはなんか違うような…)。

Long Sentencesは文字通り一文が長いものをハイライトしてくれて,2文以上に分割したら?と言ってくれます。これは一文に含まれる節の数で判断しているようですが,単純にそれだけではないようで,割と単純そうに見えるものでもハイライトされたり,逆にthat節の中に関係節が埋め込まれているというようなものはハイライトされなかったりしています。

 

Pronoun useは,文章中の代名詞をすべてハイライト表示し,

Do pronouns in your assignment refer to one clear noun referent? Read aloud the sentences containing pronouns to make sure that the references are clear to you!

という指示を出してくれます。さすがに代名詞の照応ができているかとかそんなことは見てくれませんが,「この代名詞なに指してんねん!」みたいなのは学生のプロダクトを見ているとしょっちゅうあるので,そこに意識を向けさせるだけでも良いでしょう。

Well-edited

最後に,文法などの誤りへのフィードバックです。下位分類として,Errors in Grammar, Usage & Mechanics, Claim verbs, Word choice, Contractionsがあります。

Errors in Grammar, Usage & Mechanicsは,文法の誤り,綴りの誤りなどを訂正してくれます。冠詞や数の一致はしっかり拾ってくれますが,統語的な誤りについては難しいようです。例えば,次の文(もとの文から関係詞を削除したもの)は誤りとして検出されませんでした。

it is obvious that children (who) have cultural and linguistic capital which is considered to be valuable would be able to achieve high social status, symbolic capital.

Grammarlyでも誤りにならなかったのでこういうのは機械では難しいのですかね。

Claim verbsはthinkなどをハイライトしてくれます。自分の主張をするときには有効だけど同じ単語を繰り返し使っちゃうこともあるから,見直して言い換えてみようというようなアドバイスがあります。ハイライトされた単語をクリックすると類義語が見れて,リストの単語をクリックすると入れ替わります。

ただし,文脈と関係なしにハイライトされることには注意が必要でしょう。例えば,上の画像の”thinkは”the ability to think”という名詞句の一部であり,書き手の主張を表すthinkではありません。

Word choiceは,主に余計な副詞がハイライトされるようです。very, really, absolutelyなど,おそらくですが主観に基づく強意副詞等について,「これ本当に必要なの?」とサジェストしてくれます。

Contractionは,省略形(don’tなど)がある部分をハイライトして,それを直すように言われます。これはワンクリックで直してくれたらありがたいですが,自分でタイプして修正しなければいけないようです。

感想

まずはじめにものすごくプラクティカルな問題なんですが,ウィンドウを大きくしてもWriting Mentorの部分は大きくならず,左右のスクロールをしないと本文とフィードバック部分を同時に見れないというのはかなり使い勝手が悪いです。これはフィードバック機能そのものとか以前の問題です。

 

私の環境の問題かもしれませんが,せっかくの42.5インチディスプレイがこのざまですよ。

というのはさておき,肝心なフィードバックの部分についてですが,教師が手とり足取りそれぞれのフィードバックの意味や改善方法を教えないと無理だろうなというのが率直な感想です。もちろん,何が問題か,どう直すべきかは英語で書いてあります。「英語で書かれている時点で厳しい」というレベルの学習者にとってはそこすらハードルになりえるかもしれませんが,そうではなかったとしても,「直し方」についての具体的なフィードバックはありません。私のような英語教師(高熟達度で自律的な英語学習者)だからこそ,「あーヘッジ表現ね」とか,「んーたしかにここはちょっと強く言ってる割には根拠レスだな」とか,「キーワードがぐちゃぐちゃってことはいろんなアイデアが混ぜこぜになってるわ」というようなことがわかるわけで,そのレベルにないほとんどの学習者にとっては教師のヘルプなしにこのツールを導入することは逆に大きな混乱を招きかねないと思いました。

また,文法チェックについては,上に書いたようにGrammarlyのGoogle Chrome拡張機能がGoogle Docsに対応しているので,そちらで対応するほうがシンプルだと思いました。もちろん,GrammarlyはCoherenceの部分は対応していないので,そこについてはWriting Mentorのフィードバックが活きてくるでしょう。

自分の授業に取り入れるかどうかはまだわかりません。Writing Mentorの導入段階でどのような指導が必要になるかをよく練った上で,上手にツールを組み合わせれば教師の仕事が減ることは間違いないだろうということは言えますが,問題は使い手次第ですね。「どう使わせるか」がかなり大事になってくると思います。繰り返しになりますが,ライティングで大事なことは何かがわかっている段階でないと,Writing Mentorがくれるフィードバックを活かしてよりよい英文を書くというのは難しいです。私が受け持つ外国語学部1回生のことを思い浮かべてみても,彼らですら使いこなせるかわからないと思ってしまうくらいです。エッセイライティングにフォーカスした授業だとしたら,カリキュラムのその後半部分や学年があがった段階で導入するのはありかもしれません。

最後に,私の印象ですが,これはタームペーパーのようなものが課題として想定されているのかなと思いました(最初の設定で変わるのかもしれません)。パラグラフ・ライティングや短めのエッセイだと,Writing Mentorのフィードバックのいくつか(例えばreferenceの部分やトピックのことなど)はそこまで有益なものにならないかもしれません。そのあたりの見極めも,実際にどのようなものを入力すればどのようなフィードバックが返されるのか,いろいろなタイプの文章で試してみる必要がありそうです。

おわりに

というわけで,Writing Mentorをちょっと使ってみたレビュー記事を書いてみました。機械の限界はあれど,こういうツールをどう使いこなせばいいライティングの授業ができそうかを考えるのは楽しいですね。みなさんもいろいろな文章で試してみてください!そして,ぜひぜひそれを共有してください。

なにをゆう たむらゆう

おしまい。

 

 

 

Word Onlineを活用したライティング活動

はじめに

最近ライティングの事ばっかり記事にしていていますが,他の授業もちゃんとやっています。ただ考えた事はとりあえずまとめておこうと思うので,今回はコンピュータ上でライティングさせながら”即時”フィードバックを出してみるというお話です。

前期は普通の教室で,紙ベースでライティングをさせていたのですが,後期は情報処理演習室で授業をやっています。学生の数は20人弱で,多分25を超えるようになってくると,一人一人にできるコメントは限定的になってしまうかなと思います。ただ,これも書く時間をどれくらい設けるか次第ですね。書く時間を学生数で割ったのが単純に一人の学生に費やすことができる時間なので,書く時間が長ければそれだけたくさんの時間を学生の書いたものを読んでコメントを出す時間に使えます。パソコンでやろうが紙でやろうが,人数が多いと厳しいですが,同じ人数で比較した場合には私が以下で説明する方法の方がはるかに効率がいいと思います。つまり,授業外で添削にかける時間をできるだけ減らしながら,授業内で学生にフィードバックを出す時間を最大化できるということです。しかも,授業運営ソフトウエアのようなものが整備されていないパソコン室(学生の画面を監視できない部屋)や,学生が個人のパソコンを持ち込んで行うような形態でもできるというのも重要な点だと思います。

背景

パソコンでライティングさせることにしたのは,パソコンで書かせる方が課題の提出,管理,フィードバックがやりやすいなとなんとなく思っていたということが大きいです。そういう思いで,授業にもだいぶ慣れてきた後期から教室を変えてもらうことにしました。

いわゆるパソコン室での授業で,授業運営ソフトウエアが入っているので,学生一人一人の画面を巡回して回ったり,こちら側から操作をしたりということもある程度は可能です。つまり,学生一人一人がMS Wordを使ってオフラインで書いて,それを提出ということもできます。

ただし,それを提出させたり,というところで色々めんどくさいことが起こりそうだなと感じました。また,授業管理ソフトウエアはライティング活動を念頭に置いてデザインされていないため,ライティングのフィードバックにはあまり向いていない(痒いところに手が届かない)というのも,オンライン上で全部一括管理してしまおうという発想に至った理由の一つです。

環境としては大学がOffice 365の契約を結んでいるので,各学生は自分のアカウントでOne DriveやOffice製品を使うことができるという感じです。そうでない場合には,下に挙げた論文でも使用されているGoogle Docsでも同じような事は可能だと思います。

どちらもやっている事は同じで、オンライン上でドキュメントファイルを教員と学生が共有して,授業の時にコメント欄を使ってフィードバックを出すということです。こうしたオンライン上でのライティング活動でフィードバックを出すという話は,以下の論文からヒントを得ました。

Shintani, N., & Aubrey, S. (2016). The effectiveness of synchronous and asynchronous written corrective feedback on grammatical accuracy in a computer‐mediated environment. The Modern Language Journal100, 296-319.

この論文では文法のフィードバックを出す際に,Google Docsを使って即時フィードバックを出す場合と,書き終わってから提出されたものにフィードバックを出す場合で比較を行っています。私の場合,どちらかというとフィードバックはorganizationに関わるものがメインです。「はじめに」でも書きましたが,オンラインでやる方が,私個人としてはライティングの授業における教員の負担がはるかに減ると思っていますので,むしろそちらのメリットを重視してこのやり方を採用としています。

授業前の準備

授業が始まる前にやるのは,学生と共有するファイルの準備です。これをせずに,学生にファイルを作らせて教員と共有するようにすることも可能です。その方が準備の手間が省けますが,ファイル共有の手順でつまづくケースがあって貴重な授業時間を浪費してしまいがちです(実際そうなりました)。そういったことを未然に防ぐ意味で、こちらで準備したものを共有する方がいいでしょう。

また,その他にもファイルを準備するメリットは2つあります。一つ目は,学生から共有されたものはフォルダ等にまとめて管理したりしづらいからです。私が使いこなせていないだけかもしれませんが,共有された側は複数のファイルをフォルダにまとめることができません。できることなら,クラスごと,そして課題ごとにフォルダ分けして管理しておきたいので,こちら側でフォルダ分けを行い,そこにファイルを用意するようにしています。二つ目のメリットは,フォルダ分けして学生のファイルがまとめて入ったフォルダごと共有することで,ピアフィードバック活動に簡単につなげることもできるからです。これについては記事の後半でもう少し詳しく紹介します。

というわけで,One Drive上でフォルダを作ったら,そこにファイルを人数分だけ用意します。何も書き込まれていないドキュメントファイルを人数分作って名前つけるみたいな作業は,ルーティン操作なのでシェルスクリプトとかでやると簡単かもしれません(参考:ファイルの連続コピーについて)。Rでもできますので私はRでやっています(過去記事)。

これでフォルダの中に学生の名前のついたファイルを人数分用意できたので,このフォルダごとOne Driveの共有機能で共有します。共有の方法はメールで送ってもいいですし,LMSなどに貼り付けてもいいでしょうし,いろいろなやり方が考えられるかなと思います。

授業でどう利用するか

学生にフィードバックを出す

授業では,One Driveフォルダの共有リンクを使ってフォルダにアクセスし,自分の名前のついたファイルを開くように指示します。フォルダ内のファイルが全員に共有された状態だと,「誰が誰のファイルを開いているかや編集しているのかがわからないのでは?」と思われるかもしれませんが,その心配はいりません。ファイルを開いた人の記録も,誰が編集したかの記録も残るので,そのことを学生に伝えれば問題ありません(少なくとも私の環境では)。他の人のファイルを開くこと自体は禁じられるべきことでもなく,色々な人の書いた作文から学ぶこともあると思いますし。ただ,「誰が開いたか,誰が編集したかはわかるので,くれぐれも他人のファイルでいたずらをしたり,書かれたものを勝手に消したりしないように」と忠告しておけばいいと思います。場合によっては,ファイルにアクセスした人の一覧を見せれば説得力も増すかもしれません。

学生は自分のファイルを開いたら,指示された課題をファイルに書き込んでいくことになります。具体的に何を書くかやどう書くかは,ライティングの授業で扱う課題の種類や授業の目標によって変わってくるでしょう。

教員は,学生全員分のファイルをブラウザ上でタブ表示にします。つまり,20人の学生がいれば,20個のタブを同じウインドウで開いておくということです。もちろん全部違うウィンドウで開いててAlt+Shift等でウィンドウ切り替えの方が楽だという方はそれでいいと思います。私は,Shift+Tabでタブ切り替えしています。学生が書いている間は,教師は教師用のパソコンで,Shift+Tabキーを使いながら書く学生の書いているファイルを”巡回指導”します。

何かコメントしたいことのある学生がいれば,コメント機能でコメントを書いていきます。文法の間違いなど,場所が特定される場合にはその場所を選択して「正しい形だけ」コメントしています。あとは構成や文と文のつながりなどについて,日本語で書き込んだり,いいなと思う箇所があれば,「この部分はみんなにも真似してもらいたいからあとで全体に紹介するね」みたいなことも書いています。

このやり方が、いわゆる「机間巡視」をしながら出すフィードバックより良いなと思うのは,「学生のライティングを邪魔することなくコメントができる」ということです。つまり、オーラルでのやりとりでは学生が今まさに書いている部分以外にコメントを出す場合、学生は当然教師の指摘を「聞く」ことが求められます。一方でオンライン上では,学生は自分のタイミングでコメントを確認することになります。この、「注意を同時に向ける」ことこそがフィードバックの意義なのかもしれませんが,逆にコメントしづらいなと思うこともしばしばあるので,オンラインで即時フィードバックの方がいいなと思っています。

書いて残るという点でも、口頭でフィードバックするよりも良いなと思います。学生からも、そして教師から見ても、「どんなやりとりがあったか」が記録されるわけなので。学生からしても、先生を呼びやすい人と、あまり自分から呼びづらい人がいると思うので,そういう場合はコメント欄でやりとりすれば良いかなと思います。もちろん,上述したように誰でもファイルを開ける状態ですから,コミュニケーションの記録が残るということはそのやりとりを誰かに見られる可能性があるということではあるのですが(誰かどんなコメントされているかをいちいち見て回るほど暇な人はいないでしょうけど)。

また,1人の学生から次の学生に移動するのも,タブの切り替えは1秒以下で済み,文字の視認性も手書きよりはるかに高いので,瞬時に読んでコメントが出せます。これが紙ベースだと,机と机の移動も時間がかかりますし,さらには書いている学生の紙を覗き込むように見る必要があり,場合によっては視認性の低い手書き文字の場合もあって読んでコメントを出すまでに若干の時間がかかります。このロスを20人分積み重ねれば、20分のライティング中に5分くらいは多く学生にコメントを出せる時間が確保できると思います。

ピアフィードバック活動に使う

教師-学生のやりとりだけではなく,学生-学生のやりとりもオンラインでやることができます。例えば,紙ベースでやっていたときには,過去記事で書いたようなピアフィードバックをやっていましたが,同じようなことはオンラインでもできるわけです。ただ,2人1組で第3者の書いたプロダクトにコメントするようなことはPC教室の性質上若干やりづらいというのはあるかもしれません(実際,私は後期はこの形はやらなくなりました)。

上述したように,個々のファイルではなくフォルダごと共有しているので,学生はクラスメイトのファイルを自由に閲覧することができます。この環境を生かして,「隣の人+◯人のエッセイを読んでコメントをつけましょう」というようなピアフィードバック活動をしています。隣の人を指定しているのは,SlackのDonutというボットでペアで席に座るように指定していて,その他にもペアの活動とかを多く取り入れているからその延長線上くらいの意味合いしかありません。

コメントは,「ここは冠詞のaが入るのでは?」とか「andでつないでいるものの形が揃っていないよ」のような文法的なものもありますし,「これはキーワードだと思うので,1文付け足して少し説明したほうがわかりやすくなると思う」のような内容(あるいは構造)に関するコメントもあります。前期はパラグラフ,後期はエッセイをやっているので,後期はとくにイントロの構成であったり,各パラグラフ同士のつながりであったり,ということに注意して読むように指示することが多いです。

ピアフィードバックのあとには,特に出来が良いものを全体で共有して,「この部分がうまく書けているよね。」というようにモデルの提示をするようにしています。もちろん書く前にサンプルのエッセイはいつも提示していますが,やはり「自分のクラスメイトがよくできている」ということのほうが「参考になった」と感じることが多いのかなというのが私が見ていて思うことです。

現時点での課題

もう秋学期も終わりに近づいていますが,半期をOneDriveとMS Word Onlineを使ったライティング活動でやってきて思うことは,ドラフト作りに対するエフォートが減ったかなということです。もちろん,大学1年生の春学期と秋学期を比べれば,出席率や課題の提出率など,割と一般的にどちらも下がると言っていいくらい普遍的な現象のような気もするので,私の授業スタイル変更が影響を与えただけとは言い切れません。ただ,紙の場合は「授業中になんとか終わらせて出す」という感じで一生懸命やっていた学生も,オンラインだと「今終わらなくても宿題でいいや」,「スマホでいつでもできるし」のようになっているのかなと思うことがよくあります。そして,結局後回しになっても,授業期間以外にファイルを開いて書き込むということをやっている学生の割合が低く,「いつでもできる」と思うからこそ逆に取り組みづらくなってしまっているかもしれないなと思っています。一応こちらからも声掛けをするようにはしているのですが,この点についてはなかなか解決策が見つかっていないので,来年度春学期以降の課題かなと思っています。

おわりに

紙には紙の良さもあって,オンラインにはオンラインの良さもあるとはいえ,今回は紙,今回はオンラインのように分けて使うのも混乱の原因になるので,オンラインの良さを活かした上で,欠点を補いながら授業を作っていければいいなと私自身は思っています。やはり,授業外で添削にかかる時間は膨大なので,それを少しでも減らして授業の中でフィードバックを多く出すというのがオンラインでライティングをすることの一番大きな利点でしょう。この利点はライティングを教える側としてのsustainabilityとかquality of lifeにも関わるので,より良い形でオンラインフィードバックを活用した授業を模索していきたいと思っています。

なにをゆう たむらゆう。

おしまい。

Slackを用いた授業外ライティング活動の便利ワザ[Google Spreadsheet編②]

はじめに

下記の前回の記事の続きです。

Slackを用いた授業外ライティング活動の便利ワザ [Google Spreadsheet編①]

前回の記事では,Google Apps Script (GAS)を利用して,Slackに書き込まれた内容をGoogle Spreadsheetに記録し,その記録をもとに語数を数えるという話でした。この記事では,それをもう少し便利にするために,「ある特定の期間で区切って語数をカウントする」というお話です。例えば,1日ごと,1週間ごとみたいな。月ごとの場合は,前回の記事で紹介した方法は月ごとに新しいspreadsheetのファイルができるので楽なんですが,「同じファイル内のシートの中で一定の期間の間ごとに区切りたい」となると,少しだけ工夫がいります。といっても,spreadsheet内で関数を書くだけなのでそんなに大変なことではありません。一度雛形ができればあとはコピペして少し書き換えるだけですみます。

前回のおさらい

少しだけ前回の記事に書いた内容に触れておきます。GASを使ってspreadsheetに取り込まれた状態は,下記画像のようになっています。

Screen Shot 2018-09-24 at 22.50.58

A列が日付,B列が名前,C列が書き込まれたテキスト,D列がもとのJSON形式の情報です。このシートが,チャンネルの数だけ一つのファイルにある状態です。前回は,GASで更新されるこのシートの情報を以下のような手順に沿って使いました。

  1. importrange関数を使って別のファイルにエクスポート
  2. そのシートに語数をカウントするE列を挿入
  3. sumproduct関数で名前列を参照してE列の合計を求める

すると,下記画像のようなまとめシートができます。

sumproduct-example

今回は,そこに「日付の情報も参照する」という情報も付け加えていくことになります。

同じ月内で1週間ごとに語数を数える

では,実際に私がやっている実践に即して,1週間ごとに語数を数えるという作業をやる方法です。先程説明したように,前提は一ヶ月で一つのファイルができ,そのファイルの中にチャンネルの数だけシートがあるという状態です。同じ月内であれば一つのシートの情報で,以下のような作業をspreadsheetにやってもらいます(注1)。

  1. まとめシートのA列にあるセルの名前に当てはまるものだけをフィルタリング
  2. 参照元シートのB列にある日付の情報を参照し,指定した1週間のものだけをフィルタリング
  3. 1と2で絞り込まれたデータのE列の語数を合計して計算する

注意点は,参照するデータのシートでは名前がB列,日付がA列なのに,まとめシートでは名前はA列になっているという点です。どの列にどのデータがあり,どこの列を参照するのかを考えないと混乱するかもしれません。さて,前回はsumproduct関数使ったんですが,今回使うsumifs関数でも同じことが可能だと思うので,全部sumifs関数でやってもいいかもしれません。

先にあとで説明する作業が完了した状態のシートの画像を見てください。1つ前の画像の状態から,下記の画像の状態にすることが今回の目標です(注2)。

Screen Shot 2018-10-12 at 14.12.11

私がこのSlackライティング活動を採用しているのは金曜日の授業で,金曜日から次の週の木曜日までを1週間としています。日付で区切っていて時間で区切っているわけではないので,今回は日付で絞り込みにしています(午後5時までとかそういう切り方だと時間も指定する必要があります)。

では,上の画像のB2の列にはどのような式が入力されているのか見てみましょう。

Screen Shot 2018-10-12 at 14.12.38

画像中の式で最後に”-5″しているのは,最初は必ず”@XXX has joined the channel. “という5語の文が記録されているので,それを排除するためです。

sumifs関数の基本的な引数はsumifs(合計範囲, 条件範囲1, 条件1, 条件範囲2, 条件2, …)のようになっています。合計範囲とは,合計を計算したい範囲のことですので,今回の場合はE列の語数の列を選択します。”Friday2_201809″というのが,金曜2限クラスの9月分のデータがエクスポートされたシートになります。このまとめシートはimportrangeで自動的にデータがエクスポートされるように設定しているspreadsheetファイルの中に作っているので,”Friday2_201809!$E$1:$E$1000″で,「9月分のデータのE列(語数列)」を合計範囲として指定していることになります。コピーしたときに範囲が変わることを防ぐために,絶対参照にしています。

2つ目の引数は,同じ”Friday2_201809″のA列を1つ目の条件範囲にしています。A列は日付の入っている列ですから,日付列を条件範囲としていることになります。そして,3つめの引数で日付の条件指定を行います。最初の1週間は,もともとデータ記録の一番最初(2018年9月21日)が1週間の1日目でしたので,7日目(終わりの日)だけを指定しています。これには等号・不等号の使い方でいろいろなやり方が考えられますので,この例は一例です。

“<“&”2018-09-28”

等号・不等号は必ずそれのみをクォーテーションマークでくくり,クォーテーションマークでくくった日付と&でつなぐようにします。上の式が意味しているのは,「2018年9月28日より前(つまり27日以前)」です。これで,9月28日0時00分以降の書き込みが排除されます。

4つ目の引数は条件範囲2です。”Friday2_201809″のB列を参照しています。B列は名前の入った列ですので,名前の絞り込みをしようというわけです。最後の引数は$A2です。「条件範囲2(元データの名前列)の中で,まとめシートのA2セルの名前に当てはまるものだけをフィルタリングしてね」ということです。指定する順番自体は前後していますが,上にも挙げた以下の3つの作業が1つの関数で実現されたことになります。

  1. まとめシートのA列にあるセルの名前に当てはまるものだけをフィルタリング
  2. 元ファイルのB列にある日付の情報を参照し,指定した1週間のものだけをフィルタリング
  3. 1と2で絞り込まれたデータのE列の語数を合計して計算する

これであとは,列を横に足して,別の日付指定をすれば,あとはその条件に当てはまるものだけが自動的に記録されていくことになります。合計範囲指定は固定ですが、条件範囲と条件の指定は名前が先で日付が後でも構いません。

1週間のはじめとおわりを指定する場合

さて,上のやり方は,1週間の終わりだけの指定でしたが,それが使えるのは最初の1度だけで,次からは1週間のはじめの日も指定する必要があります。「○月○日から○月○日まで」としたいわけです。これをやるには,sumifs関数の条件範囲と条件を1つずつ追加すればいいだけです。画像上では順番が前後しますが,下の画像のD列(10/5-10/11)の1週間を指定した場合を見てみましょう。

Screen Shot 2018-10-12 at 14.13.34

1つ目の引数は同じですが,2番目と3番目の引数で始まりの日付の指定,4番目と5番目の引数で終わりの日付の範囲の指定を行っています。

“>=”&”2018-10-05”

という指定は,「2018年10月5日以降」という指定になります。1週間の始まりですね。

“>”&”2018-10-04”

としても同じです。続いて,終わりの日付は,同じように日付列を条件範囲とし,

“<“&”2018-10-12”

を条件にしています。つまり,「2018年10月12日より前」ですので,2018年10月11日の23時59分までのデータが条件に当てはまることになります。

“<=”&”2018-10-11”

でも同じです(むしろこっちのほうがわかりやすいかも)。これで,始まりの日付から終わりの日付までの間の合計語数が計算されます。ここを任意の幅に設定すれば,1週間ではなくとも3日でも4日でも10日でも同じようにできます。

月をまたいだ1週間の語数

同じ月内でのやり方は上の2つのやり方の組み合わせで対応できます。では,月をまたいでしまうときはどうすればよいでしょう。上述したように,月ごとにシートが異なるわけなので,別々のシートに記録された情報を統合する必要が出てきます。ただ,難しいことはなく単純に足し算すればよいだけです。

Screen Shot 2018-10-12 at 14.13.15

この例では,Friday2_201809というシートに9月分,Friday2_201810というシートに,importrange関数でデータを同期させています。9月分のデータで,9月の終わりの数日間(この例では9月28日~9月30日),10月のデータで10月1日からの数日間(この例では10月1日~10月4日)の語数を計算し,合算するという作業です。

つまり,それぞれの月でsumifs関数を使った式を作り,2つのsumifs関数式を+記号でつないであげれば,月をまたいだ場合の語数が計算できます。不等号のみと,不等号+等号の意味の違いは,上で説明したとおりです。

おわりに

ということで,前回の記事で紹介したGASでデータを引っ張る作業,importrange関数でデータを別ファイルにエクスポートする作業と,今回の記事で紹介したsumifs関数で日付指定する3つのパターンを使えば,一定期間の間の語数記録は簡単にできてしまいます。

エクセルが得意な方はすでにお気づきかもしれませんが,実は,1行目に指定する日付を終わりの日付にし,そのセルを日付の範囲指定に利用することもできます。つまり,上の画像で言えば,B1セルに”2018-09-27″,C1セルに”2018-10-04″,D1セルに”2018-10-11″のようにするということです。ただ,見たときに1週間の範囲がわかるほうがいいかなという理由で,そういうやり方はしていません。

ということで,下処理問題は解決されていませんが,だいたいの語数を記録して,学生がいつでも見れるようにするということについては,前回と今回の記事の内容でだいたいカバーできるのではないかなと思います。今の所第三段は予定していませんが,今後もしも「こういう事が必要だなぁ」という事が出てきたら更新するかもしれません。

なにをゆう たむらゆう。

おしまい。

注1. おそらくExcelのピボットテーブルなら,同じ列に当てはまる複数の条件でのフィルタリング可能だと思うので,Excelならピボットテーブルだけでいけると思います。

注2. 画像で一目瞭然ですが,毎週書き続けられている学生と,すでに脱落してしまっている学生が分かれてしまっているのは問題で,これについては何かしらの介入が必要だと思っています。

Slackを用いた授業外ライティング活動の便利ワザ [Google Spreadsheet編①]

はじめに

便利ワザと言えるのかわかりませんが,とりあえず自分はこんな感じでやっていますというお話です。以下の話の発展です。

授業外でライティングする機会を確保するためのSlack

前提として,どのようにSlackを利用しているのかというお話です。google spreadsheetに書き出したデータの扱いについてにご興味がおありの方はこのセクションは飛ばしていただいてかまいません。私がslackを使おうと思ったのは以下のような考えからです。

授業外で,英語ライティングする機会を与えたい。できるだけ自由に書き込みができ,教員もそれを監視・管理しやすい。

やろうやろうと思っていたのですが,なかなかSlackの使い方もよくわかっていませんでした。共同研究の話等でもSlackを使い始めるようになり(サイボウズのサービス終了のため),自分もSlackに慣れてきたのでこの秋学期から導入することにしました。ここでも何回か記事を書いている外国語学部1回生向けのライティングの授業でのことです。

授業外でのライティングは,前記はLMSにある掲示板機能を使い,そこに私が毎週話題をポストしてそれについて各自意見を書き,お互いにコメントし合うというものでした。以下のリンクでそのことにも触れています。

https://tam07pb915.wordpress.com/2018/04/26/writing-class/

後期は,slackをclosed SNSのようにして使い,自由に英語でやりとりをするということを掲示板でのフォーラムライティングの代わりにすることにしました。前期のフォーラムライティングでは,「1人必ず○人にコメント」などとしたりして交流が生まれるようにしてみましたが,コメントが「テンプレ」化してしまったりしていたので,より自由にライティングのコミュニケーションができていったらいいなと思っています。

使い方のルールとしては以下のようにしています。

  • 一般的なルール
    • 自分のスマートフォンに必ずslackアプリをインストールすること
    • 書き込む情報については,既存のSNSに関するルールと同様,誹謗中傷や公序良俗に反する書き込み以外であれば,何について書き込んでも構わない(写真の投稿も可能)
    • 日本語での書き込みは一切禁止
    • 使い方等についての質問がある場合は,#generalに英語で書き込むこと
    • 他のクラスの人にも話題を共有したい場合には#randomに書き込むこと
    • 誰かの書き込みに返信(いわゆるリプ)をしたい場合は,”Start a thread”を使うこと
    • “Start a thread”機能を使うときは,”Also send to #channel-name”にチェックを入れること(こうすることで,メインのタイムラインでも返信が見れます)
    • 誰かに直接話しかけたいときは,@をつけること
    • 成績に算入するのは,自分のクラスのチャンネルに書き込んだもののみ(#generalや#randomや他のクラスのチャンネルに書き込んだものは語数に数えない)

評価方法は,毎週300語を学期の最終授業日まで続け,平均達成度(%)×5点を最終的な評定に加えるというものです。共通シラバスのため,授業外の課題に割ける評価の割合がもともと15点くらいしかないのでこのようにしています。そのために300語って結構えげつないなと思われる方もいるかもしれませんが,私もそう思っています。今学期の様子をとりあえず見てみて,ハードルが高すぎるために「コスパが悪い」と思われて取り組みが悪くなるということがあれば今後語数の基準を下げるかもしれません。

Slackデータのエクスポート

さて,上述のような形でslackを運用しているわけですが,私の扱い方だと「毎週300語」という設定にしているので,学生の立場からすれば「自分が今何語書き込んでいるのか」がいつでもわかるようになっていてほしいというのは当然でしょう。そのために教員がわざわざデータをチェックしてそれぞれの学生の書き込んだ語数を分析してまとめて報告するというのは無理でしょう。というかやってられません。そこで,エクスポート->語数の記録->まとめ,という一連の作業を自動化して,いつでも学生が見れるようにする必要があります。そこで,上に上げたスライドで浦野先生が紹介しているGoogle Apps Scriptを使うというわけです。浦野先生も紹介していますが,SlackのログをGoogle Spreadsheetに保存するという作業自体は以下の記事を参考にすればすぐにできます。

Slack のログを自動で Google Spreadsheet に保存する

問題は,その先で,語数の記録とそのまとめという部分になります。私自身がGoogle Apps Scriptをいじれないので,とりあえずは上記のリンクを参考にGoogle Spreadsheetにログを保存し,そのあとにGoogle Spreadsheetで頑張るということになります。Rでもログを取ってきてまとめて可視化みたいなことはできますが,自動化の部分が少し難ありです。Rのコードもそのうちここに投稿しようと思います。

Google SpreadsheetでSlackのログをいじる

Google Apps Script(GAS)は,自分で決めたトリガーで定期的に更新できるので,その頻度を好みに設定しておくだけで,定期的にデータを最新のものにするという作業はできます。最初は,ログのspreadsheetファイルにある各チャンネルのシートに列を追加して各行の書き込みの語数を記録し,それを別ファイルにピポットテーブルで吐き出すということを考えました。ちなみに,ログのデータは下の画像のような感じでチャンネルごとにシート1枚で記録されます。

A列が日付,B列が名前,C列が書き込まれた内容,D列はもとのJSON形式のデータです(注1)。最初は,このシートのE列に語数カウントの関数を入れていたわけです(excelで語数のカウント方法についてはググればすぐに見つかります)。ただ,それだとシートが更新されるとうまくいきませんでした。このチャンネルのシートをそのまま別シートで参照し,その参照したコピーのデータを使って…ということもやりましたがこれもうまくいかず。ということで,GASが作るスプレッドシートとは別のスプレッドシートファイルを作り,そこからもともとのスプレッドシートの中の特定のシートの情報を参照するという方法を取ることにしました。で,これexcelにもある関数のなのかは知らないんですが,Googleスプレッドシートには,importrangeという関数があり,これを使うことで別ファイルから参照ができます。以下のサイトなどが参考になりました。

【超便利】スプレッドシートで別シートから参照したり集計したりする方法まとめ

引数の基本は,importrange(“参照元ファイルURL”, “参照元シート名!特定セルor範囲)で,このimportrange関数は特定のセルのみを参照する場合と,範囲を指定する場合があるのですが,私は上の画像でいうA〜D列まですべてもってきたいので,範囲を指定することになります。とりあえず,1000行までを1シートに出すという設定だったような気がするので,A1:D1000を指定します。friday2というのは,金曜2限のチャンネルで,後ろのぼかしはslack上のチャンネルIDです。

このimportrange関数をA1セルに入力すると,シートにAからD列までのデータが取得され,参照元のシートがGASによって更新されれば,こちらのシートも更新されます。E列は手動で以下の画像のような関数を入れると,C列のセルの語数がE列のセルに記録されます。あとは,このE列の語数をB列の名前ごとに合計してくれれば,目的達成です。私は金曜の1限と2限に同じライティング科目の別クラスを持っているので,このログシートが2枚あり,そのまとめのシートも2枚あります。

まとめのシートで合計語数の表示

上画像のシート上でやってもいいんですが,見栄えもあるので別シートにまとめだけを作ります。これは,sumproduct関数をつかいます。sumproduct関数は,sumproduct(参照列=名前, 合計を数える列)のような形で使います。下記画像は,”Friday1_import”というシートに,importrange関数で参照元ファイルのデータをインポートしている場合の例です。A列に名前の一覧(注2),B2にこのsumproduct関数をいれます。あとはB2を下にコピーすれば,人数分の合計語数が表示されるというわけです。”Friday1_import”のシートには自動的にデータが追加されていくので,とりあえず1000行を超えないデータであればこれでなんとかなります。

棒グラフでも出したいということなら,範囲選択して棒グラフ挿入でOKです。あとは,このスプレッドシートのファイルを「閲覧可」の権限で共有してSlackに貼り付ければ,学生は自分の好きなタイミングで語数を確認できることになります。私の場合は「毎週300語」という課題なので,週ごとにデータを扱える必要があります。これはもう少し別の手続きが必要になるので,また次回ということに。今日はここまで。

なにをゆう たむらゆう。

おしまい。

注1: そもそも,ちゃんとした「下処理」をしないと,「@XXXXX has joined the channel」とかも記録されますし,絵文字1つが1語みたいになるので,ここでの語数は「アバウトな」語数ということになります。

注2: 私は試行錯誤しているときにピポットテーブルを使ったので名前の一覧はコピペでしたが,そうでない方はログデータの”@XXXX has joined the channel”の列だけソートして名前の一覧をゲットするなどの方法が必要です。

ピアフィードバックの話(ライティング)

今年度ライティングの授業を持っているという話を以前書きました(https://tam07pb915.wordpress.com/2018/04/26/writing-class/)。その授業では,基本的に4週を一単元として,異なるタイプのライティングをしていくという構成になっています。最初はnarrative,次はdescriptive,今はopinion writingをやっています。授業の基本的な構成は以下のようにしています。

 

1限目

  • 書き方についての枠組みの提示
  • ブレスト・プランニング
  • rough draftの執筆

2限目

  • 構成や言語面についての全体へのフィードバック
  • first draftの執筆
  • ピアフィードバック

3限目

  • first draftを見ての全体へのフィードバック
  • first draft(教員の赤入りのもの)へのピアフィードバック
  • second draftの執筆

4限目

  • second draftを見ての全体へのフィードバック
  • second draft(教員の赤入りのもの)へのピアフィードバック
  • フィードバックを受けたものを見てWritten Languaging

Final draftはLMSで電子的に提出させていますが,それ以前の授業内のライティングについてはすべてハンドライティングです。理由はパソコン室でやっていないというだけで,パソコン室使えるなら全部タイプさせてたと思います(よくわかってなかったので依頼書とか出しそびれた)。

上記の授業内容をご覧いただくとおわかりのように,ほとんどの授業のときにピアフィードバックを入れています。これが意味あるか無いかという話はとりあえず置いておきます。私がピアフィードバックを入れている目的は大きく分けて2つあって,1つ目は,他の人のを読むという行為を通じて自分が書くことへの刺激を得てほしいということです。クラス分けされているとはいえすらすらと分量を書けたり,語彙が豊かであったり,あるいは構造の複雑さも高かったりする学生がいる一方で,そうではない学生もいます。他の人のを読むことでライティングに苦手意識があるような学生には「良い部分は真似してほしい」という思いがあります。もちろん,単なる言語面に限らず「ロジック」とか,「文と文のつながり」という点にも意識は向けさせているので,そういうところにも注意しながら読んでもらえるようにしようとしています。

2つ目の目的は,いろんなケースについて,私の赤やコメントを見ることで,どこをどうすればよくなるのかのヒントを得てほしいというねらいです。私のフィードバックは基本indirectあるいはimplicitなので,誤りが含まれていたりおかしいと思うところに赤線や^をいれるだけで,特に正しいものを提示することはないです(たまにdirect feedbackしますが,説明はしません)。また,コメントは9割くらい日本語で(たまにめんどくさいときに英語で書きます),

こういうトピックセンテンスになっているのにボディがそれをサポートしてない

こっちのアイデアについては情報がたくさんあるのにもう一方については具体例も殆ど出てこない

こことここは本当に原因と結果の関係になっている?

なんかこの結論て最初に言ってたことと違う話になってない?

みたいな,構成に関わるものがほとんどです。そういう赤やコメントを見ながら読むことで,良いものとあまり良くないものの例を積み上げていってもらい,それを自分自身が書くときに生かしてほしいということです(注1)。もちろん,かなりできる学生は私が見逃していたような綴りの間違いや形態素の脱落なんかに気づいたりすることもあるので,ピアフィードバックをすることで形式に注意を向ける機会は得られているのかなと思います(ただしこれが自分が書くときの正確さの向上につながっているかは不明)。

ピアフィードバックをするときには,基本的にはドラフト用紙にコメント欄を設けて記名式でコメントとアドバイス(後者は書き手がreviseするときに必ず参考になるようもの)を出すようにということでやっています。

さて,ここまでが前置きなのですが,そのピアフィードバックをどうやるかという話です。最初の頃は,基本的には個人個人でもくもくとコメントを書くような時間を作っていました。20人弱×2クラスあるので,それを全部まぜこぜにしてランダムに配り,20分~30分という時間の中で最低○人のドラフトを読んでコメントをするという指示を出します。自分のペースでコメントをし終わったら前に戻して別の人のドラフトを持っていき,それにコメントして戻してはまた次の人のを取っていくというスタイルです。こういうふうにすると,自分のコメントに責任を持つことが必要になってくる一方で,なかなか「具体的なアドバイスができない」というケースが発生してしまうということが問題でした。また,個人個人の活動なのであまり盛り上がらないということもあります。実はみんなが静かに読んでコメントしている最中にもそこには「沈黙のインタラクション」があるわけなのですが,それは表面化しませんし,クラス全体の雰囲気もだらっとしてしまったり眠くなってしまったりするということもなくはなかったです。もちろん,1年生にしてはかなりレベルの高い学生なので,個人個人でやらせてもそれなりに読めてコメントも的確に出せるのですが。そんなときに,ある友人から,「ペアでピアフィードバックやらせるとめちゃくちゃLRE(Language Related Episode)出てくるよ」というアドバイスをもらいました。そこで,最近は少し形を変えてペアでやらせるようにしました。ただ,ペアでやらせると言ってもやり方はいろいろあると思います。私が今の所引き出しとして持っているのは次の2つのやり方です。

  1.  教室内でペアを作り,お互いのドラフトを交換して読み,口頭でコメントをし合う
  2.  教室内でペアを作り,2人で1枚のドラフトを読んで一緒にコメントを書く

1の方法をもう少し詳しく説明します。この方法は,他のペア活動をするときと同様にペアリングをし,5分間などの時間を設定した上でその制限時間内にパートナーのドラフトを読んで,口頭でアドバイスを送るというものです。この方法のメリットは,著者に直接コメントができるので,著者にしかわからない微妙なニュアンスや,ワードチョイスなどについて直接質問できたり,意味がわからなかった部分について「これってどういうこと?」などと聞ける点です。質問される側は,わからなかったと言われたところは書き直しが必要かもしれないと考えるでしょうし(この前提は甘い?),難しい単語はパラフレーズしたり説明を加えたりという工夫をしようとするケースもあります。また,自分に自信がなくても,「これってさ,ofじゃなくてinじゃないっけ?」という形で聞くことで,「あれ,どっちやったかな。ちょっと調べてみよか」みたいな感じで共同学習がスタートしたりもしているようでした。

2の方法は,前述のように,1枚持っていって読んでコメントするというのを繰り返すパターンを2人でやるものです。これのメリットは,1クラスしかなくても実施が可能な点がpracticalな点としてはあると思います。20人のクラスでもペアにすれば10ペアなので,1ペアにつき1枚ドラフトが渡っても常に10枚はストックが前にある状態なので,読み終わって手持ち無沙汰になるということがなくなります。フィードバックを出すという点については,ペアの相手と一緒にコメントを考えることで,「自分には見えていなかったところに相手が気づいている」というケースが割と出てくるようで,「他の人の書いた原稿」と「他の人のコメント」の両方から発見があるようです。ひとりで黙々とコメント書くパターンでも,自分の前にコメントした人のコメントは読めるようにはなっていますが,二人でコメントを考えるという作業のほうが自分の視点と他人の視点が対照されやすいのかなという印象です。ただし,この方法の問題点の1つは,ペアリングを工夫しないとふたりともなかなか意見が出てこずに沈黙になってしまうということです。私が観察している限りの印象では,熟達度が低い同士で問題が起こるというよりはパートナーとの相性というか,性格の問題が大きいように思います。クラスサイズが小さいですし,他の授業でも一緒というケースも多いので,割とクラスみんなそれなりに仲良しで誰とでも話せるような雰囲気はありますが,そうはいっても全員がそうというわけではないので,たまにこちらがうまく介入してあげないとなかなかアドバイスを出せないということになってしまうようです。1の方法ではあまりこの問題点は顕著ではないように感じるので,reciprocalな関係性がペアの中にあるということがカギなのかもしれません。

ということで,今回はピアフィードバックの3つの方法について記事を書きました。どれがより良いというよりは,クラスの雰囲気,授業の形態や授業のねらい,学生の様子など,いろいろな要因を考慮しながら使い分けていくのがよいのかなと思いますが,ペアでやる2つの方式は割とうまく機能しているかなという手応えがあるので,これからはそちらを中心にやっていこうかなと思います。むしろ最初はペアでやって,ある程度なれてきたらindividual workに移行するのがいいかもしれません。

久しぶりの更新でした。

注1. 授業内で書いたものを直後にフィードバックさせる場合にはこの部分はないです

なにをゆう たむらゆう。

おしまい。