プログラミング資料
〈ベーシック講座1〉
プログラミングを学んだことのない人が、Pythonをはじめるための初歩の初歩のコースです。1レッスンあたり90分(※)を想定しています。
本コースはm.PIMEと中央大学の共同開発で生まれました。非商用の教育目的利用であれば無料でご利用いただきます。(商用には、別途商用ライセンスもご用意しています)
これからPythonでプログラミングをはじめようと考えている中学、高校生および大人を対象にしています。また、中学、高校において情報科目、ICT教育をどのように行うか模索中の先生のヒントにもなります。
本教材は、クリエイティブコモンズライセンスにて配布しています。利用についての詳細はこちらをご覧ください。
※ 30分から45分を講義に、残りの時間をTAがついての演習の時間として使う想定です。
総監修:斎藤正武
授業監修・テキスト監修:山本幸太郎
※外部サイトにリンクします。
-
Lesson00 プログラミングをはじめよう
プログラミングを始めたことのない人のための準備回です。ソースコードを書く準備をしましょう。
-
Lesson01 変数を使おう
中学校の数学では、x や y といった文字を変数としてあつかい、方程式を解いたり、1次関数のグラフを描きましたね。 プログラミングでも、文字列を使ったデータの入れ物として変数という概念があります。Pythonだけでなくほとんど全てのプログラミング言語、コンピュータサイエンスで使われる重要な概念です。 数学の変数とかなり扱いが似ていますが、違いもあります。今回は、プログラミングにおいて重要な変数について学びます。
-
Lesson02 条件分岐
コンピュータの世界に限らず、日常でも場面によって操作や行動を変えることはたびたびあります。 例えば、自動販売機でジュースのボタンを押したらジュースが、コーヒーのボタンを押したらコーヒーが出てきます。 ボタンを押すという同じ行為でもボタンの種類が違うと、結果も変わります。このように、ある条件で作業をわける(分岐する)ことを条件分岐と言います。 コンピュータは条件分岐が得意です。条件分岐の構文である if ... elif ...else の構文について学びます。
-
Lesson03 変数と if 文を組み合わせよう(復習)
前回は条件分岐の構文であるif文について学びました。ifを使うと気は、条件を変数に入れて、その変数によって処理をわけることがよくあります。 今回は、Lesson02 とLesson03の復習です。変数とif文を使って条件分岐するプログラムを書いてみましょう。
-
Lesson04 ランダム関数
python には、print や input のようにあらかじめ組み込まれた便利な関数があります。しかし、print や input だけでは実現できないもう少し複雑な機能が欲しいときもあります。そういった機能は、モジュールという機能がまとまったファイルに入って提供されることが多いです。
モジュールとは、いわば python 上級者が作ってくれた便利な関数の集まりです。今回は、モジュールの使い方について学びます。
特に、ランダムに数字を作り出すrandomモジュールの使い方について学びます。 -
Lesson05 ループ(1)for 文
たとえば、1 から 1000 までの整数を順にたすといくといった作業を人間がすると、単純作業ですが、式を打ち込むだけで時間がかかります。 この例では、1 ~ n までの整数の総和が n*(n+1)÷2 で計算できることを知っている人はすぐに 1000×1001÷2 で計算するでしょう。
コンピュータは、公式を教えなければ、愚直に 1 + 2 + 3 + … +1000 を計算します。
逆に言うと、コンピュータは公式がなくても、膨大なデータを愚直に計算するといったことは得意です。
同じような繰り返し作業をするための構文がループです。 ループの構文はいくつかありますが、今回は for 文について学びます。 -
Lesson06 ループ(2) while文
前回は for ループ文について学び、繰り返しの処理をさせることができるようになりました。 while文は for 文と同じように繰り返しを行うループですが、for がループ変数を 1 ずつあるいは3 つずつ変化させるのに対して、while はもっと柔軟に繰り返し処理をさせることができます。
-
Lesson07 リスト
今回はリストというデータ構造について学びます。リストは変数がタンスになったような構造です。0 番目の引き出し、1 番目の引き出し、2 番目の引き出しという風にそれぞれの番号がついた引き出しを使い、複数のデータをひとまとめにして扱うことのできるデータ構造です。他のプログラミング言語では、配列という名前で呼ばれることもあります。多くのプログラミング言語で使われる重要な概念です。
-
Lesson08 リストと for 文
リストはタンスのようなデータだとわかりましたね。リストは、その構造上、反復に適しています。今回は、リストの要素に様々な反復しやすいデータをセットし、それをループで反復処理する方法を学びます。
-
Lesson09 グラフを描く
グラフを描くとき、皆さんはどうしますか?いくつかのx の値に対応するyの値を計算して、手で点を打っていくのではないでしょうか。 計算も大変ですし、点を打つのも大変ですね。Pythonはこのような単純作業ともいえるグラフを描くのも得意です。グラフを描くための命令を覚えましょう。
-
Lesson10 ループ、リストを組み合わせよう(復習)
今回はこれまで学んだことを使ってプログラムを書く復習回です。
-
Lesson11 文字列の操作
これまで何度も文字を表示するprint関数を使ってきましたね。この回では改めて文字の扱いについて学びます。そして、「文字にあるパターンが含まれているかどうか判断する」という機能について学び、ミニ検索システムを作ります。
-
Lesson12 修了演習
ここまで変数やリスト、ループやif文など、Pythonの基本的な文法を学んできました。 これまでの成果を使って、数学的な問題を解いてみましょう。この問題を解けば、ベーシック講座1は修了です。 高校の数学では線形計画法という方法で解くことが多い問題ですが、コンピュータを使って全く違うアプローチで解きます。 小学生程度の算数の知識とあとは考える力だけで解けるのです。
-
Lesson13 修了問題コードレビュー
修了問題は解けましたか?修了問題はいろいろなソースコードがあるでしょう。 他人のコードを見て、講評することをコードレビューと言います。 今回はLesson12で受講生が書いたソースからいくつかを紹介し、先生がコードレビューします。 さあ、とうとうビギナーコース1の修了証書を受け取りました。次はビギナーコース2へ進みますよ!