Skip to content

ここはプログラミングやゲーム制作、データベースを学習される方のためのレポジトリ デス.

License

Notifications You must be signed in to change notification settings

DTK-CreativeStudio/Course

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

目次

※「はじめに」と「プログラミングをする上で大事なこととは」はYouTubeにて解説動画を出しています。


はじめに

プログラミングって何? :octocat:

プログラミングとはコンピュータにやってほしいことを、コードにより表現することです。
プログラミングにより、スマホのアプリを作ったり、ゲームを作ったりすることができます。
最近ではAIや自動化の推進、テレワーク需要の高まりにより、高度なプログラミングができる人材が求められており、人材価値を上げるスキルの一つとして注目されています。
(ここではその基礎となるものを学習します。)

プログラミング言語って何? 🌐

プログラミングにおけるコードの種類のことを指します。私たちが話す言語でも日本語、英語、中国語...とあるように、プログラムにおいても、CやC#、java、javascript、php、python、swift...という様にたくさんの種類があります。これらの言語はそれぞれ以下のような用途で用いられます。

言語の種類 用途
C, C++ 機械(ロボット)の制御
C# windowsソフト、アプリ、ゲーム(Unity)の開発
Java Androidアプリの開発
Javascript, PHP, HTML, CSS Webサイトの作成
Python AIの開発(Machine LearningやDeep Learningとよばれる分野です)
Swift iOSアプリの開発
Go サーバー構築

学習する際はあなたのしたい、興味のある分野で使われるプログラミング言語を選んで学習すると良いです。

プログラミングで使われる変数や、関数って何? :trollface:

変数や関数はプログラミングにおいて一番基本的なものなのですが、変数は値や文字(列)を代入することで使われます。数学の授業でxやyといった変数を学習しましたよね、あれと同じようなことをします。
また関数は決まった処理をするもののことを指します。同じ処理を複数回させる時にその都度、その処理コードを全て書かなくても、関数を呼び出すだけでその処理をさせることができます。
関数と変数について、詳しくは後ほど説明します。


プログラミングをする上で大事なこととは?

  1. 論理的思考をすること 👀

    論理的思考とはAという原因(過程)があってBという結果がおこるという考え方のことです。 コンピュータは論理的に動くため、(感情的になったりはしないです、たぶん)このような考え方は必須です。

  2. コメントを書くこと 👀

    プログラミングをする上で必ず関数や変数を使いますが、それが'何に'、'どのように'使われるかを自分が覚えておくため、或いはチーム内で共有するためにそれを明記しておく必要があります。誰が見てもわかりやすいように書くと良いです。

  3. 思考過程を明白に 👀

    プログラミングは論理的に行う必要があるため、そのコードがどういった仕組みで、中でどのような計算(おおまかで構いません)をしているのかをしっかりと理解しておく必要があります。

  4. 見本コードの丸写しをしないこと 👀

    おそらく英語学習などで経験したことがあると思いますが、英語を読むのはスラスラできるけど、書くのは難しい...ということがありましたよね。それと同じでコーディングも読むのはできるけど、書くのが難しい...ということがあります(絶対)。ですので、見本のコードをコピペせずに、しっかりと自分の手で打って、コードを書き写しましょう。

  5. 楽しんでコーディングすること 👀

    プログラミングは楽しんですることが非常に大事です。少ししんどい程度なら構いませんが、しんどい(以上の)コーディングは行わないようにしましょう。

  6. 英語を勉強しよう 👀

    Pythonなどの「コード記述スタイル」は比較的英語に近いため、自然言語のスキルが高い人ほどプログラミングスキルが身に付きやすい傾向があるそうです。ですので、英語を勉強しましょう笑

  7. プログラムが動かない時の3原則 👀

    プログラミングをして初めての頃や、長いコードを書かなければならない時は、ミスが多い傾向があります。 ミスをした時の解決策として、以下のような3原則があります。

    • プログラムが動かない理由の把握
    • 動くようにするための再設計
    • (再)設計通りのプログラムの構築

コーディングソフトの導入

ソフトの紹介 ☕

プログラミングでは専用のソフトを使い、プログラムを実行します。
そこで定番のソフト(エディタ)を紹介します。 (エディタとは、ターミナル(黒い画面)上でファイルを編集するツールのことを指します。)

コト/モノ ソフト ソフトの概要
Python
C
Unity
Visual Studio Code 最高のプログラミングソフトウェア(エディタ)。C++, pythonをはじめ、php, java, etc…といった様々な言語を扱える優秀なソフトです。
(内部で Arduino IDEを介して)Arduinoをプログラムすることができます。
Raspberry PiSSH経由でプログラムすることができます。(講習会ではこの機能は使いません)
Visual Studio Visual Studio Codeと同様にプログラミングができますが、こちらは統合開発環境とよばれるソフトです。Unity、C/C++やpythonなどほかの言語も扱えます。
(容量も大きいので、講習会では使用しません)
Python
C
Repl.it これはソフトではなくウェブサイトなのですが、あらかじめセットアップが行われているため、初心者に扱いやすいプログラミングプラットフォームになっています。
Arduino Arduino IDE Arduinoをプログラミングするための定番ソフトウェア。今回の講習会ではこのソフトを内部処理のためだけに使います。
Raspberry Pi vim これはソフトではなく、エディタなのですが、プログラミングのためのファイル編集ができます。これはターミナル(黒いコマンド入力の画面)で使用します。今回はこれは使用しません。
Thonny プログラミング初心者の方にとって使いやすいコーディングソフト。セットアップされたラズパイにはすでに入っています。
Unity Unity Personal 有名のゲームエンジンであるUnityのゲームを作るための開発環境。

コーディングソフトの導入

こちらのサイトに上で紹介したソフトの導入手順が書いてあるので、そちらをご覧ください。

Visual Studio CodeでC/C++のプログラミングをしよう!

Visual Studio CodeでPythonのプログラミングをしよう!

Visual Studio CodeとUnityでゲームをつくろう!

Repl.it でプログラミングをしよう!


コードフォルダの目次

説明 📖

この講習会資料では以下のようにフォルダーが分けられています。

言語:

  • Python
  • C

デバイス:

  • Raspberry Pi
  • Arduino

ゲーム:

  • Unity

「言語」フォルダでは基本的なプログラミングの仕方を学びます。
「デバイス」フォルダーでは「言語」フォルダで習得したスキルを生かして、LED、サーボモータなどを制御する方法を学習します。
「ゲーム」フォルダーではC#を使ったUnityゲームの作成の仕方を学びます。

目次 🎼


「言語」フォルダの目次

program0: プログラミングにおける基本事項、注意事項
program1: 足し算、引き算、掛算、割り算、割り算の余り
program2: if文
program3: ループ(有限)
program4: ループ(無限, break, continue)
program5: 多重ループ
program6: 配列(Pythonではリスト)
program7: 2次元配列
program8: 関数の作成(1) 〔返り血なし〕
program9: 関数の作成(2) 〔返り血あり〕
program_last: 構造体(PythonではClass)

work0 ~ work_lastはそれぞれprogram0 ~ program_lastの課題ファイルです。


「デバイス」フォルダの目次

code0: プログラミングにおける基本事項
code1: 〔デジタル〕LED制御(Lチカ)
code2: 〔アナログ〕LED制御(Lチカ)
code3: DCモータ制御
code4: サーボモータ制御
code5: 距離センサー(hc-sr04)を使用した距離測定
code6: 7セグメントディスプレイの制御
code7: サーボモータとボタンの複合制御(1)
code8: 7セグメントディスプレイ, LED, サーボモータの複合制御(2)

work0 ~ work3, work6はそれぞれcode0 ~ code3, code6の課題ファイルです。


ライセンス

ここに載っているコード等はすべてApache License 2.0の下保護されています。


参照

Relating Natural Language Aptitude to Individual Differences in Learning Programming Languages

Understand, Design, Build: A Framework for Problem-Solving

プログラミングを上達するには量と質のどちらがより大切なのか?

プログラミング学習に「GitHubを使用すること」の効果とは?

.gitignoreについて

shields.io

EMOJI CHART SHEET

GitHub-Cheat-Sheet


YouTube

電気通信工学研究会


編集

総合編集: Yusuke

Arduino: カルロス, Yusuke
Raspberry Pi: Yusuke
Python: Yusuke
C++: Horiuchi, Mikawa, Inaba
Unity: DAO

電気通信工学研究会(2020)