タグ

ブックマーク / takehikom.hateblo.jp (20)

  • C復習学習案 - わさっきhb

    1年後期のCプログラミング講義を落とした人,または合格したけど勉強し直したい人に向けて,90分×14週で復習授業をするとしたら,どんな内容にすればいいか,ちょっと考えてみました. 学生は20名程度とします.教員は自分一人.ただし,復習教育に協力的な同僚がいるものとします.またTAが2名程度つくものとします. 1回の授業ですることは,毎回同じです. ソースファイルと問題文・解答欄が書かれた用紙(問題解答用紙)を受け取ります. よーいどんで,ソースファイルを打ち込みます. 問題の最初は,「これこれすると,出力がなになにとなることを確認しなさい」です.よーいどんから,最初の問題が正解するまでの所要時間を求めます*1. 問題の2番目以降は,そのソースファイルにちなんだ質問とします.例えば,指定した行の処理を記述する,関数の仕様を書く,使用している演算子を列挙する,ある入力を与えたときに指定行で変数

    C復習学習案 - わさっきhb
  • 続々・満年齢の計算 - わさっきhb

    慣習と法律とで,満年齢に違いが現れる日(生年月日と基準日のペア)を求めるプログラムを作りなさい.生年月日と基準日の範囲は,ハードコード(プログラムの中で決め打ち)してよい. 続・満年齢の計算 - わさっき 前のプログラムを修正します.まず if __FILE__ == $0 の行を if __FILE__ == $0 and false として,実行しないようにします*1.そして,以下のコードを追加します. if __FILE__ == $0 ac = Age.new birth_min = Date.new(1999, 1, 1) birth_max = Date.new(2000, 12, 31) today_min = Date.new(2004, 1, 1) today_max = Date.new(2005, 12, 31) birth_min.upto(birth_max) d

    続々・満年齢の計算 - わさっきhb
  • Thunderbirdのアドオン - わさっきhb

    先週から,メールクライアントをSylpheedからThunderbirdに切り替えました. Firefoxと同じく,Thunderbirdもアドオンを入れない状態では,何かと使いにくいので,いろいろ試しました.以下は,今後も使っていきそうなものばかりです. Attachment Sizes Japanese Alterations: 添付ファイルのサイズを表示 Change quote and reply format: 引用に詳細なヘッダを付与 Contacts Add BCC Button 日語版: 「Bcc」を追加 Enigmail: GnuPGで暗号化 Everyday (Thunderbird 用拡張機能より): メッセージリストペインで常に日付も表示 Header Toggle (http://kinshachi.ddo.jp/blog/comp/archives/00072

    Thunderbirdのアドオン - わさっきhb
  • ファイル処理を復習する - わさっきhb

    Linuxのターミナルを使っていて,学生に問われて*1即答できたりできなかったりしたことを,調べ直しました. カレントディレクトリにある全ファイルを,サイズの大きいものから順に並べるには ls -S ls -l | sort -k 5 -n -r テキストファイルの先頭7行だけを取り出すには head -n 7 ファイル名 head -7 ファイル名 テキストファイルの241行目の内容を,emacsなしで知るには sed -n 241p ファイル名 head -n 241 ファイル名 | tail -n 1 補足.何通りか書いたうち,最初のが一番洗練されていて,覚える価値があるもので,それ以外は,最初のが思い出せない時にひねり出そうかというものです. headやtailの「-行数」オプションは,推奨されないとなった記憶があるのですが,実行しても警告は出ません. ある行番号の内容を知るのに,

    ファイル処理を復習する - わさっきhb
    dosequis
    dosequis 2008/01/30
    lsとかのコマンドオプション
  • 満年齢の計算 - わさっきhb

    いきなりですが問題です. コマンドライン引数から生年月日の情報を受け取り,日の年齢を求めるプログラムを作りなさい. そしてすぐコードです. #!/usr/bin/env ruby require 'date' class Age def initialize(*b) case b[0] when Date @birth = b[0] when Integer @birth = Date.new(*b) else @birth = Date.new(1989, 1, 7) end # 年齢計算ニ関スル法律に基づき,誕生日の前日に満年齢を1加えるなら真 @bylaw = true end attr_accessor :birth def calc_age today = Date.today # 未来の人の年齢を求めることはできない return -1 if today < @birth #

    満年齢の計算 - わさっきhb
  • 夫婦円満の秘訣を - わさっきhb

    昨日は,の従妹の結婚式に出席しました. 手の込んだ演出をいろいろ入れてくれていました.余興の中でも,ビリーズブートキャンプを念頭に置いた運動*1に,新婦の父や新郎の父,そして新郎を巻き込み,最後に披露宴の全参加者で手をつないで「Victory!」をするのが楽しかったですね. 新郎新婦退場のあと,前方(メインテーブルの上)のスクリーンを見るようにと指示があり,見ると,エンドロールとして,披露宴の全参加者の名前と,それぞれに新郎新婦からの一言メッセージがついていました.いや,ほんとによく準備していたもので. さて,私とに対するメッセージは「夫婦円満の秘訣を教えてください」でした. これを我々に向けてくるとは.にしても,答えるのは難しい.ともあれ,ちょっと考えてみました. ここの日記では書かないし,研究室の学生に軽く言ったところで「ごちそうさまでした」と返されてばかりですが,毎日のように

    夫婦円満の秘訣を - わさっきhb
  • 1日1行カレンダー - わさっきhb

    いきなりですが問題です*1. カレンダーを生成するプログラムを作ってください. 1日1行で,1行の形式は「2007年12月30日(日)」とします. 祝日や休日は無視します. 開始日と終了日は,プログラムの中で直接指定します. 恣意的な仕様を書いたところで,早速,回答を. #!/usr/bin/env ruby require 'date' from = [2007, 12, 1] to = [2008, 3, 31] d_from = Date.new(*from) d_to = Date.new(*to) week = %w(日 月 火 水 木 金 土) d_from.upto(d_to) do |d| puts d.strftime("%Y年%m月%d日") + "(#{week[d.wday]})" end 技術メモ: 「Date.new(*from)」を「Date.new(from

    1日1行カレンダー - わさっきhb
  • 標準コーディングガイドライン - わさっきhb

    組込み現場の「C」プログラミング 標準コーディングガイドライン 作者: 福岡知的クラスタ(第1期)組込みソフト開発プロジェクト,福田晃出版社/メーカー: 技術評論社発売日: 2007/10/27メディア: 単行(ソフトカバー)購入: 3人 クリック: 48回この商品を含むブログ (8件) を見る他のコーディング指南書と比較して,このの特色を挙げるなら,間違いなく,検証ツールがCD-ROMで添付されていることでしょう.実行はしていませんが,pp.196-201の一覧を見ると,「うわすごい」の一言です. 「組込み現場の」(英語では "for Embedded Systems")と銘打っていますが,組込みに限らず,Cのコーディングで注意すべきこと,配慮するといいことが網羅されています.ガイドライン46の「変数には,実装方法ではなく対象の名前をつける」は確かに大切で,自分としては,授業用のソー

    標準コーディングガイドライン - わさっきhb
  • 1年生に贈るプレゼンテーションのコツ(4) - わさっきhb

    いよいよPowerPointのコツです.発表準備にかける時間の多くが,PowerPointの操作になるでしょう. なお,メニューなどの語句は,Microsoft Office PowerPoint 2003に基づいています.他のバージョンのPowerPointでは,異なっている可能性があります. PowerPoint スライド枚数の目安は,話す時間から割り出す. スライド1枚当たりの時間は,かつて「1ページにつき1分」と言われていたが,PowerPointの短時間プレゼンでは「1ページにつき40秒」を目安にするとよい.「1分に対して1.5ページ」,すなわち“分の5割増”で計算できる.例えば10分なら15枚となる. 時間をかけて説明したいスライドでも,時間は,他のスライドの2倍程度にする. アウトラインを確定させてから,テンプレートを変える.テンプレートは,メニューの「書式 / スライドのデ

    1年生に贈るプレゼンテーションのコツ(4) - わさっきhb
  • 「ゆとり世代」がなじめない - わさっきhb

    はじめに,今回のエントリは「いわゆるゆとり教育を受けてきた大学生になじめない」という意図ではないことを強調しておきます.それと,ゆとり世代とは何か,ゆとり世代以外に時系列的にどんな世代があるかについては,ゆとり世代 - Wikipediaがよくまとまっています. 先日,学内にて,現在の大学2年生からがゆとり世代で,アレができないだの,以前の学生なら当然知っていたことが分かっていないだのというぼやきを耳にしました. このぼやきを,裏づけのある正当な主張にするには,統計的なアプローチかなあと思い,自分の授業の過去問を調査してみました. 残念ながら,自分の科目では,ゆとり世代の前と後とで違いを知ることができる情報を残していないことが分かりました.以下,「ゆとり」から脱線します. 昨年度の小テストから,正解率の低い問題をふたつ,見つけることができたのでした. Xは,宣言文を実行するたびにオブジェク

    「ゆとり世代」がなじめない - わさっきhb
    dosequis
    dosequis 2007/12/10
    あとで復習する…
  • 「分数ができない大学生」を起点にいろいろ - わさっきhb

    発端は,「教育」という言葉を「社会」という言葉に置き換える - 今日行く審議会@はてな,そして昨日の毎日の社説です. 90年代に大学設置基準が緩和され、入試の負担軽減化も進んだ。一方で、「分数ができない大学生」など学生たちの基礎学力不足を指摘する声が国公私立を問わず目立つようになり、今では専門教育の前段に必要な高校レベルの「補習」をする大学が多くある。 http://mainichi.jp/select/opinion/editorial/news/20071126ddm005070060000c.html 「分数ができない大学生」はの名前で,ここでは象徴的に使用していますね.立ち読みした記憶があります.google:分数ができない大学生の上位から,気になったものを挙げてみます. データに基づいた議論は非常に重要であるが、そのデータには正当性が必要である。こののデータ(算数の問題)はや

    「分数ができない大学生」を起点にいろいろ - わさっきhb
    dosequis
    dosequis 2007/11/27
    論点・問題意識を整理するには丁寧に読んでいく必要があると。
  • 一言感想の書き方 - わさっきhb

    昨日の続きです. 学生のみなさんには,授業に限らず,出席した講演なんかで,一言感想を求められることがよくあると思います.論理的で緻密な意見ってわけではないけれど,「面白かった」なんてのでは貧弱ですね.そこで,アドバイスを. まず心構えとしては,「感想を書いてください」と最後に言われても書けるよう,よく聴き,メモをとることです.メモは整理されていなくてもかまいません.キーワードや,講演者/教員の発した「変なこと」でもかまいません.メモがあるとないとでは,聞いた内容を見直すときに差が出ます. さて,書き方ですが,大きく「言及されていた話題を一つ取り上げる」と「その場で聞いたこと以外を取り上げる」があります. 文末表現は,定番のものを覚えて,取り上げたものに合わせて選ぶのがいいでしょう.例を挙げてみますと 楽しかった 勉強になった {日常生活|他の授業}に活用していきたい 難しかったが,自分でさ

    一言感想の書き方 - わさっきhb
    dosequis
    dosequis 2007/11/26
  • 学んでほしいのは「とは力」 - わさっきhb

    昨日書いてから,いろいろ改訂したいことに気づきまして,新たにエントリを作りました. 表題にある「とは力」は,「とわりょく」と読んでください.「〜とは?」に着目して,物事を説明したり,物事の背後に潜んでいるものを発見したりする能力のことです. 物事を,それを知りたい人にとって分かりやすく説明する能力が,求められています. とりわけコンピュータについては,「苦手」や「アレルギー」を表明したり,あるいは「あんたコンピュータの学科出てるんだから知ってるでしょ」とか言ったりする,上の年代の人と仕事をすることになるかもしれません. あるいは,アルバイト先や就職活動でコミュニケーションをとるとか,塾や家庭教師で生徒に「先輩の顔」を見せるとかでも,「とは力」は大いに役立つでしょう. 「とは力」の基は,以下の問題意識です. Xとは,一言でいうと,何か? Xがあれば,どんなときに(何を対象として)何ができる

    学んでほしいのは「とは力」 - わさっきhb
    dosequis
    dosequis 2007/11/21
  • ポインタとは - わさっきhb

    ポインタはメモリアドレスです.ただし,ポインタは「そのアドレスにどんな型のデータが格納されているか」という情報を持つ点が,単なるアドレスと異なります. (例解UNIXプログラミング教室, p.27) きわめて明快な説明です.感動しました.明日の授業でポインタの説明をするのですが,急きょ,資料に取り入れました. ただ,直後の ポインタ操作の基は,アドレス演算(&),ポインタ変数の宣言(*),間接演算(*)の3つです. (同上) について,「ポインタ変数の宣言(*)」は,他の二つと別に説明するほうが,分かりやすいのではないかと感じます. よくあるポインタの間違い(pp.29-31)も興味深いです. ポインタの間違い(1): 未初期化ポインタ変数の間接演算 ポインタの間違い(2): 未初期化ポインタ変数を引数に渡す ポインタの間違い(3): 局所変数へのポインタを返り値にする について,いずれ

    ポインタとは - わさっきhb
  • 自分が使わないキーは? (1/2) - わさっきhb

    『UNIXショートカットキーハンディブック』の第1章 シェル編で,自分が使わないキーバインドを調べてみることにしました.まずは前半,pp.32-44上です.自分が使うキーは,説明が少なめです. Ctrl+U …たまに使う. Ctrl+W …よく使う. Ctrl+K …Emacsと同じ.たまに使う. Ctrl+Y …Emacsと同じ.よく使う. Ctrl+Z …たまに使う. Ctrl+C …よく使う. Ctrl+D …コマンドの先頭で押せばすれば,シェル終了.よく使う. Ctrl+B, Ctrl+F …Emacsと同じ.たまに使う. ←, → …Emacsと同じ.よく使う. Ctrl+H …Emacsと同じ(設定次第).使わない. BackSpace …Emacsと同じ.よく使う. Ctrl+D …Emacsと同じ.カーソル文字の削除.よく使う. Ctrl+A, Ctrl+E …Emacsと

    自分が使わないキーは? (1/2) - わさっきhb
  • 続・CUIスキル向上〜エイリアス - わさっきhb

    キータイプ数を減らすために,コマンドの別名(エイリアス)を積極的に活用するのもいいでしょう. alias memo='cat > /dev/null' alias ymd="date +%Y%m%d" alias la='ls -aFl --color --show-control-chars' alias ..='cd ..' ~/.bashrcに書いておいて,新たにシェルを起動すると,「memo」で,自由にテキスト情報を書くことができます(行頭にC-dをタイプすれば,終了です).「ymd」は,YYYYMMDD形式の文字列を出力します.今日実行したら20071025です.「la」は,lsの詳細表示になります. ~/.bashrcに書くのではなく,一時的に,頻繁にコマンドを実行したいとき,「alias z='コマンド名'」を実行すれば,以後は「z」だけです. コマンドライン引数をとりたけれ

    続・CUIスキル向上〜エイリアス - わさっきhb
  • 続・CUIスキル向上 - わさっきhb

    シェル*1の便利なキー操作を習得しましょう. 上矢印を使って,前に実行したコマンドは打ち直さないようにします. 長いファイル名は,先頭何文字かを打ったらTabで,補完できます.2度Tabを叩いて,補完ができなかったら,複数候補があるか,タイプミスをしています*2. C-a*3でコマンドラインの先頭に移動,C-eで末尾に. BackSpaceは直前の文字を消すのに対してwhile,C-dはカーソル上にある文字を消します. M-b*4で,カーソルが前の単語へ移動します.M-fなら,次の単語です. 「cc programc.」と打ち間違えたら,C-tとすると,「cc program.c」に変わります*5. コマンドラインに何もタイプしていない状態で,C-rとすると,「(reverse-i-search)`':」などと出てきます.過去のコマンドを検索してくれます.2〜3文字打ってみてください. M

    続・CUIスキル向上 - わさっきhb
  • 2007年10月22日 - わさっきhb

    その1 ファンタジーの法則というのは,結城浩さんという方が著書の『プログラマの数学』の中で提案しているものです.問題があって,漫然と答えのほうに向かっていると,どうも答えが出るまで手間がかかる,あるいは答えに行きつかないかもしれない,というときに,いったん別世界a different world*1に移動し,そこでの解を求めて,もとの世界に戻れば,すっきり問題が解ける,というものです.の中には「高速道路の法則」とも書かれていました. これは,満員の和歌山バスで降りたいときにも使えるんですね.先日,大学発のバスに何とか入り込めたんですが,事情で,途中の貴志というバス停で降りないといけなかったんです.バス停に着いたとき,普通に通路を歩いていると,時間がかかりすぎるし,立っている人に迷惑がかかりすぎるなと思いまして,大きな声で運転士さんに「後ろ,開けてください!」と言いました.開いたら,そこか

    2007年10月22日 - わさっきhb
    dosequis
    dosequis 2007/10/29
    -ファンタジーの法則というのは,結城浩さんという方が著書の『プログラマの数学』の中で提案しているものです.
  • プログラミング能力底上げの手段を可能な限り挙げてみる - わさっきhb

    授業改善 プログラミングの時間を増やす 予習? 復習? 発展問題? そもそも今何時間やってるの? 時間と能力の関係は? どんな能力? どう測る? 問題をたくさん解く 問題を作る? これまでの授業の問題を,整理する? 問題集を使う? 正解をチェックする方法は? 授業で伝えたいことがおろそかになる? プログラムの組立(設計)を重視して説明する どの科目で? 科目(教員)間でばらばらでは? 情報整備 いつの時点で何を学んでおくべきかを提示する 既にある? Unixに依存しないようにできるか? 発達課題のプログラミング版? 学生がを紹介する 誰が誰に紹介する? 協力してくれる? リファレンスを整備する 誰が整備する? 情報源は? 成果物の権利は? 配布範囲は? 1年〜4年・院生が使える? 内容は要検証では? 更新はどうする? 段級位をつくる 誰が設置,管理する? 有効範囲は? 権威付けは? 大学

    プログラミング能力底上げの手段を可能な限り挙げてみる - わさっきhb
    dosequis
    dosequis 2007/10/14
  • 持続可能なプログラミング技能向上 - わさっきhb

    昨日から後期授業が始まりました.私も,これまで金曜だった講義が月曜に移動し,1年生を前に少し緊張しながらしゃべりました.内容は昨年とほぼ同じなのですが,終わりの10分に,他の先生が安全教育をされるということで,時間の配分に苦労しました. さて,後期も自主演習を企画することにしました.例のごとく直接リンクはしませんが,参加者募集のPDFファイルをダウンロードできるようにしています. 今回の自主演習を一言でいうと,「K&Rの輪講」です.は和訳のほうを使います*1.各学生がこれまでの授業や自主演習で持っている経験を前提として,「原典」「バイブル」と言われるを読み,より深く理解してもらおうというものです. 分担して読むだけでは面白くないので,少し工夫を試みています.サンプルコードをもとに,準備のときに「動くコード」または「代替コード」を作ることと,最終的に後輩が学習するアドバイスになるよう取り

    持続可能なプログラミング技能向上 - わさっきhb
    dosequis
    dosequis 2007/10/14
  • 1