カテゴリー別アーカイブ: 英語教育

雑誌『英語教育』3月号に記事が載りました

大修館書店から出ている『英語教育』という雑誌の3月号に,「言語における数(number)の不思議」というタイトルの短い記事が載りました。英語教育研究最前線(Cutting-edge research)というリレー連載のセクションで,私が博士論文研究で扱ったテーマについて書いています。「英語教育研究」というセクションでありながら,英語教育とはあまり関係のない文処理の話です。

自分で言うのもあれなんですが,私の対象としているものは非常にマニアックであまりウケがいいものではないのですが,そういう研究でもこういう媒体でできる限りわかりやすく書くことも自分の仕事だという思いで書きました。

普段は『英語教育』を買わないという方も,お手にとって読んでいただければ幸いです。

なにをゆう たむらゆう。

おしまい。

広告

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

なにをゆう たむらゆう

おしまい。

 

 

 

「意思決定タスク」の難しさ

ライティングの話が多かったので,今回はスピーキングの話。

タスクのタイプには情報伝達・ナレーション・情報合成・問題解決・意思決定などがありますよね。といってもわかりにくいかもしれませんが,一言でタスクと言ってもそれが求めることによっていくつかのタイプに分類できるのではないかなという話です。タスク・タイプの詳しい解説については,下記の論文をご参照ください。

松村昌紀(2017)「タスク・タイプの理論的基盤と学習者の言語使用」『中部地区英語教育学会紀要』46, 55–62. doi:10.20713/celes.46.0_55

意思決定タスクとして有名なのは「無人島タスク」で,「無人島に持っていくものをみんなで相談して決める」というもの。これが大筋で、どういう経緯で無人島に行くことになったのか,何個まで無人島に持っていくことができるか,その無人島は一体どんな場所なのか,などのコンテクストをうまく設定することで,リアリティを持たせるとともに議論に一定の方向性を持たせたり,持ち物を決める際のリーズニングのベースとして機能させたりします。

意思決定タスクのゴールは「合意」で,話し合いの中で意見を1つに集約することが求められます。無人島タスクなら,「1つだけ持っていける」という制限だとしたらその持ち物を1つに決めることができればタスクが達成できたと判断することになります。

私も授業でよく意思決定タスクをやることがあります。授業で使っているテキストに関連させた内容にすることが多いのですが,実際にタスクをやらせると,「合意する」というのは結構ハードルが高いのだなということを思い知らされます。だからこそ,タスクを配列することになった時には意思決定タスクは後ろの方にすることになるんですけどね(余談ですが,実際にゼロからタスクを構想したとき,1番作りやすいのは意思決定タスクだと個人的には思っています)。

例えば,「4人の教員採用候補者の中から1人選ぶ」というタスクをやるとします(R.Ellis, 2003に例が載っています)。この時,目の付け所って色んなところにあるんですよね。というかそうしないとそもそもタスクとして盛り上がらないわけです。みんながみんな「絶対この人でしょ」みたいになってしまえば,議論した上で合意形成するというプロセスが必要ないわけですから。ところが,そうやって意見が割れるように仕組むところまではうまくいっても,それをすり合わせるのはなかなか難しい。教員側としては、たくさん議論してほしいわけですから,簡単に誰かの意見に同意して議論を終わらせるみたいなことだけはどうしても避けたいと考えます。そうすると,「誰かの意見に簡単に同意できないからとにかく自分の意見を貫き通す」ことになってしまいます。しかし時間内にどこかで合意しないとタスク達成にならないので,どこかで誰かが折れて1つの意見を最終的に採用することになります。この「折れる」とき,採用される意見に納得していて,その意見を出した人がみんなを(または2人で取り組んでいるのなら会話相手を)説得したというのならそれでいいなと思います。ただし,やり取りを聞いていると,その議論がかみ合わずに平行線になって止まってしまい、埒があかないからどちらかが折れて合意するという流れが圧倒的に多いように感じています。

もちろんタスクの設定の仕方の問題もあるでしょうし,学生の言語的なレベルの問題もあるでしょうし,言語に関わらず議論するスキルの問題もあるかもしれません。原因が1つに絞られるとは思っていませんが,とにかくこの意思決定タスクというのは難しいということが,この1年間スピーキングの授業をやっていて思ったことです。合議によって意思を決定するというゴールに到達するためには,どのようなサブゴール(cf. タスクにおける”sub-goal”という概念)があるのかなというのも考えなくてはいけないかもしれません。それが明らかになれば,ある程度誘導が可能だからです。ただ,それを事前に教えるというのはタスクっぽくなくなってしまうので,それもやりながら徐々に浸透させていくような工夫が必要になるかなと思います。

授業で「意思決定タスク」をやるときに,気をつけているポイントはありますか?ということをみなさんにぜひ聞いてみたいです。

なにをゆう たむらゆう

おしまい。

タスクにおける”sub-goal”という概念

はじめに

下記の本を月例の研究会で1章ずつ読んでいます。

Recent Perspectives on Task-Based Language Learning and Teaching

Ed. by Ahmadian, Mohammad / García Mayo, María del Pilar

この本全体については,Cognitive-Interactionist, Sociocultural Theory, Complexity Theory, Pedagogic and Educationalという4つのperspectivesからなる12章の本で,個人的には通読するよりも気になった章だけつまみ食いするという読み方がいいかなと思います。正直言ってあまりおもしろくない(質があまり高くない)チャプターも結構ありますので。

 

第7章がおすすめ

この本の第7章は,Martin Bygateが書いた”Dynamic Systems Theory and the Issue of Predictability in Task-Based Language: Some Implications for Research Practice in TBLT”という論文です。タイトルにDynamic Systemsと書いてありますが,そこまでDSTを推しているということではなく,「タスクってさ,何かやらせてみてもどんなことが起こるかわからないしリアクティブに教えるのがいいっていうけどやっぱそういうの不安だもん」みたいな言説について,predictabilityが一応ありますよっていうことを言うための理論的基盤としてDSTを持ってきているという印象です。それをベースにして,ケーススタディ的にデータを見てみるというようなのがこの論文の流れです。

この章を読むまでは,「この本は失敗だったかもしれない」と思うほどがっかりさせられるようなものが多かったのですが,この第7章は面白いなと久しぶりにワクワクしました。もちろん,ちょっとそれはどうなのと思うところもあるにはありました。ただ,それを差し引いても面白かったです。

 

何がそんなに面白かったか

一言で言えば,この記事のタイトルにもしている”sub-goal”という概念を導入している点が個人的にはこの論文で一番inspringだと思ったところです。示しているデータはおそらく過去の研究のものでしたし,特に分析をしっかりしているということではないのですが,それでもこの”sub-goal”というものはTBLTの研究でいろんなことができそうだなと思えた,そう思わせてくれるような内容でした。もちろん,実践においても示唆があることだと思いました。

sub-goalとはなにか

TBLTをご存知の方には馴染みのあることだと思いますが,タスクにはゴールがあります。spot-the-difference taskなら2つの絵の間にある違いをすべて見つけ出すことがゴールですし,picture description taskなら絵(または写真)を見ずに口頭で描写し,もとの絵(や写真)にできるだけ近いものを完成させるというのがゴールになります。この章で例として用いられているタスクは,6コマ漫画を6人で分割して1人が1コマずつ持ち,見せ合わずに正しい順番に並び替えるというものです。この場合,「正しい順番に並び替える」というのがゴールになります(注1)。

Bygateが言っているのは,このゴールに向かう前の段階にいくつかのphaseがあるということです。どんなphaseかというのを説明する際にBygateは,pragmaticとかdiscourseとかいう言葉を説明の際に使っています。少し長いですが,このphaseについて説明している箇所を本文から引用します。

A phase was defined in terms of the pragmatic coherence of a stretch of discourse which while not in itself achieving the overall task goal, likely contributed to achieving a useful enabling sub-goal. For instance, descriptions of the individual pictures in random order would contribute to the sub-goal of sharing information about the pictures, but would not themselves achieve the overall goal of sorting out the sequence and telling the story (even if by chance the students did actually provide the descriptions in the exact sequence of the narrative). Similarly, discourse during which students exchanged information about what they thought was going on in their respective pictures could not be interpreted as ‘telling the story’ either. Where students spent time suggesting potential sequencing of the pictures (still without seeing them), possibly accompanied by brief justifications, this kind of talk too contributes to a potentially useful subgoal, but still does not constitute the ‘telling of the story’. Hence the macro-purposes of the different discourse phases were inferred in relation to the pragmatic criterion: what are the speakers jointly trying to do at this point? Identification of phases enabled an assessment of the trajectories that the groups followed (p.155).

上の引用中では,”(sorting out the sequence and) telling a story”というのがタスクの最終的なゴールで,そこに到達するために有効なやりとりや言語行為をphaseとしています。複数コマ漫画の並び替えならば,まずは個々人の持っている写真を描写することからスタートすると予測されるので,それが一つのphaseになるというわけです。そして,自分の写真とグループメンバーの写真についての情報を全員が持った状態で,それぞれの写真に描かれている情報の違いを見つけることになります。そして,「いったいどんなストーリーなのだろうか」という話をしながら前後関係を特定していくことになると予想されます。これらの段階もすべてphaseであると。そして学習者はこういった複数のphaseを経て,最終的なゴールに辿り着くというわけです。

Bygateは,複数コマ漫画並び替えタスクでは次の5つのphaseがあるとしています。

  1. Description
  2. Comparison
  3. Interpreting gist
  4. Sequencing
  5. Narrative

ちょっとなんでだろうなと思ったことは,タスクの特性などから予測してこのphaseを導出したのではなく,実際の発話の書き起こしを分類してそれぞれのラベルを貼ったという点です。その後に,結果の解釈として,「複数のグループでタスクをやらせたけど,ほとんどのグループのタスク遂行中の発話に5つのphaseが見られた」みたいな議論に持っていっているのです。そして,このことから学習者たちのやりとりは予測可能なtrajectoryを通ってゴールに向かうという話につなげています。もともと発話データから導出した概念なのだから,導出に用いたものと同じ発話データにphaseが見られるのは,複数グループで見てみたとはいえある程度当たり前なのでは…という話です。さらに,もし仮にそこに違いがあり,違うグループでphaseの種類や用いられた数が異なっていたとすれば,最初に設定した5つのphase自体がそもそも分析に役に立たない枠組みだということになりますよね。この点については謎です。

また,個人的に気になったのは,最終的にタスクを達成できたかどうかと,用いられたphaseの数自体には関連が見られなかったという点です。例えば,分析している5つのグループのうちで3のgetting gistが見られなかったグループが1つ,5のnarratingが見られなかったグループが1つ,2のcomparisonと4のsequencingが見られなかったグループが1つという記述がありますが,この3つのグループはいずれも最終的なゴールである並び替えには成功しているというのです。この部分については,例えばcomparisonがなかったグループはもしかするとズルして絵を見せあっていたのかもしれないというような考察がなされています(このグループは終わるのも早かったらしいです)。しかし,もし仮にタスクの最終的な達成と何も関連がないのであるとすれば,このsub-goalという考え方自体がそんなに大事なものなのか?という疑問も湧いてきます。

さらに,言語使用面についてはphaseによって特徴的な部分が見られなかったと考察しています。つまり,同じphaseなら同じような言語表現が用いられるというようなことはなく,同じcomparisonというphaseでもグループごとに様々な表現を用いて行っていたと書かれています。ただし,”linguistic domains“については予測が可能かもしれないとしています。このdomainの例として,下記のようなものがあがっています。

the language for expressing impressions, inferences and approximations; the language of description and for identifying similarities and differences; the language for expressing motivations and consequences; the language for sequencing; and the language used for checking understandings (p. 160).

素人考えでちょっと微妙だなと思うのは,このdomainというのはほとんどphaseのラベルと同じようなものなのではということです。会話分析みたいなことに明るいわけではないのですが,ここまで抽象度があがってしまうと,それが予測できたことで何に活かされるだろうかということは疑問です。

 

sub-goalという考えのなにがそんなに大事?

さて,なんか,sub-goalってなんか別にそんな大事じゃないじゃんと思っておられる方もいるでしょう。私もここまでは批判的に書いてきています。ここからは,「そうはいっても結構色々なところに通じる概念じゃないかな」ということを書きたいと思います。

先ほど,「タスクの達成とは関係ない」という議論がされていると書きましたが,もし仮にそれがそうだったとしても,教室場面での教育介入を考えた際にはsub-goalという概念は大事だと思います。まずは,授業の準備段階でsub-goalは役に立ちます。

 

タスクの作成・計画段階で有益

これはタスクに限ったことではないのですが,どのような言語活動を仕組むにせよ,教師は活動を考え,その手順を構想し,最終的にどこに辿り着くことを目指すのかを思案しますよね。その際に,活動に取り組ませたときにどのようなことが想定されるかを全く考えない教師はいないと思うのです。「きっとこんなことが起こるだろうな」とか,「こういうことになったらどうしようか」などと考えながら,事前に準備しておいたほうがよいことについては仕込んでおき,指示の与え方や順序を工夫したほうがよさそうならそのように対策を打っておくはずです。このとき,例えば事前にタスクのsub-goalがわかっていれば,学習者が起こす行動の予測がつきやすくなるといえます。冒頭にも書きましたが,タスクは(特にやりなれていないものをやる場合は)出たとこ勝負の部分もあり,何が起こるかわからないから事前にあれこれ教えてこちらの想定内でやってほしいという教師の思いも理解はできます。しかし,今後sub-goalという枠組みで様々なタスク遂行中に発生するsub-goalsが明らかになってくれば,「このタスクをやる際にはおおよそA, B, C, Dのような4つのphaseを通過すると考えられます」みたいな提案ができますよね。これが事前にわかっていれば,自分の教えている学習者との兼ね合いで準備が必要な部分や,そのタスクに取り組む前にやらせたほうが良いことを前時にやっておくというようなことができるのではないでしょうか。もっと言えば,sub-goalが目標になるような”sub tasks” を用意して,それらのタスクに取り組ませた後のもっと大きなチャレンジとしてsub-tasksが複合的に必要となるような別のタスクを用意するというようなことも考えられます。このように,タスクを構想したり,授業の計画を立てたりする際に,sub goalsが明確になっているということは大事だと思っています。

 

タスク遂行中の介入指導で有益

次は,実際に教室場面での指導において,sub-goalがわかっているということが役に立つ場面を考えたいと思います。あるタスクを与えて,学習者がそれに取り組んでいるとき,なかなかうまく言っていないことに教師が気づいたとします。例えば,複数コマ漫画の並び替えタスクで沈黙してしまっているグループがあったとしましょう。このとき,どのように促せばタスクのゴールに向かえるでしょうか。このときも,sub-goalはヒントになり得ると思います。例えば,5つあるphaseの序盤でつまづいているようならば,「まずは全員の持っている絵について描写して,自分の持っているものと他のメンバーの持っている絵の違いがどこにあるかを特定してみよう」という指示ができると思います。つまり,descriptionとcomparisonというsub goalを明示するということです。その先の,みんなの持っている絵の違いはわかったけど,そこから先に進めないというグループがいたら,「全員の絵の情報を統合して,ストーリーを考えてみよう」という指示も可能でしょう。もちろん,phaseは順番にこなさなければいけないということではありませんが,指針としてその場で与える分には問題ないでしょう。

そんなめんどくさいことしなくても,「じゃあ最初から,『まずは描写,そして比較,あらすじの解釈,並び替え,ストーリーの完成』というphaseをすべて提示してそのとおりにやらせればいいではないか」という意見もあるかと思います。学習者のレベルによってはそうした道筋を示すことも必要になってくるかと思いますが,Bygateは,phaseに完全な順序があることや,まったくoverlappingがないということを否定しています。

it is important to note that the phases do not imply total predictability. For one thing, the phases sometimes occur more than once in a single transcript, with students going backwards and forwards between, say, finding the gist and trying out a sequence (p.160).

また,「たとえsub goalsが明示されなくとも学習者たちは多かれ少なかれphaseを経てゴールに到達する(=予測可能性がある)」ということを言っています。つまり,phaseは与えられなくてもある意味でタスク達成に向かう試行錯誤の中で創発するということですね。それを手助けしてやることはあったとしても,最初からこの通りにやりなさいというのはtoo much interventionかなと個人的には思います。「正しい手順」や「理想的な手順」のようなものがあると学習者が思ってしまい,それに囚われすぎてしまう可能性があるからです。例えば,2. comparisonからいきなり4. sequencingに入ることも十分にありえることです。「まって,私の絵ではりんごは食べかけで,Aくんの絵ではりんごは丸々1つあるから,きっと私の絵はAくんの絵よりあとにくると思う」のような発話が起こることは歓迎されるべきで,「まって順番考えるより先にストーリーをつかもうよ」となってしまっては学習者の自由な発想が抑制されてしまうかもしれません。よって,sub goalを与えてそれに沿ってタスクを行わせることは有効な手立てとは言えません。

つまり,事前に教えてそのとおりにやらせることができるから役に立つというわけではありません。そうではなく,リアクティブな指導がやりやすくなるということです。教師自身がsub goalsを把握した上でタスクを用いれば,そのグループの状況に沿って,またはぶつかっている困難点に合わせてリアクティブに介入を行うことができると個人的には思っています。

事後のフィードバックで有益

sub goalという考えは,事後のフィードバックにとっても有効かもしれません。もしも,時間内にうまく課題を達成できなかったグループがあったとして,そのタスクにおいてsub goalsをいくつ達成できたかという点で見てみると彼らの課題が見つかるかもしれないからです。Bygateの示したデータでは,すべてのグループがタスクを達成したため,「phaseとタスク達成の関係」は完全には明らかになっていません。タスクを達成できなかったグループがいたとして,そのグループがもし仮にすべてのphaseを通過したのにできなかったとすれば,phaseはirrelevantということになります。しかしもしかすると,どこかでつまずいたことが原因でタスクを達成できなかったという学習者がいるかもしれません。絵の微細な点について,描写しなかった(またはできなかった)けれども実はその点が他の絵との違いで,その情報を全員で共有していればタスクが達成できたかもしれないということはありえます。別のケースで,sequencingでつまづいて終了してしまったとします。このときに,follow, precede, come before, come after, first, next, then, before, afterのような前後関係を表す表現がうまく使えなかったので並び替えができなったということがわかれば,その学習者たちに必要なのはこうした前後関係を表現する言語リソースが足りていないということになり,そこがteaching pointになるでしょう。言語面については,varietyが大きすぎて一貫性は見られなかったというのがBygateの結論でしたが,具体的な場面での話に限定すれば指導のヒントにはなるでしょう。

研究への示唆

研究という視点では,このBygateの論文からもう少し発展させた研究が必要だと思います。例えば,他のタスク(意思決定タスクなど)でも同じようにphaseの共通性は高いのかどうかや,同一タスクでタスクの諸条件(複数コマ漫画並び替えタスクにおけるコマの数やグループの人数の組み合わせ)が変わってもphaseに変化はないのか,などが気になっています。

また,Bygateは会話の書き起こしからphaseを導出していますが,そうではなく,教える側があるタスク中に発生すると考えられるphaseを予測し,それがどの程度実際の会話で起こるのかといったこともpracticalな意味で関心があります。

あとは,少し非現実的かもしれませんが,実験的な操作を加えて群間比較するというデザインも思いつきます。たとえば,複数のphaseの中で特定の1つを禁止するような指示を与えてみて,そのグループがどれだけタスク達成に困難を抱えるかを比較することで,タスク達成に寄与しやすい(または必須かもしれない)phaseを特定するというようなこともできるかもしれません。

おわりに

以上,Bygateが提案した,taskのsub-goalという点について,批判的に検討し,その後に,意義があると思われる点についていくつか述べました。やはり,タスクの中身,つまりタスク遂行中に何が起こっているのか,そうしたことを,sub-goalという概念で整理することを試みたことにこの論文の意義があると思います。DSTの枠組みにうまくfitしているかという点についてもやや疑問があったのですが,あまり詳しく批判できるほどの知識を持ち合わせていなかったのでそのあたりはまた別の機会にということにしようと思います。ということで,今回は久しぶりにTBLTに関するお話でした。

なにをゆう たむらゆう。

おしまい。

注1. もちろん,仮にオリジナルのストーリーとは違う順番であったとしても,こちらの想定を超えたイマジネーションで別の順序でも筋の通った物語になるということがあれば,そしてそれを説明できれば,「正しい」順番ではなかったとしてもタスクのゴールを達成したと評価することもできると思います。

 

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にも関わるので,より良い形でオンラインフィードバックを活用した授業を模索していきたいと思っています。

なにをゆう たむらゆう。

おしまい。

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

はじめに

ライティングの授業で(またそれかよ),次のようなことを考えました。

テンプレートのファイルを作って,学生の人数分だけコピーし,さらにそれぞれのファイルに学生の名前をつけたい!

まず思いつくのは,雛形ファイルを作り,Ctrl+CとCtrl+Vを駆使して学生の人数分のファイルを用意し,1つずつファイルをリネームするといういわゆる土方作業ですが,そんなことやってられませんよね。というわけで,Rで簡単にファイル複製とリネームをやってしまおうということです。別に特別なことはしておらず,自分用のメモです。もっと簡単な方法があれば教えてください。

ワーキングディレクトリを変更

まず,ワーキングディレクトリを,テンプレファイルが置いてある場所に変更しましょう。

setwd("C:/Users/Yu/Desktop/test")

getwd()

## [1] "C:/Users/Yu/Desktop/test"

必要な情報を取得

ファイルをコピーする際にフルパスを使うので,その情報をあらかじめ変数に入れておきます。そして,list.files()関数で,ワーキングディレクトリ内にあるファイルの情報を取得します(別に1つしかないので手入力でもOKです)。そして,originalという変数に,テンプレファイルのフルパスを入れておきます。

dirnow<-getwd()

file<-list.files()
original<-file.path(dirnow,file)


ファイル名の準備

ファイルにつける名前の準備です。ここでは例としてアルファベットを使っていますが,学生の名前を使う場合は学生の名前をコピペする等してname変数に入れてください。その後,テンプレファイルの前に名前をつけてfilenameという変数に入れています。sep=”_”は区切り文字をアンダーバーで指定しているということなので,ここは任意の文字に変えられます。

name<-LETTERS[1:26]
filename<-paste(name,"test.docx",sep="_")

print(filename)

##  [1] "A_test.docx" "B_test.docx" "C_test.docx" "D_test.docx" "E_test.docx"
##  [6] "F_test.docx" "G_test.docx" "H_test.docx" "I_test.docx" "J_test.docx"
## [11] "K_test.docx" "L_test.docx" "M_test.docx" "N_test.docx" "O_test.docx"
## [16] "P_test.docx" "Q_test.docx" "R_test.docx" "S_test.docx" "T_test.docx"
## [21] "U_test.docx" "V_test.docx" "W_test.docx" "X_test.docx" "Y_test.docx"
## [26] "Z_test.docx"

ファイルのコピーとリネーム

それでは,ここで,ファイルのコピーとファイルの名前変更をfor関数で一気に行います。file.copy()関数は,fromでコピー元,toでコピー先を指定します。この時,fromではもとファイルのフルパスであるoriginalを使います。そして,toのところで,「ワーキングディレクトリ+名前変更後のファイル名」を指定してあげると,コピーされたファイル名に名前がつくことになります。paste()関数は,文字列結合の関数です。ファイルの一覧の中にblog.htmlとblog.Rmdというファイルが入っていますが,この2つはこのブログのために作ったファイルですので関係ないです。

for (i in 1:length(filename)){
file.copy(from=original,to=paste(dirnow,filename[i],sep="/"))
}

list.files()

##  [1] "A_test.docx"     "B_test.docx"     "blog.html"      
##  [4] "blog.Rmd"        "C_test.docx"     "D_test.docx"    
##  [7] "E_test.docx"     "F_test.docx"     "G_test.docx"    
## [10] "H_test.docx"     "I_test.docx"     "J_test.docx"    
## [13] "K_test.docx"     "L_test.docx"     "M_test.docx"    
## [16] "N_test.docx"     "O_test.docx"     "P_test.docx"    
## [19] "Q_test.docx"     "R_test.docx"     "S_test.docx"    
## [22] "T_test.docx"     "test.docx"       "test.Rproj"     
## [25] "U_test.docx"     "V_test.docx"     "W_test.docx"    
## [28] "X_test.docx"     "Y_test.docx"     "Z_test.docx"

こんな感じでファイル複製とリネームができます。Google Classroomを使っていると、教材ファイルをコピーして配布という機能があり、それを使うと自動的に学生の名前のついたファイルができるのですが,それなしでやろうとすると,こうなるかなという感じです。

これを使って何をするかという記事はまた改めてポストしようと思います。

なにをゆう たむらゆう。

おしまい。

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