バイオプログラミング第一 · 2020-07-20 · プログラム言語とは?...

24
バイオプログラミング第一 榊原 康文、佐藤 健吾 慶應義塾大学理工学部 生命情報学科

Upload: others

Post on 27-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: バイオプログラミング第一 · 2020-07-20 · プログラム言語とは? u計算機と対話(命令)するためのもの nCPUは機械語(アセンブラ)を解釈し,実行

バイオプログラミング第一

榊原 康文、佐藤 健吾

慶應義塾大学理工学部 生命情報学科

Page 2: バイオプログラミング第一 · 2020-07-20 · プログラム言語とは? u計算機と対話(命令)するためのもの nCPUは機械語(アセンブラ)を解釈し,実行

プログラム言語とは?

u 計算機と対話(命令)するためのもの

n CPUは機械語(アセンブラ)を解釈し,実行

例) 01000011 (加算命令)

高級プログラム言語

FORTRAN, C, Python, Java, LISP, など

n 人間がこの言葉で命令する(プログラムを書く)のは難しい

n より人間に近いプログラム言語でプログラミング

Page 3: バイオプログラミング第一 · 2020-07-20 · プログラム言語とは? u計算機と対話(命令)するためのもの nCPUは機械語(アセンブラ)を解釈し,実行

コンピュータ上でのプログラム作成手順

エディタ プログラムの作成

コンパイラー 機械語へ翻訳

コンピュータ上で実行(CPU, メモリー, ディスク)

Page 4: バイオプログラミング第一 · 2020-07-20 · プログラム言語とは? u計算機と対話(命令)するためのもの nCPUは機械語(アセンブラ)を解釈し,実行

C言語とは

C言語 → 言葉 → 言葉には文法がある↓

まず文法を理解↓

次に表現方法を学習(プログラム作法,アルゴリズム)

u カーニハン,リッチーにより(UNIXのシステム記述言語として)開発された現在最も広く使われているプログラム言語

n パソコンから,ワークステーション,大型コンピュータまで

n バイオインフォマティクスのソフトウエア作成

u 教科書は,C言語の文法を中心に書かれている

Page 5: バイオプログラミング第一 · 2020-07-20 · プログラム言語とは? u計算機と対話(命令)するためのもの nCPUは機械語(アセンブラ)を解釈し,実行

前半の目標

u C言語を使って,

行列の積(掛け算)のプログラムが書けるように

なること

÷÷÷

ø

ö

ççç

è

æ=

÷÷÷

ø

ö

ççç

è

æ´÷÷÷

ø

ö

ççç

è

æ

401256059107103172644

4392383112

0510917231

Page 6: バイオプログラミング第一 · 2020-07-20 · プログラム言語とは? u計算機と対話(命令)するためのもの nCPUは機械語(アセンブラ)を解釈し,実行

プログラミングの勉強

u とにかく自分でプログラムを作成して,何度も間違いを起こすことを通じて,プログラミング技法を覚えていくことが重要!!

uスキル(技術)の獲得はまず手をうごかすこと

Page 7: バイオプログラミング第一 · 2020-07-20 · プログラム言語とは? u計算機と対話(命令)するためのもの nCPUは機械語(アセンブラ)を解釈し,実行

問題を解くプログラムが書けるようになるためには

C言語の習得

アルゴリズムの勉強(問題を解くためのプログラム手法)

生命科学における応用問題

バイオプログラミング第一

•アルゴリズムと情報処理•バイオプログラミング第二•基礎生命実験

•バイオインフォマティクス•生命情報実験

Page 8: バイオプログラミング第一 · 2020-07-20 · プログラム言語とは? u計算機と対話(命令)するためのもの nCPUは機械語(アセンブラ)を解釈し,実行

授業の進め方,単位について

u毎回プログラミング実習を行う予定

u単位について

n期末試験

n レポート課題(3回位を予定)

n翌週までにプログラムと実行結果を提出

(授業支援)

Page 9: バイオプログラミング第一 · 2020-07-20 · プログラム言語とは? u計算機と対話(命令)するためのもの nCPUは機械語(アセンブラ)を解釈し,実行

出席について

u すべての回をZoomによるオンライン講義で実施します。u Zoomの接続状況を使って毎回出席を取ります。

Page 10: バイオプログラミング第一 · 2020-07-20 · プログラム言語とは? u計算機と対話(命令)するためのもの nCPUは機械語(アセンブラ)を解釈し,実行

Zoomの運用ルール

u 本名で参加してください。

! 参加時に本名を入力する。

! 後から変更するには、「参加者」→自分の名前→「詳細」→「名前の変更」で変更可能

u プライバシーを保護するため、「バーチャル背景」を推奨します。

! 「ビデオ」の右の「^」から設定可能

u 全体への説明中: マイクは常にOFF、ビデオはON

u 実習中: マイクは必要な時にON、ビデオはON

u Zoom内のチャットはほぼ見ません。代わりにSlack(後述)を使ってください。

Page 11: バイオプログラミング第一 · 2020-07-20 · プログラム言語とは? u計算機と対話(命令)するためのもの nCPUは機械語(アセンブラ)を解釈し,実行

Zoomの運用ルール

u 全体への説明は、メインセッションで行います。

u 実習は、各自に割り当てられたブレークアウトルーム (BR) で行います。

u 実習中、教員はメインセッションにいます。TAは各ルームを見廻ります。

メインセッション BR1

BR2

榊 佐

TA

Page 12: バイオプログラミング第一 · 2020-07-20 · プログラム言語とは? u計算機と対話(命令)するためのもの nCPUは機械語(アセンブラ)を解釈し,実行

Slackの運用ルール

u biopro1-2020.slack.com(バイオプログラミング第1用のワークスペース)に参加してください。

u チャンネルの役割

! #general: 全体の連絡を書き込みます。! #yyyy-mm-dd(日付): その日の連絡を書き込みます。教員はここを見ています。

! #helpme: TAはここを見ています。TAを自分のブレークアウトルームに呼びたい時に書き込んでください。自分のルーム

番号と質問内容を書いてください。

! #random:雑談用のチャンネルなので、自由に使ってください。

Page 13: バイオプログラミング第一 · 2020-07-20 · プログラム言語とは? u計算機と対話(命令)するためのもの nCPUは機械語(アセンブラ)を解釈し,実行

参考

uホームページ

n http://www.dna.bio.keio.ac.jp/lecture/progen/

u メールアドレス

n [email protected]

Page 14: バイオプログラミング第一 · 2020-07-20 · プログラム言語とは? u計算機と対話(命令)するためのもの nCPUは機械語(アセンブラ)を解釈し,実行

プログラミング言語講義

Page 15: バイオプログラミング第一 · 2020-07-20 · プログラム言語とは? u計算機と対話(命令)するためのもの nCPUは機械語(アセンブラ)を解釈し,実行

Cのプログラムの構造

【インクルード文】

【宣言文】

【main関数】

【関数】

【関数】

← 標準関数などを「組み込む」ための処理

← グローバル変数宣言,関数のプロトタイプ宣言,define文

} C言語では,「あるひとまとまりの処理」はすべて関数として扱われる

Page 16: バイオプログラミング第一 · 2020-07-20 · プログラム言語とは? u計算機と対話(命令)するためのもの nCPUは機械語(アセンブラ)を解釈し,実行

main関数

uどのようなプログラムにおいても,必ず用意され

なければならない関数

u実行プログラムの中で最初に実行される関数

uほかのすべての関数は,このmain関数の中で

使われる

Page 17: バイオプログラミング第一 · 2020-07-20 · プログラム言語とは? u計算機と対話(命令)するためのもの nCPUは機械語(アセンブラ)を解釈し,実行

main関数の構造

int main(void){【変数の宣言】;:【文】;::

return 0;}

文は一つの処理を書いたもの,「セミコロン」で終わる

Page 18: バイオプログラミング第一 · 2020-07-20 · プログラム言語とは? u計算機と対話(命令)するためのもの nCPUは機械語(アセンブラ)を解釈し,実行

単純なCのプログラム

#include <stdio.h>

int main(void){【変数の宣言】;:【文】;::

return 0;}

【インクルード文】

【宣言文】

【main関数】

【関数】

【関数】

}

Page 19: バイオプログラミング第一 · 2020-07-20 · プログラム言語とは? u計算機と対話(命令)するためのもの nCPUは機械語(アセンブラ)を解釈し,実行

単純なCのプログラム

#include <stdio.h> 【インクルード文】

標準入出力を使うためのインクルード文

入力) キーボード

出力) CRTディスプレイ

Page 20: バイオプログラミング第一 · 2020-07-20 · プログラム言語とは? u計算機と対話(命令)するためのもの nCPUは機械語(アセンブラ)を解釈し,実行

最も単純なCのプログラム

#include <stdio.h>

int main(void){

【文】;::

return 0;}

#include <stdio.h>

int main(void){printf(”Hello”);return 0;

Page 21: バイオプログラミング第一 · 2020-07-20 · プログラム言語とは? u計算機と対話(命令)するためのもの nCPUは機械語(アセンブラ)を解釈し,実行

最も単純なCのプログラム

#include <stdio.h>

int main(void){printf(”Hello”);return 0;

printf

画面への出力(関数)

” ” (ダブルクォーテーション)で囲まれた中に書かれた文字や記号はそのまま画面に出力される

Page 22: バイオプログラミング第一 · 2020-07-20 · プログラム言語とは? u計算機と対話(命令)するためのもの nCPUは機械語(アセンブラ)を解釈し,実行

注意事項

Page 23: バイオプログラミング第一 · 2020-07-20 · プログラム言語とは? u計算機と対話(命令)するためのもの nCPUは機械語(アセンブラ)を解釈し,実行

演習について

u 基本的にはどのようなプログラミング環境でも構いません。

u この講義では当面の間、ブラウザ開発環境paiza.ioを使います。

https://paiza.io/ja

u 慣れてきたらVisual Studio Codeを使用します。後日改めて説明します。

Page 24: バイオプログラミング第一 · 2020-07-20 · プログラム言語とは? u計算機と対話(命令)するためのもの nCPUは機械語(アセンブラ)を解釈し,実行

演習について

u 演習課題は「授業支援」を用いて提出してください。

u 毎回、「考察」を記述したテキストファイルを一緒に提出してください。

! 内容はそれほど長くなくてもいいです。

! Wordではなく、メモ帳などで作成したテキストファイルにしてください。

u ファイル名には日本語が含まれないようにしてください。

! ZIPファイル、Cファイル、TXTファイル