[ トップに戻る ]

2024年度 : プログラミング1


第1回: 卓上プログラミングによる開発設計概観、Pythonインタプリタの起動と逐次処理・変数の利用


第2回: Pythonインタプリタとスクリプトの体験、計算的思考


第3回: 関数定義とその動作、デバッグ実行入門


第4回: 条件分岐


第5回: ループ処理


第6回: 振り返り


第7回: シーケンス、リスト型、辞書型、集合


第8回: ファイル入出力、型ヒント、ドキュメンテーション


第9回: doctest、スタックフレーム、関数のデフォルト値

  • ミニテスト

    出欠確認を兼ねています。必ず回答ください。

    知能情報コースのG-mailアドレス「@ie.u-ryukyu.ac.jp」でログインしてください。

  • [講義資料]
  • 課題レポート5: 基本的な自然言語処理を実装してみよう(その2)。
    • 提出先: Googleドライブのreport5を開き、自身のアカウント名でフォルダを作成し、そこにレポートおよびソースコードをアップロードせよ。
    • 〆切: 第11回の講義日。

    第10回: 振り返り2、JupyterLabとNumpy入門


    第11回: デバッグ演習2、正規表現の紹介、モジュール

    • オンデマンド:2023prog1-week11-ondemand.mp4 (約26分)
    • 今週のお告げ:自分なりに振り返って整理しよう。用途や向き不向きがあるため自分に合った整理ツール探してみよう。
    • ミニテスト

      出欠確認を兼ねています。必ず回答ください。

      知能情報コースのG-mailアドレス「@ie.u-ryukyu.ac.jp」でログインしてください。

    • [講義資料]
    • 課題レポート6: コード読解
      • 提出先: Googleドライブのreport6を開き、自身のアカウント名でフォルダを作成し、そこにレポートおよびソースコードをアップロードせよ。
      • 〆切: 第13回の講義日。

    第12回: 浮動小数点の取り扱い、抽象化&再帰関数


    第13回: 例外とアサーション


    第14回: バージョン管理システム Git入門


    第15回: 振り返りと今後の道標





    以下は昨年の資料です。参考まで。



    参考文献・サイト

    • chart for python learners: Python勉強する際の情報源を目的別に整理したもの。
    • 教科書・参考書
      • 教科書: 世界標準MIT教科書 Python言語によるプログラミングイントロダクション 第3版: 授業では「Part 1 (Chapter 7まで)」をメインに取り扱います。約100ページ。これを4回は読もう。余裕がある人は Chapter 9 以降に取り組んでみよう。必ずしも順番通りに進める必要はなく、目次や索引を眺めて興味のあるところから手を付けると良いです。
      • UNIXという考え方: いわゆるUNIX哲学(下記)を学べる本。ただし癖の強い訳語も多いので、やや読みにくい。
        [UNIX哲学] 「一つのことを行い、またそれをうまくやるプログラムを書け。協調して動くプログラムを書け。標準入出力(テキスト・ストリーム)を扱うプログラムを書け。標準入出力は普遍的インターフェースなのだ。」
      • なぜ、あなたはJavaでオブジェクト指向開発ができないのか: Javaでの話になっていますが、プログラミング全般に共通する話題です。プログラミングにアレルギー持ってる人向けの「取り組み方処方箋」。
      • オブジェクト指向でなぜつくるのか 第2版: プログラミングの歴史を踏まえつつ、どのような意図で言語が開発・改定されされているのかという側面から「オブジェクト指向」の特徴を紐解く一冊。
      • 情報科学入門 Rubyを使って学ぶ: 本講義で使用する教科書の Chapter 9 以降に近い位置づけ。Python以外にも触ってみたい、情報科学ってなんだろうという視点から取り組んでみたいという人向け。
      • 大学生のためのリサーチリテラシー入門: 研究のための8つの力: 物事についてどう調べ、整理し、まとめるのかという「大学生に求められる力」を整理し、取り組み方について解説している本。全員、早い段階で一読することを強くお勧めします。
      • Learning Python: ガチでPythonマスターを目指したい人向け。1600ページ。
      • Pythonチュートリアル 第3版: 例題中心に進みますので、動かしながら動作を確認するには向いています。ただし、これだけだと「言われたことをやる」レベルに留まりがち。
      • 入門Python 3: Python3の構文から一通り学ぶための入門書。
    • 独習サイト (主にPython)
      • Code Studio(言語を問わず、用意されたブロックを組み合わせてパズルを解く形でプログラミング全般の考え方を学べるサイト。)
      • Progate(初めてプログラミングする人向けのオンライン講義&演習。1つのコンテンツは数分程度の分量に細分化されてて、かつ、コードを自動採点するシステムが提供されています。)
      • paiza(初めてプログラミングする人向けの動画講義。1つのコンテンツは数分程度に細分化されてて、かつ、コードを自動採点するシステムが提供されています。独習の進め方としては「数分動画閲覧して、自動採点される課題に取り組む」を繰り返すことになります。)
      • ドットインストール(paiza同様、1つのコンテンツが数分程度の動画に細分化されて提供されてます。Python以外にも多数の言語や環境について学べます。)
      • プログラミングコンテスト(Web参加可能なコンテストサイトを整理してます。日時指定があるものが多いですが、過去問やコード例が公開されてるサイトもあります。)
      • CheckiO(課題をこなすことで先にすすめるゲーム型のサイトです。コード例も豊富。基本的には英語。)
      • CodingBat(課題が多数例示されています。サイト上でコードの動作確認をすることも可能。)
      • 言語処理100本ノック 2015(特定分野に偏っていますが、課題が難易度別に提供されてます。UNIX思想も含まれてます。)
      • NLPプログラミングチュートリアル(こちらも特定分野に偏っていますが、「解説資料+演習+コード例」を見ながら勉強できます。)
      • Python公式ドキュメント: [ 英語版 | 日本語版 ]
      • pygame(ゲーム開発を通して学びたい人向け?)
      • Code School(一部無料コースあり)
      • CodeIQ(いろんな人が提示する課題に挑戦できるサイト。面白い問題を探すもよし、手当たり次第解くのもよし、どういう組織が関わってるか嗅ぎまわるもよし。)
      • codecademy
    • その他