今日よりちょっと賢い明日、今よりずっと自由な未来

Liberal Arts & IT

Daily

[UoPeople]CS1101 Programming Fundamental

投稿日:

UoPeopleに入学して初めてのCSのコース
Pythonの基礎の基礎を学びました

このコースで使うテキストはThink Python: How to think like a computer scientist
内容は基礎的ですが、Exerciseで使っているお題が数学的なものもあってやりごたえがありました

Discussion Formu150字、Programming Assignment200字とUNIV1001より書く英語の量が少ないので全体的にUNIV1001より楽だった印象です。

Unit1

Pythonをインストールして、Reading Assignmentを1章だけ読みました。
コードはprintや簡単な四則演算だけですが、用語は学ぶものがありました

  • interpreter: プログラムで書かれたソースコードを解釈、実行するプログラム
  • prompt: python実行するときでいう">>>"。実行準備が整った合図
  • syntax: プログラムの文法ルール。syntax errorは文法が違うという意味
  • high-level language: pythonのような人間にとって読みやすい言語
  • low-level language: コンピューターが実行できる言語(=machine language, assembly language)
  • parse: プログラムの文法を検証すること

Unit2

変数と関数について。
リストとかの前にまず関数が出てくるんですね。local variableとglobal variableの違いを意識してコードを書く練習をしました

今回も用語で混乱

  • parameter: function名の後の()の中の値。functionを実行する時に必要な変数
  • argument: parameterに渡される値

Unit3

floor divisionの使い方(例:105//60=1)、IF文、キーボード入力の受付(input())、関数の再帰を学びました
深くネストしたIF文より、シンプルな直列IF文の方が読みやすいので、andやorを使ってIF文の条件を工夫しようという話

Unit4

すこしずつ構築して差分だけテストするIncremental Developmentの重要性がポイントでしたが、私は再帰的な関数呼び出しに苦労しました。
Exerciseは必須ではないですがせっかくならやろうと思ったpalindromeを判定する関数の構築に数時間手こずりました。。でもお陰で再帰関数の書き方が分かった気がする。

Unit5

変数の更新、While文とFor文、スライサー
スライサーはあまり使ったことなかったので勉強になりました。[1:4]なら、1つ目は含むけど4つ目は含まないというのが分かりにくい、、
'banana'[1:4]='ana'

immutable=不変 はここから何度も出てくる英単語でした

Unit6

ようやくListが出てきました。
でもappend()とかremove()といったリストを操作するmethodはさほど問題ではなく、alias, equivalent, identicalがキーワードでした。

  • equivalent
    • 値が一致していること
    • a=bがTRUEであること
  • identical
    • オブジェクトが同一であること
    • a is bがTRUEであること
  • alias
    • a=[1,2,3] b=aとすると、bはaのaliasになる
    • aとbはidenticalになる
    • bに変更を加えたらaも更新される

アプリ開発の時にはそこまで意識してなかったけど、ローカル変数はFunction内でしか利用できないはずなのに、Function内でaliasリストを更新すると元のリストも更新されるって変な感じ

Unit7

辞書型とtupleの登場

  • dict.items()
    • keyとvalueを組み合わせたtupleを返す
    • for key,value in dict.items():
  • enumerate(list, start=1)
    • インデックスとリスト値の組み合わせtupleを返す
    • start=でインデックスの開始を0以外にもできる
    • for index,value in enumerate(list, start=1):
  • zip(list, list)
    • 二つのリスト値をペアにしたtupleを作成できる
    • list(zip('Anne', 'Elk')) → [('A', 'E'), ('n', 'l'), ('n', 'k')]

Unit8

ファイルの扱い方とtry:except:を学びました

Unit9 Final Exam

Review Quizと似たような問題でした
1問間違えたみたいだけど何をミスったのかは不明、、
結果はA+。Programming Assignmentが毎回10点満点だったのにDiscussion Postのピアレビューが9点に達さないことが多かったのが心配でしたが大丈夫でした。

-Daily
-

Copyright© Liberal Arts & IT , 2024 All Rights Reserved Powered by STINGER.