[サイトマップ] [トップページ]

トップページ > 授業のページ > コンピュータII >
授業内容・実習課題等

標題 更新日
第14回(7/17)課題 7/17 Wed 15:06 1. 自分で作成した数字画像をニューラルネットワーク (chapter11) のプログラムで認識させ,プログラムの出力をホームディレクトリのファイル test?_tf.out に入れなさい。ここで ? は描いた数字である。

2. 教科書 p.304 の図に記された,入力 x ,重み W,バイアス b の値から,出力 y を計算するプログラム comp14.py を実習用コンピュータのホームディレクトリに作成して実行しなさい。Numpy による行列の演算を使うこと。
また,これらの重み W とバイアス b に対して,別の入力の値を与えて,出力を計算するコードを追加しなさい。
さらに,複数の入力に対する出力を計算するために,2つの入力を行列として用意することによって,1回の行列計算で2つの出力を計算するコードを comp14.py に加えるのが望ましい。
(複数の入力から行列の計算で出力を得るには,バイアス b も行列である必要があるが,Numpy の機能(ブロードキャスト)によって,必要に応じて b は適切なサイズの行列として扱われる)
第13回(7/10) 課題(第11,12回の整理) 7/10 Wed 16:12 1.【前回までの実習内容の整理】自身で書いた手書き数字の画像ファイルを,ホームディレクトリにファイル名 test?.png (ここで ? は自分で手書きした数字とする)として作成しなさい。
この数字画像をロジスティック回帰のプログラムで認識させ,プログラムの出力をホームディレクトリのファイル test?.out に入れなさい。
(実行方法は次のとおり。? には数字を入れる)
cd /pub/comp2/sample/chapter10/
python3 lr_user.py ~/test?.png |tee ~/test?.out

2.【前回実習内容の整理と認識率計算】学習済みモデルを利用してテストだけを行うプログラム lr test.py と,MNIST の 60000 個の学習データで作成したモデルを利用して,MNIST の 10000 個の数字データの認識実験を行い,出力をホームディレクトリのファイル lr_test.out に保存しなさい。
さらに,自分で手書きしたのと同じ数字のみの認識率(正解率)を計算し,lr_test.out の最後の行に,式と認識率を追記しなさい。
(実行方法は次のとおり)
[konno@as chapter10]$ python3 lr_test.py |tee ~/lr_test.out
認識を求める式と計算結果をファイルに追記するには vi を使えば良い。

第10回(6/19) 実習課題 6/19 Wed 16:04

第10回 プログラミング実習課題

  1. [comp10-1.py]まず,次の数表を出力するプログラムを作りなさい。 N の列以外の値は計算で求めるようにすること。 続いて,プログラム実行時にコマンドラインの引数としてファイル名を与え,そのファイルに数表を保存するようにプログラムを変更しなさい。
    N       10*N    100*N   1000*N
    
    1       10      100     1000
    2       20      200     2000
    3       30      300     3000
    4       40      400     4000
    5       50      500     5000
    6       60      600     6000
    7       70      700     7000
    8       80      800     8000
    9       90      900     9000
    10      100     1000    10000
    

  2. [comp10-2.py]下記のように,x とその平方根の一覧を表示するプログラムを作りなさい。
       x  sqrt
    0.00  0.00
    0.25  0.50
    0.50  0.71
    0.75  0.87
    1.00  1.00
    1.25  1.12
    1.50  1.22
    1.75  1.32
    2.00  1.41
    2.25  1.50
    2.50  1.58
    

  3. [comp10-3.py]キーボードから入力した摂氏の温度を華氏に変換して表示するプログラムを作りなさい。 ただし,以下の要件を満たすように作ること。
    • 摂氏温度として小数点付きの数を入力できるようにすること。
    • 摂氏を華氏に変換する関数 cels2fahr を定義して呼び出すようにすること。 摂氏の温度を x とし,華氏の温度を y とすれば,両者の関係は
      $\displaystyle y = \frac{9}{5} x + 32
$
      である。 例えば,摂氏25度は華氏77度である。

  4. [comp10-4.py]キーボードから 3 つの整数を読み込んで, それらを三辺の長さとする三角形が成立するならば, 三角形の面積を計算して表示するプログラムを作りなさい。

    三辺の長さを a, b, c とすると, a + b > c, b + c > a, c + a > b の条件をすべて満たすならば,三辺は三角形を構成する。

    また,三辺の長さから三角形の面積 S を求める式は次の通りである。

    $\displaystyle S = \sqrt{t(t - a)(t - b)(t - c)},\ t = (a + b + c) / 2
$



第9回(6/12) 実習課題 6/12 Wed 17:45 サイコロ振り1000回をシミュレートするのにかかった時間を,プログラムの開始時刻・サイコロの出目,終了時刻とともに,コマンドラインの引数で指定したファイルに書き込むプログラムを,ファイル名 comp9.py として作りなさい。
日時・時刻を得るには datetime モジュールのメソッド datetime.now() を使うことができるが,このメソッドが戻すオブジェクト(インスタンス)を文字列として扱うには,str() 関数を使ってオブジェクトを文字列に変換すればよい。整数を書き込む場合なども同様である。
また,できればファイルのオープンでは with を使うとよい。
さらに,キーボードから入力した回数だけサイコロ振りのシミュレートを行ったり,表示を見やすくするなど,改良を施すとなおよい。

<実行例>
[konno@as comp2]$ python3 comp9.py test.txt
[konno@as comp2]$ cat test.txt
2024-06-12 15:37:32.535803
664364356245544364633542 ... 153123456121244353436161655566523425
2024-06-12 15:37:32.540881
0:00:00.005078
第8回(6/5) 実習課題 6/5 Wed 16:00 自分で考えたクラス定義を含むプログラムを,ファイル名を comp8.py として実習用コンピュータ(の自分のホームディレクトリ)に作りなさい。ただし,以下の条件を満たすプログラムとすること。
- __init__ メソッドを使って,インスタンス生成時にデータ属性を設定する
- インスタンスを生成し,データ属性やメソッドを使って何らかの処理をする
- クラス属性を使う
- クラスの継承を使う
- 静的メソッドあるいはクラスメソッドを使う
これらに限らず,今回学んだ機能をできるだけ使ってみてください。
第7回(5/29) 実習課題 5/29 Wed 17:53 自分で考えたクラス定義を含むプログラムを,ファイル名 comp7.py で実習用コンピュータに作りなさい。 クラス定義にはメソッドとクラス属性の定義を含めること。 また,__init__ メソッドを使ってインスタンス生成時にデータ属性を設定するプログラムとすること。 インスタンスを使って,何らかの処理をするプログラムとすること。 複数のインスタンスを生成すること。
第6回(5/22) 実習課題 5/22 Wed 17:45 リスト,タプル,集合,辞書,のすべてを含むプログラムを,ファイル名 comp6.py で実習用コンピュータに作りなさい。 各データ構造に格納するデータは各自で考えることとするが,作成したデータに対する種々の操作を行った結果を表示するようなプログラムとすること。各データ構造について,その特徴がわかるような操作を必ず一つ以上含めること。 また,内包表記の利用も試しなさい。
第5回 (5/15) 実習課題 5/15 Wed 17:58 下記の指示に従い,comp5.py というファイル名で python プログラム(スクリプト)を作成し,実行しなさい。

1. 二次関数 a*x^2 + b*x + c の値を計算する関数 quad を定義しなさい。
ここで ^ はべき乗を表すものとする(^ は python で使える演算子ではない)。
関数 quad は 4 つの引数を持つこととし,最初の引数は x の値を受け取り,2番目以降の引数で a, b, c を受け取るものとする。
さらに,quad の引数 a, b, c はデフォルト値を持たせることによって,引数を一つだけ与えると
x^2 の計算結果を返すこととする。

2. quad を以下のように呼び出して結果を表示する部分を加えなさい。実行結果が正しいことを確認しなさい。

quad(3)
9
quad(3,2)
18
quad(3,2,1)
21
quad(3,2,1,-1)
20

3. 関数 quad を使って,1, 2.5, 3, 4.5, 5 の各数の 2 乗を求めて表示するコードを加えなさい。
繰り返しの構文 (for) を使うこと。
さらに,map 関数とラムダ式を用いて関数を呼び出すコードも追加するとなおよい。
第4回 (5/1) 実習課題 5/1 Wed 15:31 1 から 99 までの自然数のうち,与えられた複数の性質を全て満たす数を列挙するプログラムを作りなさい。ただし,for と range 関数を用いた繰り返しと,論理演算子を使うプログラムとすること。
プログラムはファイル名を comp4.py として次回授業の前日までに作成すること。
数の性質は各自で考えること。また,その性質に応じた適切な範囲の自然数を扱うなど,プログラムを発展的に変更して構わない。
第3回実習課題 4/24 Wed 15:53 下記の動作をする python プログラムを comp3.py というファイル名で作成し,実行しなさい。下記の 1. から 4. は comp3.py に追記していくこと。
なお,インタープリタではない実行方法(スクリプト)において文字列等を表示するには,明示的に print 関数を使う必要がある。
また,下記の課題の下のカッコ ( ) 内はプログラムによって出力されるべきものである。
==================================================================================================
1. 文字列 s を
s = 'abcdefghijklmnopqrstuvwxyz'
とする。文字列 s から 'student' という文字列を作り,それを str1 という名前で定義し,その内容を表示しなさい。

2. 次に,文字列 s から 'stu' と 'hak' の二つの文字列を作り,これらを要素とする(二つの要素からなる)リスト list1 を定義して,その内容を表示しなさい。
(['stu', 'hak'])

3. 更に,append メソッドを使って,list1 に 'hak' を追加し,list1 の内容を表示しなさい。
(['stu', 'hak', 'hak'])

4. 最後に,list1 の二つの 'hak' の間の要素として 'grad' を挿入した後,最後の要素を 'sap' に変更した上で,,list1 の内容を表示しなさい。
(['stu', 'hak', 'grad', 'sap'])
==================================================================================================

第1回授業 4/10 Wed 15:21 1. 実習用コンピュータの利用

実習用コンピュータ(名前は as)にログインします。これは,コンピュータ・プログラミングなどで使っているコンピュータです。

2. Python の初歩

実習用コンピュータでは
python3
というコマンドによって「Python インタープリタ」を起動できます。
quit()
によって終了できます。

教科書 第2章 はじめての Python プログラミング
2.1 Python の基本の「き」 (p.22 - p.32)
を読んで学習してください。

だだし,教科書でコマンドプロンプトに直接 python などと入力している箇所は,実習用コンピュータにログインしてから python3 などのコマンドを実行するように読み替えてください。
日本語を入力する箇所は,英語やローマ字に置き換えてください。

(p.26)
Python のプログラムを作成してファイルに保存するにはエディタを使います。
例えば,教科書 p.26 の「ファイルに保存したプログラムを実行する方法」の test.py というファイルを実習用コンピュータで作るには vi などのエディタの利用が必要です。
実習用コンピュータでは vi や Emacs 等のエディタが利用可能で,vi の使い方の簡略な説明を含む資料はコンピュータプログラミングIのページに
「UNIX コマンドと vi エディタ」
として置いてありますので,必要に応じて参照してください。

(p. 30)
pycodestyle は実習用コンピュータにインストール済みですので,
pip や pip3 は実行しないでください(一般ユーザの権限ではできません)。 

以上は次回授業の前日(4/16)までに行ってください。


[サイトマップ] [トップページ]