情報領域演習第三

が投稿

FAQ

全然書けない > まずC言語を復習しよう

  • 図書館で適当にC言語の入門書を借りて一冊真面目に読み込んで、自分でコードを書いて理解しましょう。
  • I類情報系科目自習の集まり を活用しましょう。

どこがおかしいかわからない > 誰かに話してみよう。

標準入出力がわからない。

以下のとおりです。

  • ctrl + d: EOF(End Of File)
  • ctrl + c: 割り込み(Interrupt)。SIGINTを送る。
  • ctrl + z: 一時停止。SIGTSTP(SIGnal Terminal SToP)を送る。

欠席する。

教員にメールし、次回出席する際には欠席届けを提出してください。欠席届けの詳細は教務課のサイトを確認ください(2019学生生活の手引きのP18参照)。

Tips

I類情報系科目自習の集まり

  • 目的:自習。自分でやってみて分からないところをTAに聞く。
  • 日時:毎週木曜5限(2019年10月17日~2020年1月30日)
  • 場所:CED(西9二階計算機室)のエリア5
  • 詳細:http://gakushokutv.ce.uec.ac.jp/cedstudy.html

出力を反例と比較する方法 → ファイル出力して、hexdumpでみる。

hexdumpに関してはGeneral Commands Manualをご確認下さい。

 
# 反例を表示(*.outファイルが出力例、*.inが入力例です)
$ hexdump -C counterexamples/hogehoge.out
00000000  42 69 67 0a 42 69 6e 67  0a 42 69 6e 67 6f 0a     |Big.Bing.Bingo.|
0000000f
# 自分のコード(code.c)からの実行ファイル(foo)をつくる
$ gcc -o foo -std=c99 code.c
# 自分のプログラムの実行ファイル(foo)に
# 反例の入力例(hogehoge.in)を入れたときの結果(result.txt)を出力する
$ ./foo < counterexamples/hogehoge.in > result.txt 
# 自分のプログラムの出力を見る
$ hexdump -C result.txt 
00000000  00 42 69 67 0a 00 42 69  6e 67 0a 00 42 69 6e 67  |.Big..Bing..Bing|
00000010  6f 0a                                             |o.|
00000012

自宅からCEDにアクセスする方法

$ ssh UECアカウント@yellow99.ced.cei.uec.ac.jp
  • またはsol経由でアクセスする。詳細は2017度受講学生のページを参照下さい。
  • オススメ自宅のマシンにもVScodeをインストールして、Remote – SSH等のExtensionをインストールしてcedにアクセスするのがいいです。

サクサク書きたい > visual studio codeを使おう

  • CEDの管理者にお願いしてvisual studio codeを導入してもらったので、活用してください。

デバッカを使いたい > gdbを覚えてみよう

下記サイトにgdbの手順が書いてあります。法政大学情報科学部・情報科学研究科のコンピュータ資源を管理している学生有志によるチームによるページらしく、とても丁寧に記載されています。

参考書

アルゴリズム

アルゴリズムの自習用の参考図書をあげています。
上にあげているもの入門書で、徐々に本格的な書籍になります。書籍名の下に授業で扱う内容が書かれたページを追記しました。授業でつまずいたときはそのページをよく読んでください。

  • アルゴリズムを、はじめよう
    伊藤 静香
    Amazon: https://www.amazon.co.jp/dp/4844332015/
  • アルゴリズム図鑑 絵で見てわかる26のアルゴリズム
    石田 保輝
    Amazon: https://www.amazon.co.jp/dp/4798149772/
  • 改訂第4C言語によるはじめてのアルゴリズム入門
    河西 朝雄
    Amazon: https://www.amazon.co.jp/dp/4774193739/
  • 新・明解C言語で学ぶアルゴリズムとデータ構造 (明解シリーズ)
    柴田 望洋
    Amazon: https://www.amazon.co.jp/dp/4797390522/

    • ③ p173-201: 第5章 再帰的アルゴリズム
    • ④ p143-169: 第4章 スタックとキュー
    • ⑤ p333-383: 第9章 線形リスト
  • プログラミングの宝箱 アルゴリズムとデータ構造 第2
    紀平 拓男
    Amazon: https://www.amazon.co.jp/dp/4797363282/

    • ③ p137-147: 第5章 再帰呼び出し
    • ④ p97-126: 第4章 スタック&キュー
    • ⑤ p70-p83: 第3章 リスト
  • セジウィック:アルゴリズムC 1~4基礎・データ構造・整列・探索
    ロバート セジウィック
    Amazon: https://www.amazon.co.jp/dp/4764905604/

    • ④ p121-123: プッシュダウンスタック抽象データ型
    • ⑤ p80-97: リンクによるリスト、初等的なリスト処理、リストに対する記憶領域の割付け
  • アルゴリズムイントロダクション 第3版 第1: 基礎・ソート・データ構造・数学 (世界標準MIT教科書)
    T. コルメン
    Amazon: https://www.amazon.co.jp/dp/4764904063/

コンピュータサイエンス

計算機そのものに関する本としては、下記の書籍がおすすめです。Computer Scienceにおける基礎的な内容をギュッと凝縮した本で、計算量・データ・アルゴリズム・データベース・アーキテクチャ・言語などが書かれています。

  • みんなのコンピュータサイエンス いま知っておきたいIT技術を支える基礎教養
    Wladston Ferreira Filho(著), 小山 裕司(監訳)
    Amazon:        https://www.amazon.co.jp/dp/B07KXP79Y9/
    Honya Club: https://www.honyaclub.com/shop/g/g19498276/

    • ③ p63-66: 動的計画法
    • ③ p45-46: 再帰処理
    • ④ p77-78: スタック
    • ④ p78-79: キュー
    • ⑤ p79-85: リスト、配列、連結リスト
    • p86-90: 木、二分探索木
    • p99-102: グラフ

コーディングマナー


アルゴリズムだけではなく、コーディング自体の書籍としては、下記の書籍がおすすめです。

Linux

Linux関係の本では、下記の書籍がおすすめです。Linuxプログラミングの本で、プログラムを通してLinuxの基本的な動きを理解できるようになります。

  • ふつうのLinuxプログラミング 第2版 Linuxの仕組みから学べるgccプログラミングの王道
    青木 峰郎
    Amazon:        https://www.amazon.co.jp/dp/4797386479/
    Honya Club: https://www.honyaclub.com/shop/g/g18879493/

    • p3-24: Linux プログラミングを始めよう(gccビルドとか、コマンドラインの話があります)
    • p76-79: 5.3 標準入力、標準出力、標準エラー出力
    • p179-194: 第9章 Linuxのディレクトリ構造

その他

下記サイトの情報も参考になります。