オンライン・ハイブリッド講義のTips

非常勤講師として、コロナ禍においてオンライン講義をするようになって2年経った

自分なりにやってよかったこと、上手くいかなかったことを書き留めておく

 

オンラインツールは積極的に活用すると◎

自分が担当している学校はZoomで配信を行いつつ、Moodle、Manaba、Microsoft Formsなどの補助的なオンラインツールを使用させてくれている

 

まだ使いこなせていない機能もあるが、学生によると、私の講義はかなりオンラインツールを多用している方だそうだ

(つまりあまりこれらのツールを活用している先生方は多くはないらしい)

これらのツールを用いた講義進行は、おおむね好評であるので、ぜひ参考にしていただきたい

 

ここでは使うと便利な機能、好評な機能、微妙な機能の運用法を述べておく

詳細な設定の仕方はツールによって異なるので各説明書を参考にしてほしい

 

小テスト機能は絶対使ったほうが良い

成績をつけるために確認テストなどをするなら、各オンラインツールの小テスト機能は使った方が紙を使ったテストよりも断然楽になる

私はハイブリッド講義で対面で出席している学生にも、特段理由がない限りはオンラインにて課題を出してもらうようにしている

 

<オンライン小テストのメリット>

  • 採点が楽になる
    • ツールによっては自動採点が可能
      • 記号選択問題、正誤問題であれば自動採点で全く問題がない
      • ただし記述問題の採点は手動で行うしかない
  • 記録管理が楽になる
    • 紙では学生・教員側になくすリスクがあるが、Web上の記録なら基本行方不明になったりしない
    • ツールにもよるが、エクセルなどと組み合わせると提出人数や未提出者を確認しやすい

<オンライン小テストのトラブル>

  • 操作ミスによる問題の設定ミス
    • 小テスト機能は設定が複雑なものが多く、例えば自動採点の設定ミスで、間違った答えが正答とされてしまうなどトラブルがあったりする。プレビューや提出のシミュレーションができるツールなのであれば、できるだけ動作確認をしたほうが良い。訂正する場合は、学生に真摯に説明をすればわかってもらえる。
  • 学生側の操作ミスによる未提出
    • ツールによっては「提出確認ボタン」を2回3回押さないと提出が完了しないなど、操作ミスが起きやすい場合がある。その場合は学生側に注意喚起をするべきである。また、学生側から課題の提出・未提出が確認できるような設定がある場合は、活用すると良い。

 

スレッド機能・チャット機能の活用は「仲間がいる」感を生む

Zoomのチャット機能や、Moodle、Manabaなどのスレッド機能(2ちゃんねる掲示板のようにテキストで会話できる機能)は、うまく使えば講師が学生の様子を把握できたり、学生のオンライン講義で感じる孤独を低減したりできる

私の講義では、通信データの削減および監視されているようなストレスを感じさせないため、講師・学生ともに基本的にはビデオをオフにして進めているが、チャットやスレッドへの書き込みによって、むしろ対面講義の時よりも気持ちの距離は近いように感じる

 

ただし、単にスレッドやチャットを用意して「書き込んでください」というだけでは遠慮が働いてなかなか書き込みが進まなかった(講義中に発言しにくいことと同じである)

書き込みを増やす試行錯誤によって、オンライン講義2年目を迎えるころにはだいぶ書き込みを増やすことができたので、その工夫を紹介する

 

<書き込みを増やす工夫>

  • できれば匿名で発言できるようにする
    • やはり実名で皆から見えるところで発言するのは気恥ずかしい。匿名を選べるオプションがあればそれをつけるとよいだろう(Zoomだったら個別チャットでのメッセージ送信を許可するなど)。
    • ただし、匿名設定ができなくても、その他の工夫で書き込みを促進することが可能だ。
  • 成績点で釣る
    • 書き込みについて、講義内の発言として成績点をつける、というとはりきって書き込み始める学生もいる。また、「真面目ちゃんかよ」という他の学生からの視線をごまかせるという面もあるように思う。動機はなんであれ、書き込む人が増えれば、講義進行に有益なコメントを書き込むハードルも下がる。とはいえ、講義内容にあまりにも関係のない発言が増えすぎることを抑制するためにも、内容によって点数には差をつけると良いだろう。
    • 成績を付ける場合は誰が何を発言したかの記録が残るツールを使うと良い。たとえば「パパパコメント」は発言者が表示されず気軽ではあるが、記録が残らないので成績を付けることはできない。
    • 書き込みが活発になるほど、これに対して成績点を付ける作業は大変になる。たとえば、「全講義中、5回の講義をランダムに選んで、そのときのコメントに対してのみ成績をつけます」などと伝えておくと後で楽かもしれない。
  • 真面目でない話題を書き込ませることによって、書き込みへのハードルを下げる
    • タメ語・スラングの許可
      • 書き込みにかかる時間を減らし、書き込むことのハードルを下げることができる。たまに意味不明な言葉が飛び出すが、それも含めて素の会話を楽しむと良いと思う。タメ語・スラングを許可したことでコメント欄が荒れたことは今のところない。
    • 「今日のひとこと」制度
      • 講義中に思いついたことを、まっさらなコメント欄に皆が見ている前で書き込むのはやはりハードルが高い。講義のはじめに、「好きな食べ物は?」など簡単に答えられる質問をし、コメント欄をある程度埋めておくことによって、書き込みへのハードルが下がる。また、画面の向こう側にたくさんの人がいることを感じられて、オンライン講義による孤独感も多少和らぐように思う。
  • 講義中にコメントを書き込めない学生への配慮
    • 対面で講義に来ていてスマホの電池の残りが少ない、ひとつの画面に集中していないと講義が受けられない、書き込むのに慣れておらず時間がかかってしまう、など学生によっては思うところがあっても講義中にはコメントができないこともある。講義終了後にもコメントを送ることができるようにしておくと、よく考えられた長文の感想や質問を受け取ることができる。これらのコメントやそれにたいする返信は、オンライン資料として他の学生に紹介すると、他の学生の理解も深める手助けとなる。

 

アンケート機能を使った講義の改善や模擬実験

誰がどの選択肢を選んだか知られることのないアンケート機能は、講義の進め方について尋ねたり、模擬的な実験をしたりするのに役に立つ

 

<アンケート機能を使った心理学模擬実験の例>

例えば、以下のように行った初頭効果の心理学実験は、講義において挙手させて結果を確かめるよりもはっきりとした結果が出た(やはり、講義において周りの人の意見が見える状況だと、周囲と同調してしまうのだろう)

  1. 学生番号奇数・偶数によってグループ分けをする
  2. グループごとに異なるGIF画像(刺激)をオンライン上で閲覧するように指示する
  3. グループごとにアンケートで印象評価を5段階の選択肢の中から選ばせる
  4. 全員に見えるようにアンケート結果を提示する、グループごとに印象評価の傾向が異なることを確認する

 

講義の録画は学生に公開する

時間通りに見ようとしても、インターネットの通信が乱れ、動画が途切れて一部視聴できない者がいたりする

そのため、オンデマンド形式でなくても、Zoomで講義を録画しておき、公開するとよい

真面目な学生は、これを使って復習をすることもできる

 

面倒でなければ、YouTubeで公開するのが、早送り再生などできて学生側からして便利なようである

たいていのツールには学生が部外者に公開しないように動画を閲覧できる者を制限する機能があるので活用すると良い

 

グループ活動はうまくいかない

オンライン講義が始まった当初は、他の学生とコミュニケーションする機会もなくなってしまいさぞ寂しかろうと、グループ活動で学生同士がコミュニケーションする場を設けていた

しかし、グループ専用のスレッドをつくる、Zoomのブレークアウト機能を使うなどしても、グループディスカッションなどは上手くいかない印象がある

学生に尋ねてもグループ活動は不評であった

知らない者同士で遠慮してしまう、やる気がないメンバーが混じっている、などのほかにも、オンライン環境の差や、チャットなどのツールの熟達度合によってもコミュニケーションが円滑に進まなくなってしまうことが原因のようだ

 

もともと知り合い同士で仲の良いクラスである、ごく少人数の講義である、などであれば上手くいくかもしれないが、そうでなければ諦めたほうが無難だろう

 

 

結語

オンライン講義は不自由な印象も強いが、これを機会に用意されたオンラインツールを

学生の意見も尋ねつつ活用すれば、対面講義のころよりも活発な講義にすることもできる

充実した講義をつくることの役に立てばうれしい

Rエラー解決メモ:パッケージのバージョンが古いと警告が出るが再インストールしても上手くいかない

エラー

Rstudioにてgtsummaryパッケージのtbl_summry()関数を使おうとして、以下のエラーメッセージが出た

 

Error in loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vIi) :
名前空間 ‘htmltools’ 0.5.0 は既にロードされましたが、>= 0.5.1 が要求されています

 

htmltoolsが古いということなので、パッケージをアップデートしようとしたのだが……

 

試行錯誤

RstudioのToolsバーからCheck for Package Updates...よりパッケージの更新をしたが、直らなかった

 

Rstudioをアップデートしてもダメ

また、install.packages( "htmltools", dependencies=TRUE)でもダメ

gtsummaryパッケージやknitrパッケージ、Rcppパッケージをアップデートしてもダメだった

 

tbl_summary()コードを実行するとはじめと同じエラーが出るし

Check for Package Updatesで確認すると新しいバージョンをダウンロードしたはずにも関わらず、アップデートが必要な古いバージョンとして、htmltoolsが挙げられていた

 

上手くいった方法

remove.packages("htmltools")
install.packages("htmltools", dependencies=TRUE)

 

これで上手くいった

 

(ちなみにtbl_summary()の結果は、sjPlotのtab_model()ようにknitしないで実行したらViewerに表示されるかと思いきや、knitしないと表示されなかった) 

 

教訓

アップデートができないパッケージはとりあえず消して、再インストールしてみると上手くいくかも

文字認識されていないPDFファイルの文字認識をする(せこい)方法

ときたま、文字認識されていないPDFファイルしか手に入らないことがある。

文章をただ目で見て読むだけならそれでもかまわないが、文章読み上げソフトを使いたいときや、文章内検索を行いたいときには不便である。

 

なんとかして、PDFの文字認識をしたい(OCR処理)。

また、課金するのは最終手段として、できれば無料で行いたい。

怪しいソフトやWebサイトを使わず、正規ソフトだけを用いた安全な方法があれば最高である。

 

正攻法

文字認識を行う方法の正解は、PDFを開発したAdobeが出している、Adobe Acrobat Proで素直に変換することである。一番安全、一番確実。

が、この機能は有料サービス部分であるのでここでは保留する。

お金持ちになったら使います。許して。

 

蛇の道

怪しげなフリーソフトに頼る方法もあるが、ちょっと怖いので最終手段にしたい。

(もちろん善意100%で作られたフリーソフトもあるだろうが……) 

 

 

ググると出てくる他の方法としては、Google Driveなどでテキスト化するやりかたもある。

単純な一段組のフォーマットであれば、それでも良いだろう。

しかし、論文や雑誌などの、2段組み、3段組み、ボックスによる記述などが複雑に配置されたフォーマットでは、出力においてその構造が保たれず、文章がずたずたになってしまった。

 

この記事で提案する方法

ということで試行錯誤した末に、以下の方法にたどり着いた。

 

1.PDFを手元のデバイスで画面表示し、スクリーンショット、画像として保存する

    JPGなら確実なようだが、おそらくたいていのファイル形式でいけると思う
    PDF画像以外の余計な部分はトリミングする

2.無料スキャンアプリAdobe Scanの「写真からPDF」の機能を使って、スクリーンショットした画像を選び、再PDF化する

    このとき、勝手に文字認識されるはず

 

以上である。

簡単・安全かつ無料でPDFの文字認識ができる。

スクリーンショットの方法とAdobeScanの方法はわからなければ各自ググってください。

 

弱点は1枚1枚スクショしないといけないので、分量が多い場合は面倒なこと。

また、新しくできたPDFファイルでは元のPDFにある作成日などのメタ情報は当然失われるので、大切な書類ならば元のファイルは破棄せずにとっておいたほうが良いし、新しいファイルは個人での利用にとどめたほうがよいだろう。

QualtricsのデータをRで分析するならsavファイルをダウンロードすべし

オンラインアンケートツールのQualtricsで収集したデータを、統計ソフトRで読み込もうと苦戦したときのメモ

 

前提

目標:

データファイルはExcelやtextエディターなどで開いて編集したりせずに、ダウンロードしたそのままで読み込みたい

 

実行環境:

OSはWindowsであり、RはR Studioで実行している

SPSSのソフトは入っていない

 

Qualtricsからダウンロードした.csv や .tsv をRで読み込むときに生じた問題

Rユーザーならば、.csv や .tsv 形式でファイルをダウンロードすることが多いだろう

 

しかし、Qualtricsからダウンロードしたファイルは、

  • 2,3行目にいらない情報が入っている

f:id:OGUnatsuki:20210416220555p:plain

qualtricsからdownloadしたcsvファイル

 

read.csv() で skip = 3 としたり、あとで削除するつもりで読み込んでも、

...: invalid multibyte string at ''..."

とか*1

invalid input found on input connection 'file.csv'

 とか*2

incomplete final line found by readTableHeader on 'file.tsv'

とか*3

 

エラーメッセージと関係なく、あるはずの列が全て読み込まれない

 

などの様々なエラーが出る

検索してみても、それなりに苦労している人がいるようだ(たとえば r - Qualtricsデータ(csv形式)をRにインポートする方法 - ITツールウェブ

 

.sav ファイルを使うと……

ところで、Qualtricsの「データテーブルをダウンロード」には、SPSSというタブがある

f:id:OGUnatsuki:20210416223032p:plain

qualtrics の download option

 

このタブからファイルをダウンロードすると、sav形式のファイルが得られる。

 

そして、savファイルは、普通SPSSSAS、Stataなどでしか使用しないので今までは完全に無視していたのだが……

 

改めて調べてみると、ありがたいことにRでも読み込むことができるパッケージ、"heavn"があった

SPSS、SAS、StataのデータをRでインポート、エクスポートをする - 井出草平の研究ノート

 

さっそく、sav.ファイルでダウンロードし、実行してみた

(方法の詳細については、上で引用したブログ記事などをを参照されたし)

 

< 実行コード>

library(heavn)

dat<-read_sav("file.sav") 

head(dat)

 

f:id:OGUnatsuki:20210416224510p:plain

read_sav結果画面

 

 

今回、Qualtricsからダウンロードしたままのsavファイルを、特にread_sav()にてオプションを変更することなく、

  • エラーなく読み込むことができ、
  • ヘッダーはQualtricsで設定した変数名になり、
  • csvやtsvにあった無駄な情報もなく、
  • 全ての列が読み込まれた!

 

※heavnはtidyverse流のパッケージなので厳密にはデータ構造はdata.frameではなくtibbleで読み込まれていることに留意。基本的にはdata.frameと同じように扱えるが、filter関数などtidyverseパッケージを読み込んでおかないと上手く動かないものもある。tibbleはdata.frameの上位互換なので良さを生かせるといいかも。

RPubs - what&#39;s tibble?

 

※また、各行のデータ型情報に変なもの(上の図のStartDaysの下<S3:POSIXct>など、行によっては質問文が格納されている)が入っているので、これは操作によってはas.numeric()などで変換する必要があることに注意したい

(あるいは、読み込む際にread_csv() のようにcol_type = で指定できるかも?read_sav()のヘルプページには記述が見当たらないし、試してないですが readr: 高速で柔軟なテーブル読み込み - Heavy Watal

 

 

 

 結論

というわけで、SPSSSASを使わないRユーザーも、Qualtricsからのデータダウンロードはsav.ファイルで指定し、read_sav()にて読み込むと良いでしょう!*4

 

 

*1:これはエンコーディングを指定すると直る (第23章 Rのエンコーディング問題 | Rで計量政治学入門)

*2:おそらく、自由記述の回答文章中に区切り文字のカンマがあっておかしくなっている

*3:これは、ファイルをテキストエディターなどで開いて末尾にEnter を足せば直ることもある ([R]警告メッセージ「incomplete final line found by readTableHeader on '○○'」: Golden State)が、ダウンロードしたファイルを書き換えているという点で目標「そのまま読み込む」を達成できない。

*4:R Studioを使っていれば、データビュー view() でsavファイルの中身を表示することができる。R Studioを使わない派がデータ全体を表として閲覧したい場合や、データ共有の観点から、csvファイルも欲しいことがあるだろう。そのときは、Rでsavファイルを読み込んでから、write.csv()またはdplyrパッケージに合わせてwrite_csv()などでcsvとして出力できる(Rを使って,SPSSデータをcsvファイルに変換する方法 | Sunny side up!)。