#!/usr/bin/env python # coding: utf-8 # # ガイダンス # まず最初に一番大事なことを伝える. # この情報フルエンシー(Pythonによるアルゴリズムと問題解決の技法)はプログラミング**上級者向けの講義**である. # 上級者向けなので # # * プログラミングとは何か? # * 繰り返し文の使い方,条件分岐の使い方,関数とは何か,配列とは何か # # といった基本的なことは解説しない. # それはすでにわかっているという前提の講義である. # # 目安としては,(平均的な)情報理工学科3年生程度のプログラミング能力があることを前提としている. # # ただしPythonというプログラミング言語のことは知らなくても構わない. # Pythonという言語の使い方は説明する上,そもそも簡単なのですぐに使えるようになると思われる. # ## 評価基準・割合 # - 出席状況/Attendance (20.0%) # - プログラミングの演習を多く含むので,出席は重要である. # - 授業参加/Class participation (20.0%) # - 出席するだけで手を動かしていないのはダメである. # - レポート/Report assignments, mid-term/final paper (30.0%) # - 何回かレポート課題を出す.きちんと提出していただきたい. # - なお,レポートは期末試験の代わりではない. # - 小テスト等/Quizzes.etc. (30.0%) # - 小テストも何回かやる.事前に告知し出題範囲なども明示する.ペーパーテストである. # ## 一般的な注意事項 # - 講義の内容に関しては周りの受講者に質問したり相談しても良いが,うるさくしない. # - 寝ても良いが,うるさくしない. # - 必要に応じてきちんと復習する. # - 提出物はきちんと期限までに提出する. # ## この講義の狙い # - 単にプログラミングできるというだけでなく,高度なプログラミングをできるようになる. # - 場面に応じて適切なアルゴリズムを,適切なデータ構造を用いて実装できるようになる. # - 論理的思考力を磨き,自らアルゴリズムを構築できるようになる. # - いろいろ便利なツールを使えるようになる. # - ここで言う便利なツールは,主に科学技術計算に利用するものを想定している. # 繰り返しになるが,この講義は初心者向けではない. # 自分には合わないなと思ったら,遠慮することなくwithdrawして欲しい. # そして将来プログラミング能力の基本を身に着けてから再び来て欲しい. # ## なぜPythonを用いるのか? # - 別にPythonでなくても良いのだけれど,たまたまそういう講義・演習がなかったことが理由の1つである. # - Pythonは比較的お手軽にプログラミングできるので,瑣末なことにとらわれず本質に集中できることも理由の1つである. # - あと,最近流行っているからとか. # Pythonの特徴は以下の通りである. # # * いわゆるScript言語である. # * 試作品作成に適している. # とりあえず動くものを作るのにかかる時間が少ない. # * ただし完成後の動作は遅いかもしれない. # あるいは完成品のメンテナンスはけっこう大変かもしれない. # * Ruby, Perl, JavaScriptなど他にもScript言語はたくさんある. # * Script言語の中でも特に,科学技術計算モジュールが充実している. # * 最適化,機械学習などのアルゴリズムのほとんどはPythonから呼び出すことが標準となっている. # * 例えばGoogle謹製の[Tensorflow](https://www.tensorflow.org/)もPythonを標準のインターフェースとしている. # ## この講義の構成 # 1. とにかくPythonを使えるようになる. # 1. まずInteractive Shellを使えるようになる. # 1. 次にSource Code (Source Script) を組み合わせて使えるようになる. # 1. アルゴリズムとデータ構造を使えるようになる. # * 宮本が担当する講義「データ構造とアルゴリズム」と相互補完的な内容となっている. # * プログラミングコンテストの過去問を演習問題として使う. # 1. 科学技術計算モジュールを知る. # * ネットワーク解析モジュール # * 数理最適化モジュール # * 機械学習のモジュール # などを紹介する. # 科学技術計算モジュールに関しては,コンピュータールームでは使えないので,紹介に留める. # 興味が湧いたら自分のパソコンなどにインストールして試してみて欲しい.