情報工学領域実習 B

URL


アクセスできたら、まず最初にブックマークに追加しておいてください。
講義ページ
https://lsnl.jp/l/training

講義ページ (複数ページ版 (モバイル端末向け))
https://lsnl.jp/~ohsaki/lecture/training/2024/toc.html

[授業中に提出] リフレクションシート (パスワードが必要です)
https://lsnl.jp/app/lecture/refl/show/training

[自習後に提出] レポート送信フォーム (パスワードが必要です)
https://lsnl.jp/app/lecture/report/show/training

講義ビデオ (パスワードが必要です)
https://lsnl.jp/video/training/2024/

連絡用メイリングリスト (教員に届きます)
training-staff[atmark]lsnl.jp
本文には、必ず学生番号・氏名・メールアドレス (@kwansei.ac.jp のもの) を明記してください。

担当教員

大崎 博之
関西学院大学 工学部 情報工学課程
E-mail: training-staff[atmark]lsnl.jp

授業目的

4 年次の卒業研究に向けて、 コンピュータとプログラミングを活用した、 効率的な研究活動の方法を学ぶ。 また、 将来のキャリア設計についても考える。 コンピュータの高度な利用法 (Linux/macOS/UNIX の利用法、 システム管理、 開発環境、 ネットワーク/サーバ構築) や、 プログラミング技術 (自動化処理、 データ分析/統計処理、 アプリケーション開発) を実習形式で学ぶ。

到達目標

- 卒業研究のテーマや研究活動の基礎を理解し、簡単な研究活動を実施できるようになる。

- コンピュータの高度な利用法を習得し、UNIX 系オペレーティングシステムを効率的に操作できるようになるとともに、システム管理ができるようになる

- Python やシェルスクリプトによる処理の自動化、データ分析/統計処理、アプリケーション開発ができるようになる

授業方法

アクティブラーニング形式 (全体説明、 グループワーク (ディスカッション、 コンピュータ実習、 ペアプログラミング等)、 プレゼンテーション、 振り返り) で実施する。

Python 言語とシェルスクリプトを中心に、 ペアプログラミングによる効果的なソフトウェア開発手法も学ぶ。 受講者の希望に応じて、 その他のプログラミング言語 (C/C++、 JavaScript、 アセンブリ言語、 Lisp、 Awk、 Julia、 Perl、 Ruby、 Go、 VBA、 Matlab/Octave、 R、 React、 Java、 Rust 等) もあわせて学ぶことができる。

受講者の希望に応じて、 コンピュータシミュレーション、 マルチプラットフォーム (iOS、 Android、 Linux、 macOS、 Windows、 Raspberry Pi) 開発、 ネットワークプログラミング、 AI (人工知能)/機械学習プログラミング、 グラフィックスプログラミング等に取り組むこともできる。

成績評価

その他 (基礎平常点および達成点) 100%

基礎平常点 (毎回の実習の基本的な取り組み; 75 点満点) および達成点 (課題等の達成度; 25 点) により評価する。 ただし、 3 回を超える欠席 (またはこれに相当する遅刻・早退) があった場合には不合格とする。 やむを得ぬ事情で出席ができない場合には、 担当教員に申し出ること。

スケジュール

  2024/ 9/25 Debian GNU/Linux のインストールとセットアップ
  2024/10/ 2 CLI 環境のセットアップ
  2024/10/ 9 ウィンドウマネージャ導入
  2024/10/16 エディタ (Emacs チュートリアル)
  2024/10/23 タッチタイピング
  2024/10/30 簡単なツールの設計・開発 (1)
  2024/11/ 6 簡単なツールの設計・開発 (2)
  2024/11/13 ペアプログラミング
  2024/11/20 キャリア設計
  2024/11/27 グラフ上のランダムウォーク
  2024/12/ 4 Python 開発環境 (1)
  2024/12/11 Python 開発環境 (2)
  2024/12/18 簡単なツールの設計・開発 (3)、Python 開発環境 (3)
  2025/ 1/ 8 研究テーマの理解



Debian GNU/Linux のインストールとセットアップ

実習の流れ

1. 解説 (30 分)
2. 実習 (60 分)
3. リフレクションシート記入 (10 分)

チーム分けの方針

- いろいろな人とチームになる
- チームの人数は自由に決めてよい

態度目標

- しゃべる
- 質問する
- 説明する
- 動く (立ち歩く)
- チームで協力する
- チームに貢献する

内容目標

- ノートパソコンを日頃から適切にクリーニングできるようになる。

- ノートパソコンの BIOS 設定の概要を理解し、必要に応じて設定をリセット/変更できるようになる。

- オペレーティングシステムをインストーラを入手し、USB メモリにインストーラを書き込めるようになる。

- Debian GNU/Linux をクリーンインストールし、インストール時にどのような設定を行っているかを理解する。

課題

課題1

自身のノートパソコンをアルカリ電解水を適切に使用してクリーニングせよ。

課題2

自身のノートパソコンの BIOS 設定を確認し、 以下を変更せよ。 (1) BIOS 設定の初期化、 (2) トラックパッドの無効化、 (3) セキュアブートの無効化、 を実施せよ。

課題3

Debian GNU/Linux (amd64) のインストーラを作成せよ。 バージョンは 12.7 (bookworm)、 アーキテクチャは amd64 を選択せよ。

Debian GNU/Linux ISO image (amd64)
http://ftp.riken.jp/Linux/debian/debian-cd/current/amd64/iso-cd/

How do I write a CD/DVD/BD image to a USB flash drive?
https://www.debian.org/CD/faq/index.en.html#write-usb

課題 4

課題 3 で作成したインストーラを用い、 Debian GNU/Linux をクリーンインストールせよ。 ただし、 デスクトップ環境をインストールしては「いけない」。

資料
Debian GNU/Linux インストールガイド
https://www.debian.org/releases/stable/amd64/index.ja.html

レポート課題 2024-09-25

実習終了後に自習を行い、 到達目標まで到達せよ。 疑問に思った点、 わからない点は各自で信頼できる文献を用いて調査せよ。

その後、「今週の作業内容」、 「『内容目標』をどの程度達成できた/できなかったか」、 「質問・要望・コメント」、 「感想」を「レポート送信フォーム」から送信せよ。

レポート課題の内容や書き方については、 レポート送信フォームに説明があるのでそちらを参照せよ。

提出方法: 「レポート送信フォーム」から送信せよ。 レポートが再提出された場合は、 新しいほうを採点対象とする。

提出期限: 次回の講義開始の 48 時間前とする (例えば、 9/25(水) の課題であれば、 10/2(水) 3:20pm の 48 時間前である 9/30(月) 3:20pm)。 期限を過ぎたものは受理しない。

注意事項: リフレクションシートは教員のみに送付される。 レポート課題は領域実習のメイリングリストに送付される (受講者全員 + 研究室メンバに送付される) ことに注意せよ。 他の受講者や、 研究室メンバに見られて困る内容はレポート課題には記載しないこと。

CLI 環境のセットアップ

実習の流れ・チーム分けの方針・態度目標

2024-09-25 と同じ。

https://lsnl.jp/~ohsaki/lecture/training/2024/#8-1

内容目標

- 設定ファイルを書換え、CLI のみを使用することで自身の PC を Wi-Fi に接続できるようになる。

- Debian におけるパッケージ管理の基礎を習得し、パッケージを最新の状態にアップデートできるようになる。

- シェルを標準の bash から fish に変更し、fish のドキュメントにいつでも参照できるようになる (高機能なシェルを使えるようになる)。

- 端末マルチプレクサである screen をインストールし、基本的な操作ができるようになる (複数のシェルを切り替えて使用できるようになる)。

資料

Debian リファレンスカード
https://www.debian.org/doc/manuals/refcard/refcard.ja.pdf

Debian リファレンス
https://www.debian.org/doc/manuals/debian-reference/index.ja.html

Debian 管理者ハンドブック
https://www.debian.org/doc/manuals/debian-handbook/index.ja.html

課題

最初に、 CapsLock を Ctrl に割り当てておく。

# nano /etc/default/keyboard
変更箇所
-XKBOPTIONS=""
+XKBOPTIONS="ctrl:nocaps"
# /etc/init.d/console-setup.sh restart

- から始まる行が変更前、 + から始まる行が変更後 (diff -u の出力形式と同じ)。 先頭の - や + は行の一部ではないことに注意。

課題1

設定ファイル /etc/network/interfaces を書き換えることにより、 無線 LAN (Wi-Fi) に接続せよ。

Using ifupdown
https://wiki.debian.org/WiFi/HowToUse#Using_ifupdown

Getting WPA_Supplicant to work on boot in Debian 10
https://unix.stackexchange.com/questions/537235/getting-wpa-supplicant-to-work-on-boot-in-debian-10

# ip a
# iw dev
# ip link set wlp2s0 up
# iwlist scan
# nano /etc/network/interfaces
# ifup wlp2s0
# iw wlp2s0 link
# ip a

※検索エンジンで、 「Debian 無線設定」等で検索してヒットしたページ (その大部分が「石」) を参考に「しない」のが上達の秘訣。

課題2

apt コマンドを用いることにより、 Debian GNU/Linux のパッケージを最新のものに更新せよ。

6.2. aptitude、apt-get、apt コマンド
https://www.debian.org/doc/manuals/debian-handbook/sect.apt-get.ja.html

# apt update
# apt upgrade

課題3

パッケージ fish をインストールするとともに、 ログインシェルを fish に変更せよ。

Finally, a command line shell for the 90s
https://fishshell.com/

# apt install fish
$ fish
> help
> chsh

課題 4

パッケージ screen をインストールし、 screen の基本的な利用法を習得せよ。 エスケープキーは Ctrl-Z に設定すること。

GNU Screen
https://www.gnu.org/software/screen/

GNU screen usage
http://gnuscreen.org/

GNU Screen (Arch Linux)
https://wiki.archlinux.org/title/GNU_Screen

# apt install screen
> echo 'escape ^Z^Z' >~/.screenrc
> screen

レポート課題 2024-10-02

2024-09-25 のものと同じ。

https://lsnl.jp/~ohsaki/lecture/training/2024/#8-6

ウィンドウマネージャ導入

実習の流れ・チーム分けの方針・態度目標

2024-09-25 と同じ。

https://lsnl.jp/~ohsaki/lecture/training/2024/#8-1

内容目標

- ウィンドウマネージャ (xpywm) をインストールできるようになる。

- xpywm の基本的な操作法を理解し、ウィンドウに対する一般的な操作ができるようになる。

- xpywm のインストール場所および変更方法を理解し、簡単なカスタマイズができるようになる。

- xpywm と qutebrowser の組合せで、高速な操作ができるようになる。

課題

準備

- sudo をインストールし、sudo コマンドが実行できる状態にしておく。

- fish をインストールし、デフォルトシェルを fish に変更しておく。

- LANG が ja_JP (日本語) になっていれば、以下を実行し、デフォルトロケールを en_US.UTF-8 に変更しておく。

> sudo dpkg-reconfigure locales

課題 1

xpywm、 xpymon、 xpylog が利用可能な状態の X ウィンドウシステムを起動せよ。

課題 2

xpywm のキーボードおよびマウス操作法を暗記せよ。

課題 3

xpywm の文字およびフレームの色を自分好みのものにカスタマイズせよ。

課題 4

Web ブラウザ (qutebrowser) を起動し、 検索エンジンで「debian sudo」を検索し、 1 番目の検索結果の Web ページを開くために必要なキー操作と、 そのストローク数を答えよ。

略解

課題 1

もしまだなら、 事前に sudo コマンドのインストールと設定を済ませておく。

sudo コマンドのインストール・設定方法
# apt install sudo
# adduser 自分のログイン名 sudo ← 自分自身を sudo グループに追加する
いったんログアウト

インストール用スクリプトを wget で入手し、 シェル (sh) で実行する。 その後、 さまざまな設定ファイルを格納したアーカイブ (home.tgz) をホームディレクトリ上で展開する。

> wget -O - lsnl.jp/xpywm | sh
> tar xzvf home.tgz
> startx

home.tgz を展開すると、ホームディレクトリ以下の設定ファイルが上書きされることに注意せよ。

課題 2

以下に操作法の一覧がある。

https://github.com/h-ohsaki/xpywm

課題 3

プログラム本体 (Python のスクリプト) xpywm の場所は which xpywm でわかる。

> which xpywm
/usr/local/bin/xpywm

このファイル xpywm 中の、 以下のような箇所

FRAME_COLOR = 'aquamarine1'
TITLE_COLOR = 'aquamarine3'

にある色名 (aquamarine1 や aquamarine3 など) を他の色名に書換えればよい。 X ウィンドウシステムが認識する色の名前は、

/usr/share/X11/rgb.txt

に書かれている。

xpywm の所有者は root のため、 (1) root の権限で書換える、 (2) ファイルの所有者を自分に変更する (chown コマンド)、 (3) ファイルを所有者以外でも書換えらえるようにする (chmod コマンド) などの方法がある。

課題 4

<Alt+Ctrl+3>odebian sudo<Enter>fgl

17 ストロークただし、 最後の 2 文字 (gl) は検索エンジンや検索結果によって変化する。

レポート課題 2024-10-09

2024-09-25 のものと同じ。

https://lsnl.jp/~ohsaki/lecture/training/2024/#8-6

エディタ (Emacs チュートリアル)

実習の流れ・チーム分けの方針・態度目標

2024-09-25 と同じ。

https://lsnl.jp/~ohsaki/lecture/training/2024/#8-1

内容目標

- Emacs の基本的な操作方法を習得し、ファイルを作成・編集できるようになる

テキスト

https://lsnl.jp/~ohsaki/lecture/training/2024/priv/03.pdf

課題

UNIX では Ctrl キーを多用するので、 CapsLock キーを Ctrl キーに割り当てておく。

/etc/default/keyboard の

XKBOPTIONS=""

という行を

XKBOPTIONS="ctrl:nocaps"

に書き換える。その後、以下を実行。

# /etc/init.d/console-setup.sh restart

課題 1

Emacs をインストールせよ。

課題 2

Emacs のチュートリアルを起動し、 「もし Emacs が反応しなくなったら」までを実行せよ。

課題 3

「Hello!」という文字列が書かれた ~/foo.txt というファイルを Emacs のみを用いて作成せよ。

課題 4

Emacs のキーバインド一覧を表示し、 どのようなコマンドがあるかを眺めてみよ。 また、 (1) M-d、 (2) C-SPC、 (3) C-w、 (4) C-y というキー操作によってどのような処理が実行できるかを調べよ。

略解

課題 1

> sudo apt install emacs

課題 2

> Alt + Ctrl + 2 (Alt と Ctrl を押しながら 2 を押す (「emacs &」で起動してもよい)。
> C-x RET l Japanese RET (言語環境を日本語に変更、M-x set-language-environment RET でもよい)
> M-h t (M-x help-with-tutorial RET でもよい)
※ C-x は Ctrl キーを押しながら x キーを押す
※ M-x は Alt キーを押しながら x キーを押す
※ RET は Enter キー (もしくは C-m)

課題 3

> C-x C-f foo.txt RET (M-x find-file foo.txt RET でもよい)
> Hello!
> C-x C-s (M-x save-buffer RET でもよい)
※ UNIX では ~ はホームディレクトリを表す。

課題 4

> M-h b (M-x describe-bindings RET でもよい)
> M-d: kill-word (単語単位の削除 (キル → キルリングに入るタイプの削除))
> C-SPC: set-mark-command (現在のポイント(カーソル位置)をマークする)
> C-w: kill-region (リージョン (マークとポイントの間) をキルする)
> C-y: yank (キルしたテキストをペーストする)

レポート課題 2024-10-16

2024-09-25 のものと同じ。

https://lsnl.jp/~ohsaki/lecture/training/2024/#8-6

より深く学びたい人へ

(Emacs に限りませんが) オンラインドキュメントではなく、 書籍で知識を吸収することをおすすめします。 Emacs に関する良書は多くありませんが、 読むなら以下の本をすすめます。 「GNU Emacs マニュアル」は原文が GPL で公開されているので、 翻訳版も GPL で公開されています。

Richard Stallman, ``GNU Emacs マニュアル,'' 共立出版, 1988.
https://lsnl.jp/~ohsaki/lecture/training/2024/priv/GNU_Emacs_Manual.pdf

GNU Emacs マニュアル 28.2
https://ayatakesi.github.io/emacs/28.2/html/index.html

ただし、 翻訳の質は共立出版のもののほうがはるかに良いです。

Debra Cameron, James Elliott, Marc Loy, Eric Raymond, Bill
Rosenblatt, ``入門 GNU Emacs 第 3 版, '' オライリー・ジャパン, 2007.

追加の資料です。

  日本のEmacsユーザーのためのハブサイト
  https://emacs-jp.github.io/



タッチタイピング

実習の流れ・チーム分けの方針・態度目標

2024-09-25 と同じ。

https://lsnl.jp/~ohsaki/lecture/training/2024/#8-1

内容目標

- タッチタイピングの利点を理解し、他人に説明できるようになる。

- タッチタイピングにおけるホーム行 (home row) を理解し、両手のそれぞれの指で担当すべきキーを押せるようになる。

- US 配列と JIS 配列の違いを理解し、適切なキーボードを選択できるようになる。

- タイピング練習ソフトウェア (pytyping) をインストールし、毎日コツコツとタッチタイピングの練習ができるようになる。

課題

資料

Touch typing
https://en.wikipedia.org/wiki/Touch_typing

How to learn Touch Typing
https://www.unipage.net/en/touch_typing_how_to_learn

Touch Typing Finger Placement
https://agilefingers.com/articles/touch-typing-finger-placement

Keyboard layout
https://en.wikipedia.org/wiki/Keyboard_layout#Japanese

課題 1

タッチタイピングの利点は何か。

課題 2

タッチタイピングにおけるホーム行 (home row) において、 (1) 右中指が担当するキー、 (2) 左人差し指が担当するキーをそれぞれ答えよ。

課題 3

US 配列と比較した時の JIS 配列の欠点は何か。

課題 4

pytyping をインストールし、 タッチタイピングを練習せよ。

まず、 これまでのタイピング方法で、 どの程度の WPM (Word Per Minute) が得られるかを試し、 その値 (WPM) を記録せよ。

その後、 タッチタイピングで、 遅くてもよいので何度も練習を繰り返せ。

略解

課題 1

- 入力速度が向上する。

- 視点の切り替えが不要になり、生産性が向上する。

- 頸部の疲労が軽減される。

課題 2

(1) 8, I, K, ,

(2) 4, R, F, V, 5, T, G, B

課題 3

コンピュータのキーボードはもともと US 配列で設計されているため、 JIS 配列にするためにさまざまな歪みが生じている。

- キーのレイアウトに無理がある。
- キーの配列が美しくない (ガタガタ・バラバラ)。
- 重要なキー (スペースバー、シフトキー、バックスペースキー) が小さい。
-  (かな入力しない人には)「かな」の刻印が邪魔。

課題 4

> wget --user=******** --password=******** https://lsnl.jp/~ohsaki/lecture/training/2024/priv/pytyping
> sudo install -m 755 pytyping /usr/local/bin/
> wget --user=******** --password=******** https://lsnl.jp/~ohsaki/lecture/training/2024/priv/rfc2914.txt
> sudo mkdir -p /usr/local/share/pytyping
> sudo intall -m 644 rfc2914.txt /usr/local/share/pytyping
> pytyping -n 1
※ それぞれのコマンドが何を実行しているのか、また、各コマンドがなぜ必要なのかもあわせて理解せよ。

レポート課題 2024-10-23

2024-09-25 のものと同じ。

https://lsnl.jp/~ohsaki/lecture/training/2024/#8-6

簡単なツールの設計・開発 (1)

実習の流れ

2024-09-25 と同じ。

https://lsnl.jp/~ohsaki/lecture/training/2024/#8-1

内容目標

- コンピュータ (トモダチ) に何を手伝ってもらえば、毎日が楽しく快適になるかを考えられるようになる。

- 「3 日で作ってみたいソフトウェア」の仕様と実装の方針を他人に説明できるようになる。

- 「3 日で作ってみたいソフトウェア」の基本部分を (他の人の助けを借りて) 実装できるようになる。

課題

課題 1

日々の生活を楽しく、 快適にするために、 どのようなソフトウェア (ツール) があれば良いかをチーム内で議論せよ。 まずは、 3 日間で実装できるような簡単ものを考えよ。

各チームで 3 つ以上の案を出し、 以下をそれぞれのソフトウェア (ツール) について A4 1 ページでまとめよ。 できるだけ図を用いて表現することが望ましい。

- ソフトウェア (ツール) の名称
- 背景 (ソフトウェア (ツール) が必要とされる背景)
- 動機 (ソフトウェア (ツール) 必要とされる理由)
- 目的 (ソフトウェア (ツール) で何を実現したいか)

課題 2

課題 1 で考えたソフトウェア (ツール) のそれぞれについて、 その仕様と実現方法 (実装の方針) を各チーム内で議論せよ。

- 手法 (ソフトウェア (ツール) の実現方法)
- 入出力 (何を入力すると、何が出力されるのか)

課題 1 で作成したシートに上記の内容を追記せよ。 できるだけ図を用いて表現することが望ましい。

課題 3

課題 1 および課題 2 で考えたソフトウェア (ツール) から 1 つ選び、 領域実習用の Debian GNU/Linux 上で実装せよ。

最初は、 PoC (Proof of Concet) の実装から始めるとよい。

レポート課題 2024-10-30

2024-09-25 のものと同じ。

https://lsnl.jp/~ohsaki/lecture/training/2024/#8-6

簡単なツールの設計・開発 (2)

実習の流れ

2024-09-25 と同じ。

https://lsnl.jp/~ohsaki/lecture/training/2024/#8-1

内容目標・課題

2024-09-25 と同じ。

https://lsnl.jp/~ohsaki/lecture/training/2024/#13-2

レポート課題 2024-10-06

2024-09-25 のものと同じ。

https://lsnl.jp/~ohsaki/lecture/training/2024/#8-6

ペアプログラミング

実習の流れ・チーム分けの方針・態度目標

2024-09-25 と同じ。

https://lsnl.jp/~ohsaki/lecture/training/2024/#8-1

内容目標

- ペアプログラミングとは何かを他人に説明できるようになる。

- ペアプログラミングの「コツ」を理解し、実践できるようになる。

- 簡単なプログラムを他のメンバとペアプログラミングで開発できるようになる。

課題

課題 1

ペアプログラミングの実施手順を理解せよ。

Pair Programming Tutorial
http://www.compsci.hunter.cuny.edu/~sweiss/course_materials/csci135/csci136tutorials/pair_programming_tutorial.pdf

課題 2

ペアプログラミングにふさわしい席配置、 ノート PC の配置を考え、 そのようにレイアウトせよ。

課題 3

Web ブラウザを起動し、 コマンド行に指定した英単語を OLD (Oxford Learner's Dictionary) で検索した結果を表示する oldw コマンドを作成せよ。

実行例
> ./oldw proxy
(Web ブラウザが起動し、https://www.oxfordlearnersdictionaries.com/definition/english/proxy が表示される)

課題 4

コマンド行に指定した英単語を OLD (Oxford Learner's Dictionary) で検索し、単語の意味を標準出力に書き出す old コマンドを作成せよ。

実行例
> ./old proxy

略解

課題 1

省略

課題 2

省略

課題 3

省略

課題 4

 サンプル
 https://lsnl.jp/~ohsaki/lecture/training/2024/old

 実行例
 > ./old proxy
 + word=proxy
 + shift
 + url=https://www.oxfordlearnersdictionaries.com/definition/english/proxy
 + lynx --dump https://www.oxfordlearnersdictionaries.com/definition/english/proxy
 + sed -n /^proxy/,/^[^ ]/p
 proxy
 
    noun
 
    /ˈprɒksi/
 
    /ˈprɑːksi/
    (plural proxies)
    [45]jump to other results
     1. [uncountable] the authority that you give to somebody to do
        something for you, when you cannot do it yourself
           + by proxy You can vote either in person or by proxy.
           + a proxy vote
        Extra Examples
           + It is important that members send their proxy forms in.
           + Our practice is to delegate proxy voting to managers.
           + We enclose a form of proxy for use at the Annual General
             Meeting.
        Oxford Collocations Dictionaryverb + proxy
           + appoint
           + act as
           + serve as
           + …
        proxy + noun
           + vote
           + voting
           + form
           + …
        preposition
           + by proxy
           + proxy for
        phrases
           + as a proxy
        See [46]full entry
        Want to learn more?
        Find out which words work together and produce more
        natural-sounding English with the Oxford Collocations Dictionary
        app. Try it for free as part of the Oxford Advanced Learner’s
        Dictionary app.
     2. [countable, uncountable] a person who has been given the authority
        to represent somebody else
           + Your proxy will need to sign the form on your behalf.
           + They were like proxy parents to me.
           + proxy for somebody She is acting as proxy for her husband.
        Extra Examples
           + Your proxy may attend the meeting if you are unable to attend.
           + You may appoint a proxy to vote for you.
           + I am here as a proxy for my father.
        Oxford Collocations Dictionaryverb + proxy
           + appoint
           + act as
           + serve as
           + …
        proxy + noun
           + vote
           + voting
           + form
           + …
        preposition
           + by proxy
           + proxy for
        phrases
           + as a proxy
        See [47]full entry
     3. [countable] proxy for something (formal or specialist) something
        that you use to represent something else that you are trying to
        measure or calculate
           + The number of patients on a doctor's list was seen as a good
             proxy for assessing how hard they work.
        Word Originlate Middle English: contraction of procuracy.
 
    See [48]proxy in the Oxford Advanced American DictionarySee [49]proxy
    in the Oxford Learner's Dictionary of Academic English
    Check pronunciation: [50]proxy
 
 Other results

コメント

- 出力が自分の好みになるように整形するとよい。

- 実質は 1 行で書けるプログラム (シェルスクリプトの偉大さがわかる)

lynx --dump "https://www.oxfordlearnersdictionaries.com/definition/english/$1" | sed -n "/^$word/,/^[^ ]/p"

- + から始まる行はデバッグ用のメッセージである。

- [45]、[46] 等は URL である (lynx --dump の末尾に表示されていたが削除している)。

- lynx の代わりに w3m を使ったバージョン↓

 サンプル (w3m バージョン、w3m のインストールが必要)
 https://lsnl.jp/~ohsaki/lecture/training/2024/old2

 実行例
 > ./old2 proxy
 + word=proxy
 + shift
 + url=https://www.oxfordlearnersdictionaries.com/definition/english/proxy
 + w3m -dump https://www.oxfordlearnersdictionaries.com/definition/english/proxy
 + sed -n /^proxy/,/^[A-Z]/p
 proxy
 
 noun
  
 /ˈprɒksi/
  
 /ˈprɑːksi/
 (plural proxies)
 jump to other results
 
  1. [uncountable] the authority that you give to somebody to do something for
     you, when you cannot do it yourself
       □ by proxy You can vote either in person or by proxy.
       □ a proxy vote
     Extra Examples
       □ It is important that members send their proxy forms in.
       □ Our practice is to delegate proxy voting to managers.
       □ We enclose a form of proxy for use at the Annual General Meeting.
     Oxford Collocations Dictionaryverb + proxy
       □ appoint
       □ act as
       □ serve as
       □ …
     proxy + noun
       □ vote
       □ voting
       □ form
       □ …
     preposition
       □ by proxy
       □ proxy for
     phrases
       □ as a proxy
     See full entry
    
     Questions about grammar and vocabulary?
 
     Find the answers with Practical English Usage online, your indispensable
     guide to problems in English.
 
  2. [countable, uncountable] a person who has been given the authority to
     represent somebody else
       □ Your proxy will need to sign the form on your behalf.
       □ They were like proxy parents to me.
       □ proxy for somebody She is acting as proxy for her husband.
     Extra Examples
       □ Your proxy may attend the meeting if you are unable to attend.
       □ You may appoint a proxy to vote for you.
       □ I am here as a proxy for my father.
     Oxford Collocations Dictionaryverb + proxy
       □ appoint
       □ act as
       □ serve as
       □ …
     proxy + noun
       □ vote
       □ voting
       □ form
       □ …
     preposition
       □ by proxy
       □ proxy for
     phrases
       □ as a proxy
     See full entry
  3. [countable] proxy for something (formal or specialist) something that you
     use to represent something else that you are trying to measure or calculate
       □ The number of patients on a doctor's list was seen as a good proxy for
         assessing how hard they work.
     Word Originlate Middle English: contraction of procuracy.
 
 See proxy in the Oxford Advanced American DictionarySee proxy in the Oxford

レポート課題 2024-11-13

2024-09-25 のものと同じ。

https://lsnl.jp/~ohsaki/lecture/training/2024/#8-6

キャリア設計

実習の流れ・チーム分けの方針・態度目標

2024-09-25 と同じ。

https://lsnl.jp/~ohsaki/lecture/training/2024/#8-1

内容目標

- キャリア設計をどのように考えるべきかを、日本を含む各国の学生の考え方と比較することで深く考えられるようになる。

- NACE (National Association of Colleges and Employers; 大学および雇用者の全米協会) の 8 つの career readiness competencies (キャリア準備能力) とは何かを理解し、他人に説明できるようになる。

- 自身の、現時点における 8 つの「キャリア準備能力」を評価できるようになる。

- 雇用者がどのような「キャリア準備能力」を求めているかを理解するとともに、今後、自身のどの「キャリア準備能力」をどのように高めてゆけばよいかを考えられるようになる。

資料

高校生の進路と職業意識に関する調査報告書-日本・米国・中国・韓国の比較-
https://www.niye.go.jp/about/report_list/1945245881649284e4c344120230621140436.html

WHAT IS CAREER READINESS?
https://www.naceweb.org/career-readiness/competencies/career-readiness-defined/

Competencies: Employers Weigh Importance Versus New Grad Proficiency
https://www.naceweb.org/career-readiness/competencies/competencies-employers-weigh-importance-versus-new-grad-proficiency/

Career Readiness Competencies: Employer Survey Results
https://www.naceweb.org/career-readiness/competencies/career-readiness-competencies-employer-survey-results/

Career Guide: Hofstra University
https://www.hofstra.edu/sites/default/files/2021-02/career-design-development-guide.pdf

Desales University Career Development Center 2021-2022 Career Planning Guide
https://www.desales.edu/docs/default-source/default-document-library/dsucareerplanningguide.pdf?sfvrsn=d12115fb_6

課題

課題 1

「高校生の進路と職業意識に関する調査報告書」を読み、 自身の職業意識が、 日本・米国・中国・韓国のそれぞれの学生の職業一式とどの程度一致しているかを分析せよ。

課題 2

以下の (1)〜(5) が NACE の 8 つの「キャリア準備能力」のどれに当てはまるかを答えよ。 どれにもあてはまらない場合は「該当なし」と回答せよ。

(1) 組織における自身の役割を果たし、時には期待を超える成果を出すことができる。

(2) オペレーティングシステムをカスタマイズし、効率的に作業することができる。

(3) 自身の考え方や行動が、日本以外の文化圏の人からどう見えるかを想像することができる。

(4) 仕事と趣味を両立し、どちらもバランス良く楽しむことができる。

(5) 現在の状況を分析し、状況に応じて適切な解法を選択することができる。

課題 3

自身の、 現時点における 8 つの「キャリア準備能力」をそれぞれ 5 段階で評価せよ。 ただし、 自身のそれぞれの「キャリア準備能力」に、 なぜそのような点数を付けたのかを論理的に説明できるようにしておくこと。

課題 4

大学・大学院の在学中に、 自身が特に優先して高めたいと考える「キャリア準備能力」を 3 つ選択せよ。 それらの「キャリア準備能力」を、 それぞれどのように高めてゆけばよいかを考えよ。

略解

課題 1

省略

課題 2

(1) professionalism
(2) technology
(3) equity & inclusion
(4) 該当なし
(5) critical thinking

課題 3

省略

課題 4

省略

レポート課題 2024-11-20

2024-09-25 のものと同じ。

https://lsnl.jp/~ohsaki/lecture/training/2024/#8-6

グラフ上のランダムウォーク

実習の流れ・チーム分けの方針・態度目標

2024-09-25 と同じ。

https://lsnl.jp/~ohsaki/lecture/training/2024/#8-1

内容目標

- グラフ上のランダムウォークとは何かを理解し、他人に説明できるようになる。

- グラフ上のランダムウォークのシミュレーションを実行できるようになる。

課題

課題 1

以下のグラフにおいて、 ノード 1 から移動を開始したエージェント (単純ランダムウォーク (SRW) のエージェント) が、 ノード 6 に到達するまでの時間 (初回到着時間) を実験で求めよ。 実験には、 紙、 筆記用具、 サイコロ (または同等品) のみを使用せよ。

   1           5
  / \         /
 /   \       /
2 --- 3 --- 4----6

課題 2

計算機を用いたシミュレーションにより、 課題 1 の初回到着時間を 100 回計測することにより、 平均初回到着時間を求めよ。

課題 3

課題 2 と同じ。 ただし、 エージェントの移動モデルは、 単純ランダムウォーク (SRW) ではなく、 直前に訪問したノードへの再訪を可能な限り回避する、 不可逆ランダムウォーク (NBRW) とせよ。

課題 4

課題 2 と同じ。 ただし、エージェントの移動モデルは、 平均初回到着時間が短かくなりそうなランダムウォークを自分で考案せよ。

略解

課題 1

省略

課題 2

> sudo pip3 install -U perlcompat tbdump graph-tools py-stats
> git clone https://github.com/h-ohsaki/randwalk.git
> cd randwalk
> wget https://lsnl.jp/~ohsaki/lecture/training/2024/priv/6-srw
> chmod +x 6-srw

※ 上記の 6-srw では、(2, 3) のリンクが不足しているので、(2, 3) のリンクを追加する必要がある。

1 回だけ実行する場合:
> ./6-srw

100 回の平均を計算する場合:
> for i in (seq 100)
  ./6-srw | tail -1 | awk '{ print $1 }' | sed 's/t=//'
end | stats -v

課題 3

20 行目の SRW を NBRW に書き替えればよい。

課題 4

省略

レポート課題 2024-11-27

2024-09-25 のものと同じ。

https://lsnl.jp/~ohsaki/lecture/training/2024/#8-6

Python 開発環境 (1)

実習の流れ

2024-09-25 と同じ。

https://lsnl.jp/~ohsaki/lecture/training/2024/#8-1

内容目標

- エディタ (Emacs) の構造の概要を理解し、他人に説明できるようになる。

- Emacs の Python モード (py-mode) のソースコードを読み、どのような機能があるかを理解する。

- Emacs の Python モード (py-mode) のソースコードを読み、それぞれの機能がどのように実装されているかを理解する。

- Emacs の py-mode に「欲しい機能」を考えられるようになる。

課題

課題 1

pyhelp コマンドを利用できるように設定し、 pyhelp コマンドを用いて組み込み関数 int のマニュアルを読んでみよ。

課題 2

(1) Python で書かれたプログラムを Emacs に読み込み、Py モード (py-mode) になっていることを確認せよ。

(2) M-x describe-bindings によって Py モードのキーバインドを調査せよ。

(3) (2) において、py- から始まるコマンドで何ができるかを調査せよ (実際に試してみる、ソースコードを見る、ドキュメントを読む等)。

課題 3

(1) M-x inf-py によって comint バッファ内で Python の REPL (Read, Eval, Print and Loop) を起動せよ。

(2) M-x describe-bindings によって Inferior Python モードのキーバインドを調査せよ。

(3) (2) において、comit- から始まるコマンドで何ができるかを調査せよ (実際に試してみる、ソースコードを見る、ドキュメントを読む等)。

課題 4

py-mode に「あると便利」と考えられる機能を 3 つ考案せよ。 考案したものをテキストファイルもしくはノートに書き出せ。

略解

課題 1

pyehlp が使用するコマンドやモジュールのインストール

> sudo apt install lv dict gawk m4
> sudo pip3 install rstparse

/src/python3.9-3.9.2 以下に Python のソースアーカイブを展開

※ Python のソースアーカイブはバージョン 3.9.2 ではなく、 最新のものでよい。 上記のディレクトリ名は ~/bin/pyhelp コマンドにハードコーディングされている。 以下の例では、python3.11-3.11.2 というディレクトリに展開されるので、 /src/python3.9-3.9.2 でアクセスできるようにシンボリックリンクを作成している。

> sudo mkdir /src
> sudo chmod 777 /src
> cd /src
> apt-get source python3.11
> ln -s python3.11-3.11.2 python3.9-3.9.2
> pyhelp int

課題 2

省略

課題 3

省略

課題 4

省略

レポート課題 2024/12/04

2024-09-25 のものと同じ。

https://lsnl.jp/~ohsaki/lecture/training/2024/#8-6

Python 開発環境 (2)

実習の流れ

2024-09-25 と同じ。

https://lsnl.jp/~ohsaki/lecture/training/2024/#8-1

内容目標・課題

2024-12-04 のものと同じ。

https://lsnl.jp/~ohsaki/lecture/training/2024/#18

レポート課題 2024/12/11

2024-09-25 のものと同じ。

https://lsnl.jp/~ohsaki/lecture/training/2024/#8-6

簡単なツールの設計・開発 (3)、Python 開発環境 (3)

実習の流れ・チーム分けの方針・態度目標

2024-09-25 と同じ。

https://lsnl.jp/~ohsaki/lecture/training/2024/#8-6

内容目標・課題

2024-10-30 および 2024-12-04 のものと同じ。

https://lsnl.jp/~ohsaki/lecture/training/2024/#13-2

https://lsnl.jp/~ohsaki/lecture/training/2024/#18-2

レポート課題 2024-12-06

2024-09-25 のものと同じ。

https://lsnl.jp/~ohsaki/lecture/training/2024/#8-6

研究テーマの理解

実習の流れ・チーム分けの方針・態度目標

2024-09-25 と同じ。

https://lsnl.jp/~ohsaki/lecture/training/2024/#8-6

内容目標

- ネットワークアーキテクチャ研究室の研究分野に関する主要な用語や概念を理解し、他人に説明できるようになる。

- ネットワークアーキテクチャ研究室の今年度の研究テーマの概要を理解できるようになる。

- ネットワークアーキテクチャ研究室の今年度の研究テーマを、新規性・独創性・革新性・有効性・将来性の観点から分析できるようになる。

資料

https://lsnl.jp/~ohsaki/lecture/training/2024/priv/0710/society24-kazuma-a-crw.pdf
https://lsnl.jp/~ohsaki/lecture/training/2024/priv/0710/society24-kazuma-d-sprintrw.pdf
https://lsnl.jp/~ohsaki/lecture/training/2024/priv/0710/society24-taisei-ats.pdf
https://lsnl.jp/~ohsaki/lecture/training/2024/priv/0710/society24-taiyo-RW.pdf
https://lsnl.jp/~ohsaki/lecture/training/2024/priv/0710/society24-yoshiteru-flnet.pdf
https://lsnl.jp/~ohsaki/lecture/training/2024/priv/0710/society24-yuito-qcoarse.pdf
https://lsnl.jp/~ohsaki/lecture/training/2024/priv/0710/society24-yuto-degree.pdf

課題

ネットワークアーキテクチャ研究室で執筆している原稿を読み、 それぞれの研究テーマの概要を理解せよ。 原稿中の記述に不明な箇所があれば、 それぞれの著者に確認せよ。 原稿中に誤字・脱字等に気付いたものがあればそれをそれぞれの著者に伝えよ。

レポート課題 2025-01-08

2024-09-25 のものと同じ。

https://lsnl.jp/~ohsaki/lecture/training/2024/#8-6


Hiroyuki Ohsaki (ohsaki[atmark]lsnl.jp)