2026年度 : プログラミング基礎
- シラバス *科目番号を間違えないように!下記2科目の同時開講です。
工共114「プログラミングI 7組 知能情報コース(2024年度以前の入学生)」
工共121「プログラミング基礎 7組 知能情報コース(2025年度以降の入学生)」
- 講義用連絡網(Teams): CLS_2026プログラミング基礎
- 連絡先:
- 當間愛晃 (Naruaki TOMA)@工1-705
- オフィスアワー: 木3
- E-mail: tnal@ie.u-ryukyu.ac.jp
- 旧Twitter: @naltoma
- サポーターの皆さん: 技術職員&TA (Teaching Assistanct)
- 技術職員・小林夏樹さん@地創棟506: 授業サポート、マシントラブルサポート等を担当。
- TA2名。主に授業中のサポートを担当。
- TA1:永田平さん@NAL研M1
- TA2:末岡さん@NAL研M1
- 講義資料
- 第1回: プログラミング概観、Pythonインタプリタの起動、逐次処理、変数の利用
- 第2回: Pythonインタプリタとスクリプトの体験、計算的思考
- 第3回: 関数定義とその動作、デバッグ実行入門
- 第4回: 条件分岐
- 第5回: ループ処理
- 第6回: 振り返り1
- 第7回: シーケンス、リスト型、辞書型、集合
- 第8回: ファイル入出力、型ヒント、ドキュメンテーション
- 第9回: doctest、スタックフレーム、関数のデフォルト値
- 第10回: 振り返り2、JupyterLabとNumpy入門
- 第11回: デバッグ演習2、正規表現の紹介、モジュール
- 第12回: 浮動小数点の取り扱い、抽象化&再帰関数
- 第13回: 例外とアサーション
- 第14回: バージョン管理システム Git入門
- 第15回: 振り返りと今後の道標
- 参考文献・サイト
第1回: 卓上プログラミングによる開発設計概観、Pythonインタプリタの起動と逐次処理・変数の利用
- 今週のお告げ
授業中に分からないことは、自分から尋ねよう。
授業後に疑問が出てきたら、まずは授業資料/教科書/検索してみよう。10分程度調べて解決できなければ相談しよう。生成AIに尋ねるのも良いけど、間違った答えを返すことがある点に注意。プログラミングに限って言えば「実行して動作確認する」ことがしやすいので、話を鵜呑みにせず動作確認をしよう。
- ミニテスト: 今週はアンケートのため採点対象外。
演習後に回答時間を設けます。出欠確認を兼ねています。必ず回答ください。
知能情報コースのG-mailアドレス「@ie.u-ryukyu.ac.jp」でログインしてください。
- [環境構築]
2026年度に初めて環境構築する人向けの説明です。4月のインストール大会に参加した人はスキップして構いません。再履修者は環境構築済みだと思いますので、スキップしてください。
- 授業中の質問について
- 対面参加者は手を上げよう。
- オンライン参加者は「質問相談」チャンネルに相談内容を書こう。
- 授業時間外の質問相談について
- Teamsの質問相談チャンネル推奨。(誰かの質問は皆の学びに繋がります)
- [講義資料]
- 第1回: プログラミング概観、Pythonインタプリタの起動、逐次処理、変数の利用
*このページ上部のアイコンが並んでいる部分から下矢印を選び、pdfを選択すると授業資料をPDF形式でPCに保存できます。
3.2.1節〜3.2.3節は授業中はスキップします。時間のあるときに読んでみよう。
- 第1回: プログラミング概観、Pythonインタプリタの起動、逐次処理、変数の利用
- 課題レポート1: print()関数と変数の利用、用語整理。
- 提出先: Googleドライブのreport1内の各自アカウント名。今回はテンプレートを用意済み(再履修者は自分でフォルダを作成し、sampleをコピーして利用してください)。
- 課題に取り組む前に、報告者欄を自身の学籍番号と氏名に編集すること。協力者欄は何らかの形で誰かと相談等しながら取り組んだ場合には、書いてください。特になければそのままで構いません。
- レベル4まで終えたら、実施日欄の年月日を編集すること。
- 〆切: 第3回の講義日。
- 授業後の質問相談について
- Teams, もしくはメールを利用ください。できるだでクラス共有したいので、できればDMは避けてください。どうしてもDMが良い人はDMでも構いません。
- 困っているのは何か。どうやろうとしたのか。どう駄目だったのか。
- 例: 課題レポート1のLevel2で困っている。変数使っているつもりだがエラーが出る。具体的に書いたコードは○○。実行すると○○と出力されており、想像と異なる。
- 来週以降の授業の進め方
- 約30分のオンデマンド授業 + 当日約60分の教室授業
- オンデマンド授業は、Teamsにアップロードしてあるオンデマンド用コンテンツ(動画)を指します。これを毎週講義日前までに各自で取り組んでください。閲覧だけで済む場合もありますし、実際に手を動かす演習を含むこともあります。
- 録画時間が30分超過することもありますが、全体として平均30分を超えないように調整します。(ので、たまに超えてる日については許してください)
- 授業当日は、9時開始とします。8:30に来なくても構いません。ただし教員とサポートスタッフは8:30から教室待機しています。授業開始前の時間帯は、先週授業やオンデマンド授業、課題などに対する相談対応の時間として利用できます。友人らとの相談や雑談に使ってもらっても構いません。
- 関連リンク
第2回: Pythonインタプリタとスクリプトの体験、計算的思考
- オンデマンド:2023prog1-week02-ondemand.mp4 (復習込み37分)
- 今週のお告げ: 課題の提出方法。
期限内にGoogleドライブの指定箇所に提出。課題1はこちらで用意していたので、編集し終えるだけで提出したことになります。締め切り後、採点する際に編集されているところまでをチェックします。課題2以降は自身でフォルダやレポートファイルを作成することになります。
- ミニテスト
Teams参照
- [講義資料]
- 第2回: Pythonインタプリタとスクリプトの体験、計算的思考
*オンデマンドで「4.4 スクリプトの利用」終了。
4.3節 str.formatは来週以降にやる予定。
- 第2回: Pythonインタプリタとスクリプトの体験、計算的思考
- 関連リンク
- 備忘録
課題1の〆切は来週講義日です。
第3回: 関数定義とその動作、デバッグ実行入門
- オンデマンド:2023prog1-week03-ondemand.mp4 (約22分)
- 連絡: 学サポについて。
毎週月曜日の4限, Google Meetにて。Teams「相談対応」参照
- ミニテスト
Teams参照
- [講義資料]
- 課題レポート2: 関数定義と条件分岐に慣れよう
- 提出先: Googleドライブのreport2を開き、自身のアカウント名でフォルダを作成し、そこにレポートおよびソースコードをアップロードせよ。
- 〆切: 第5回の講義日。
第4回: 条件分岐
- オンデマンド:2023prog1-week04-ondemand.mp4 (約20分)
- 今週のお告げ: 課題の採点について。
- 採点結果をgoogleドライブの「score」に掲載しています。
- 1項目辺り5点以上の減点がある場合には、再提出により改善することが可能です。ただし満点にはなりません。希望する人は、(1) 修正前後がわかるようにレポートに記載し、(2) メールで修正概要を報告してください。(Mattermostではなくメールです)
- 未提出者でこれから遅延提出する人は、減点付きで受け取ります。提出後にメールで報告してください。
- TA一人は授業時間外でのサポートに変更。(Teams/質問相談チャンネル参照)
- ミニテスト
Teams参照
- [講義資料スライド]
- 条件分岐
〜「7.2 コード例」までオンデマンドで終了。
当日は7.3から。
- 条件分岐
- 演習(ペア・プログラミング) *時間が余れば
- Googleドライブ
ペアプロ演習の進め方
設問を終える毎に「ペアプロ記録」に日付を記入しよう。
- 演習1: シェルとPythonインタプリタの使用
- 演習2: print()関数と変数の利用
- ミニ演習: ミニ演習
- 演習3: ブーリアンと文字列処理
- 演習4: マニュアル(ヘルプor公式ドキュメント)の利用
- 演習5: 数当てゲーム1 (大小ヒント付き) を実装してみよう。
- Googleドライブ
第5回: ループ処理
- オンデマンド:2023prog1-week05-ondemand.mp4 (約32分)
- 連絡
- 学サポ:TAの一人・末岡さんが、授業時間外での相談対応(通称学サポ)に回っています。月4限目。Teamsの質問相談チャンネル参照。
- イベント: 11/14(土), 14:00-18:00, 「生成AIを使って、Webアプリを作ろう!」
- 今週のお告げ:「問題解決の仕方を学ぼう」。
生成AI, Web検索や友人レポートを参考にしたり、先輩・友人らに教えてもらいながら演習・課題に取り組むのはとても良いこと。だけど「言われたとおりに手を動かすだけだと、その後一人で同じことを再現したり、応用したりできない」ままです。もしそういう状況になっていると、これは学びになっていません。コピー機と一緒です。そうではなく、「何故そういう風に取り組むのか」「今どう取り組めばよいのか」「こういうアプローチの仕方もあるのか」といった問題解決の仕方を学ぼう。
新しい概念・用語に出会ったら自分なりに説明してみよう。
- ミニテスト
Teams参照
- [講義資料]
- ループ処理
〜「8.3 for文の例2」までと「8.7 continue, break」をオンデマンドで終了。
当日は8.4〜8.6, 8.8
- ループ処理
- 演習(ペア・プログラミング) *時間があれば
- Googleドライブ
ペアプロ演習の進め方
設問を終える毎に「ペアプロ記録」に日付を記入しよう。
- 演習1: シェルとPythonインタプリタの使用
- 演習2: print()関数と変数の利用
- ミニ演習: ミニ演習
- 演習3: ブーリアンと文字列処理
- 演習4: マニュアル(ヘルプor公式ドキュメント)の利用
- 演習5: 数当てゲーム1 (大小ヒント付き) を実装してみよう。
- Googleドライブ
- 課題レポート3: 基本的な統計処理を実装してみよう。
- 提出先: Googleドライブのreport3を開き、自身のアカウント名でフォルダを作成し、そこにレポートおよびソースコードをアップロードせよ。
- 〆切: 第7回の講義日。
第6回: 振り返り
- オンデマンド:2023prog1-week06-ondemand.mp4 (約21分)
- 今週のお告げ: 自分に合ったinput/outputのバランスを探そう。
inputだけでもoutputだけでも、どちらか片方だけでは学びは深まらない。教科書読んでるけど良く分からない人は、それを何らかの形でoutputしてみよう。outputできない人は教科書を読み直して自分で説明できない箇所がないか探してみよう。
- ミニテスト
出欠確認を兼ねています。必ず回答ください。
知能情報コースのG-mailアドレス「@ie.u-ryukyu.ac.jp」でログインしてください。
- [講義資料]
- 振り返り
オンデマンドで終了。
- 振り返り
- 演習(ペア・プログラミング)
- Googleドライブ
ペアプロ演習の進め方
進捗状況
- 演習1: シェルとPythonインタプリタの使用
- 演習2: print()関数と変数の利用
- ミニ演習
- 演習3: ブーリアンと文字列処理
- 演習4: マニュアル(ヘルプor公式ドキュメント)の利用
- 演習5: 数当てゲーム1 (大小ヒント付き) を実装してみよう。
- Googleドライブ
参考文献・サイト
- 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(ゲーム開発を通して学びたい人向け?)
- codecademy
- その他