人工知能医学のためのコンピュータの基礎知識：デジタル谷間世代を救う

## はじめに： デジタル谷間世代とは？
日本では、これから政府主導で教育現場にパソコンがどんどん導入されていく中で、「取り残される世代」がデジタル谷間世代と言われる人たちになります。2023年現在、中学生から30歳くらいまでがこのデジタル谷間世代と言われるそうです。ある評論家はデジタル暗黒世代と言ってましたが、暗黒というのは暗すぎるのでデジタル谷間世代としました。「デジタル谷間世代」の特徴は、どっぷりとスマートフォンの恩恵を受けた世代ということになります。2023年現在のスマホは、消費とコミュニケーションには大変便利なツールですが、研究開発や論文作成、プログラミングなどのクリエイティブな作業には不向きです。これら創造的作業（Creative Work)にはパソコンが必須です。
参考：
 [スマホだけは不足！　パソコンが必要な理由とは――若い方はスマホしか使わないケースも少なくないようです。なぜそれでは物足りないのか、紹介していきます。戸田覚Youtube](https://www.youtube.com/watch?v=l2TUQkshJxg)

しかし、「デジタル谷間世代」は小中学校でまともにコンピュータのことを学んでいない人が少なくありません。そこで
このリンクは、人工知能医学の学習・研究のために必要なコンピュータやプログラミングの知識を、動画、Quiitaなどのウェブサイトの記事、書籍、データセットなど中から「デジタル谷間世代」を救うのに必要となる知識をリンク形式でまとめたものです。
by 人工知能医学研究部 部長　imedix　2023年1月ー

## パソコンのしくみと歴史
- [【初心者向け入門】パソコンの仕組み解説！【PC、ITの知識ゼロでOK!】 - YouTube](https://www.youtube.com/watch?v=8GfMvBRBxVk)
- [ (1) 10分でみる コンピュータの歴史 - YouTube](https://www.youtube.com/watch?v=Bj5lgt0Y3T8)
- [【イラストでわかる】コンピュータの歴史 - YouTube](https://www.youtube.com/watch?v=KjeTf_sdldc)
- [GPUとは？｜GPUの種類、CPUとGPUとの違いなどを3分でわかりやすく解説します【パソコン初心者向け】 - YouTube](https://www.youtube.com/watch?v=AyGiIwZl-wA)

## プログラミングとは？Pythonとは？
- [プログラミングとは？そもそもなに？【IT 入門 初心者講座】【プログラム知識ゼロでOK】 - YouTube](https://www.youtube.com/watch?v=uJ1Gr6Owh_g)
- [【初心者必見】Pythonとは？できることや特徴を分かりやすく解説 - YouTube](https://www.youtube.com/watch?v=a9ANhQPvhgY)
- [ PythonのAIフレームワークまとめ - Qiita](https://qiita.com/samesamepon/items/92b39d4036523a5c0713)

## OSとは？Linuxとは？
- [OSとはいったい何者？初心者向けにわかりやすく徹底解説！ - YouTube](https://www.youtube.com/watch?v=lbvVe953q3s)
- [【やさしく解説】Linuxとは？できることやメリット・導入方法まで解説 - YouTube](https://www.youtube.com/watch?v=91-TmH12o3s&t=50s)
- [ Linuxとは？｜Linuxの成り立ちや、UNIXとの違いをまじえて3分でわかりやすく解説します - YouTube](https://www.youtube.com/watch?v=unkvw8TGC6g)

## スマートフォンはコンピュータ
- [スマホの仕組みをわかりやすく解説！ | masalog(マサログ)](https://masavlog.com/gadget/phone/smart-phone/)
- [[School Project] The Complete History of iOS: How UNIX became iOS - YouTube](https://www.youtube.com/watch?v=7p56C2e4gSs)
- [＜8分で＞iPhoneの誕生秘話〜アップルの歴史〜 - YouTube](https://www.youtube.com/watch?v=HKbokhvGTt0)
- [AppleとUnixのお話 - Qiita](https://qiita.com/sutton/items/b72dd042825c2870ef05)

## 余談　スマホ脳
スマホ脳 - アンデシュ・ハンセン、久山葉子 - 新潮社
本書の要点
要点1
人類はこれまでほとんどの期間、狩猟採集生活を送り、さまざまな危険に囲まれていた。そうした生活に合わせて進化した脳は、現代社会に適応できていない。
要点2
スマホやSNSは脳の報酬系を刺激して依存させ、集中力を低下させる。ITの先駆者たちはそのデメリットを認識し、自分や子供のスマホ利用時間を制限していた。
要点3
SNSはむしろ人を孤独にさせる。とくに子供のスマホ利用は、自制心の発達に悪影響をもたらす。
要点4
睡眠時間を増やし、運動をして、スマホ利用時間を制限すべきだ。それが集中力を高め、心の不調を予防する方法である。
参考　[スマホ脳 | 本の要約サイト flier(フライヤー)](https://www.flierinc.com/summary/2524)

ここまでは基礎知識。

# 応用編
基礎知識を習得し、実際に自分で人工知能のプログラミングをやってみたい場合は、以下のような知識が必要になります。
参考にしてください。

## Windowsではなく、なぜLinuxなのか？
世界的には、Pythonによる人工知能プログラミングにはWindowsではなくLinux（Ubuntu Linux)が最も使われています。
なぜなのかを解説します。
- [Windowsがそろそろヤバイかもしれません。パソコンのOSとしては、長年シェア9割と言われてきましたが、果たしてこの先も安泰なのでしょうか？ - YouTube](https://www.youtube.com/watch?v=tikizYdsaVs&t=629s)
- [なぜLinuxはプログラミングに向いているのか？ - YouTube](https://www.youtube.com/watch?v=g1y4pImSUN8)
- [Linux がプログラミングに適している理由 - YouTube](https://www.youtube.com/watch?v=otDOHt_Jges)

## Linux (Unix)入門
### とりあえずLinuxの初歩の初歩の解説
- [【初心者卒業！】　Linuxの基本はこれ一本でOK！　【Linuxまとめ】 - YouTube](https://www.youtube.com/watch?v=Y34Do5qv1yM&t=345s)
- [UNIXコマンド入門 (全28回) - 無料部分だけでもLinux(Unix)のさわりの雰囲気がわかる](https://dotinstall.com/lessons/basic_unix_v3)

### Linuxのコマンド（命令）の解説
- [【Linuxコマンドの基本01】　ファイルを管理する　Bash上でファイル、ディレクトリを作る、消す、そして、ファイルとはなにか、ディレクトリとは？　初心者にわかりやすく解説。-YouTube](https://www.youtube.com/watch?v=pG2nztGOwIA&t=601s)
- [【とりあえず覚えておけば大丈夫】Linuxコマンド10選についてお話しま-YouTube](https://www.youtube.com/watch?v=kOd8BQp9eQA&t=633s)

### Linuxのディレクトリ（ファイル）構造の解説
- [Linuxディレクトリ構造を完全解説！- YouTube](https://www.youtube.com/watch?v=bzqrlef15wI)

## AnacondaとJupyter Notebookとは
Anaconda(アナコンダ)とは、Pythonに加え、データ分析や科学技術、数学などよく利用される Pythonパッケージを一括でインストールできるものです。環境構築を効率良く行えるため、よく利用されます。
「Jupyter Notebook」は、Webブラウザ上でソフトウェアを開発できる環境です。「Jupyter Notebook」は、PythonなどをWebブラウザ上で記述・実行できる統合開発環境です。
- [【7分で分かる】Anacondaインストール&Jupyter Notebookの使い方【Linux版】_Pythonの実行環境準備 - YouTube](https://www.youtube.com/watch?v=jC91kasVZ_c&t=97s)
- [【超入門!!】Jupyter Notebookの使いかた♪-Pythonの始め方②- - YouTube](https://www.youtube.com/watch?v=yckLbh1i4_k&t=18s)

## Visual Studio Code入門
Linuxで、プログラミングを書く場合は、ワープロソフトのようなエディターを使うのが一般的です。
- [おすすめのLinuxフリーテキストエディタ12選！](https://eng-entrance.com/free_texteditor_linux)

このうちPythonで人工知能のプログラミングを書く場合、無料で使える Visual Studio Codeが一番オススメです。

- [【VSCode】無料エディターのVSCodeをPythonコーディング用にカスタマイズしよう！〜初心者向け〜 - YouTube](https://www.youtube.com/watch?v=B8WnCAOcheM)

## 無料で学ぶPythonプログラミング
インターネットで検索すれば、様々な無料プログラミング学習サイトや動画がネットには溢れています。
有料と異なり、かなりクセがあったり、質が担保されてはいないですが、それなりに学習することは可能です。

以下キノコードというプログラミング学習のためのYoutube、ブログを紹介します。
- [キノコード Python超入門コース 合併版｜Pythonの超基本的な部分をたった1時間で学べます【プログラミング初心者向け入門講座】 - YouTube](https://www.youtube.com/watch?v=HyU3XL2F9GE)
- [キノコード Python入門・応用レッスン - YouTube](https://www.youtube.com/playlist?list=PLavQwENTsEBXwIi_BiVwxeGYr_AY0dam1)
- [キノブログ Pythonプログラミング学習方法」](https://kino-code.com/)

Python無料学習インターネットサイト
- [ゼロからのPython入門講座 - python.jp](https://www.python.jp/train/index.html)
- [CODEPREP プログラムを書いて動かしながら学ぶ実践型のプログラミング学習サービス](https://codeprep.jp/books/category/Python)

プログラミング無料学習サイトの比較
- [プログラミング無料学習サイト11選！ テックキャンプ ブログ](https://tech-camp.in/note/technology/231/)

## 有料で学ぶPythonプログラミング
無料で公開されているPythonレッスンにば、それなりに習得できるものの限界があります。Pythonはコンピュータプログラミングである以上、書籍で学ぶよりもネット動画等を利用したe-Learningの方が効率よく学習できます。
以下にリストしたインターネットによる有料サイトは、月額料金を課金されますが、書籍を購入するのと同程度の料金でPythonを習得することはできると考えます。例えばドットインストールだと3ヶ月でPythonの５つのコースを習得すると合計3240円課金（月額1080円ｘ3ヶ月、2023年10月3日現在）されます。しかし書籍と同適度の料金と考えます。Python習得後に、各コマンドのリファレンスが辞書のような検索で必要になったら、以下に「Pythonリファレンス参考サイト」を参考にしたり、改めて書籍を購入したりしてください。
### 筆者が実際使用していたオススメのプログラミング学習サイト「ドットインストール」
ドットインストールは、動画でプログラミングを学べる初心者向けのプログラミング学習サービスです。3分間の動画でスキマ時間に勉強でき、学習できるプログラミング言語も豊富にあります。﻿
ドットインストールの特徴は次のとおりです:﻿
- 初心者からプロのエンジニアまで幅広く支持されている
- 基本的に無料だが、有料会員なら質問サービスを受けられる
- 6000本を超える動画があり、無料会員は導入編となる初級動画のみ視聴できる
- 有料となるプレミアム会員は月額1,080円(2023年10月3日現在）で、登録すれば中上級者向けも合わせた全ての動画が視聴可能
- ドットインストールでは、Web制作の基礎から子供向けのゲーム制作レッスンまで学ぶことができます.
#### ドットインストールの動画を使ってどう学習すればいいのか？
学習を進めるにあたっては以下の手順をおすすめしております。

- ざっと動画を見て雰囲気を掴む
まずはその言語や技術で何ができるのか、ざっと動画を見るだけでもかまいません。もっと詳しく勉強したい！となったら次のステップに進むといいでしょう。なお、時間がないときはこのステップを省いても構いません。

- 動画と同じ環境を用意して、自分でコードを書きながら動作を確認する
動画を見ているだけでは自分でコードを組み上げる力をつけることはできません。レッスン動画どおりの環境を用意して、実際に手を動かすことでコードに対する理解を深めることができます。

- 動画を見ずに、レッスンと同じものを作り上げてみる
実際に知識が身についたかチェックするのに最適な方法です。理解があやふやな箇所は動画を見直して復習していきましょう。

- 作り上げたものを改造して友達に見せてみる
ちょっとした改造でもいいので、自分のアイデアを盛り込んで友達に見せてみましょう。友達から感想や意見をもらうことで、もっと勉強していろいろな機能を実装しよう！というモチベーションが湧いてきます。

#### ドットインストールのPython学習コース
- [ドットインストール Python入門 基礎文法編 (全29回)](https://dotinstall.com/lessons/basic_python_grammar)
- [ドットインストール Python入門 関数編 (全17回)](https://dotinstall.com/lessons/basic_python_functions)
- [ドットインストール Python入門 データ構造編 (全25回)](https://dotinstall.com/lessons/basic_python_data_structure)
- [ドットインストール Python入門 標準ライブラリ編 (全19回)](https://dotinstall.com/lessons/basic_python_standard_library)
- [ドットインストール Python入門 クラス編 (全12回)]( https://dotinstall.com/lessons/basic_python_class)

### その他の有料プログラミング学習サイト
- [Progate 無料～980円／月](https://prog-8.com/)
- [Paizaラーニング　無料～1078円／月](https://paiza.jp/works/courses)
- [Udemy 1610円／月](https://www.udemy.com/)
- [Schoo 無料～980円／月](https://schoo.jp/)
- [codecademy 英語のプログラミング学習サイト　無料～19.99ドル／月](https://www.codecademy.com/)

上記サイトをリストするのに参考にしたサイト。各サイトの特徴を簡潔にまとめて比較している。
-[【徹底比較】プログラミングを独学する！おすすめ学習サイト10選をご紹介 - WEBCAMP MEDIA](
https://web-camp.io/magazine/archives/23629)

## 書籍で学ぶPython
Python入門でアマゾンなどを検索すると数多くの書籍が表示されます。特に入門用書籍としては人工知能医学研究部で
オススメしている書籍はありませんので、個人の好みで選んでください。
しかし初心者にとってはコピペプログラミングという方法もあります。
参考：
[コピペから上達するプログラミング術](https://se-kowaza.com/copy-paste-programming/)

Pythonでコピペプログラミングをする際に参考になるサイトを以下にリストアップしてみました。
- [Python 標準ライブラリ — Python 2.7.18 ドキュメント](https://docs.python.org/ja/2.7/library/index.html#library-index)
- [Qiita](https://qiita.com/) 　　このホームページサイトもQiita内にあります。
- [Python関連記事まとめ | note.nkmk.me](https://note.nkmk.me/python-post-summary/)
- [Python Archives | 侍エンジニアブログ](https://www.sejuku.net/blog/category/programming-language/python)
- [Python3で学ぶデータ分析・AI・機械学習(Python入門編) - AI-interのPython3入門](https://ai-inter1.com/python-basic/)

## Pythonコマンドの検索・リファレンスに利用する書籍
- [書籍：現場ですぐに使える！ Pythonプログラミング逆引き大全400の極意 - 秀和システム あなたの学びをサポート！](https://www.shuwasystem.co.jp/book/9784798063669.html)

## Pythonの人工知能開発で使うライブラリ
- [Python 機械学習ライブラリを23個一挙紹介！データ処理から深層学習まで完全網羅](https://www.codexa.net/machine-learning-python-library/)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/611317/ab08aef8-db13-b551-74ef-7a21c3b2e438.png)

- [Python神ライブラリ10選！ライブラリでできることもまとめて解説♪ - YouTube](https://www.youtube.com/watch?v=wFJYLQbJ9N8)
- [【保存版】PythonライブラリNumPyをたった1時間で学習！機械学習にも役立つ関数38選 - YouTube](https://www.youtube.com/watch?v=mNuTOE4gRUI)
- [Pythonの便利ライブラリ「Pandas入門講座」合併版｜Pandasの基本的なこと3時間で学べます【Python超入門コースの次におすすめの入門講座】 - YouTube](https://www.youtube.com/watch?v=XfoYeWCzjac)
- [【Python】できること７つ + よく使われる定番ライブラリーを紹介！ 〜2022年版〜 - YouTube](https://www.youtube.com/watch?v=9xm_nDlNhVA)

## Pythonによる機械学習　参考書
- [第3版］Python機械学習プログラミング 達人データサイエンティストによる理論と実践 - インプレスブックス](https://book.impress.co.jp/books/1120101017)
- [ 医療AIとディープラーニングシリーズ Pythonによる医用画像処理入門 | Ohmsha](https://www.ohmsha.co.jp/book/9784274225468/)
- [Python実践機械学習システム100本ノック - 秀和システム](https://www.shuwasystem.co.jp/book/9784798063416.html)

## Google Colabとは？
Google Colaboratory（グーグル・コラボレイトリーもしくはコラボラトリー）とは、Googleが機械学習の教育及び研究用に提供しているインストール不要かつ、すぐにPythonや機械学習・深層学習の環境を整えることが出来る無料のサービスです。Colab（コラボ）とも呼ばれます。無料で利用する事が出来ますが、Googleアカウントが必要になります。またCPU及びGPU(1回12時間)の環境が利用可能です。
- [【Colab 入門】Google Colaboratory とは？使い方・メリットを徹底解説！ | キカガクの技術ブログ](https://blog.kikagaku.co.jp/google-colab-howto)
- [【初学者必読】Google Colaboratory とは？使い方・便利な設定などをわかりやすく解説！ | AI Academy Media](https://aiacademy.jp/media/?p=1037)

## AWSとは？
AWSとはAmazon Web Servicesの略で、Amazonが提供している100以上のクラウドコンピューティングサービスの総称です。AWSを使えば、クラウド上で機械学習のプログラミングを実行することが可能です。
- [AWSとは？ その基本（役割と代表的なサービス）を理解する | 株式会社スタイルズ](https://www.stylez.co.jp/columns/what_is_aws/)
- [【AWS】AWSのAIサービス一覧 【人工知能】 - YouTube](https://www.youtube.com/watch?v=OcDBc7R_hOg)

## Ubuntu Linuxとは？インストール方法
Google ColaboratoryやAWSとは別に、もっと自由にPythonによる機械学習をやってみたい場合は、自分のパソコンにUbuntu Linuxをインストール方法もあります。
- [【Linux入門】UbuntuではじめるLinux生活 - YouTube](https://www.youtube.com/watch?v=vMyN3fLqPm4)
- [Ubuntuとは？｜たった3分で分かる｜特徴やできることをわかりやすく解説](https://techmania.jp/blog/linux0002/)
- [ Homepage | Ubuntu Japanese Team](https://www.ubuntulinux.jp/)
- [Ubuntuとは？｜たった3分で分かる｜特徴やできることをわかりやすく解説](https://techmania.jp/blog/linux0002/)