東北工業大学 裏シラバス

自分は情報通信工学科なので、情通の授業をメインに紹介する予定です。

【授業レポート】プログラミング入門及び同演習

分野 :  専門、必修

取りやすさ :  ★★★★☆

単位 :  3単位 2コマ

教員 :  木戸 博 教授

 

出席 :  要全授業の3/2超え(学則規定より)

宿題 :  なし。

試験 :  中間期末あり(期末のみ再試験あり)

レポート :  各回基本課題発展課題それぞれあり。基本課題は提出7割以上必須。(7割未満なら試験結果に関わらず落単、発展課題は全て任意)

配点 :  出席点0%、課題点30%、試験70%(中間3:期末7、但し例外有り)(試験で6割未満なら課題の提出状況に関わらず落単)

 

(2019年時点)

 

------------------------------------------------

授業の概要

この科目は、その名の通り「プログラミングの基礎について勉強する」科目です。

 

プログラムを組む時、なんか沢山言語とかあると思いますがこの授業ではC言語を使います。

 

やること自体は割と単純で、

  • プログラムに計算させる
  • 文字や数字を表示する
  • その他配列や、プログラムそのものの基礎になること

くらいの感じです。

 

恐らく、多くの人がここで初めてプログラミングをやるのではないでしょうか?

工業高校とかなら「やったことあるよ!」っていう人もいると思いますが、普通科高校はほとんどやることは無いと思います。

 

でも大丈夫です。自分も高校まで、プログラムはおろかパソコンにほとんど触れないような人でしたが、それでも四苦八苦しながら課題を乗り越え、最終的に96点を取ることができました(笑)

 

それこそ最初の授業は苦労しましたよ……

演習の時間に教えて貰いながら進めるのかと思ったら、「各自課題進めてちょうだいね〜」と放り出され、どのアプリを立ちあげればいいのかも分からずパソコンの前で呆然としてましたし……

 

 

授業の流れ

この科目は1週間で2コマ授業をしますが、片方は座学(普通の授業のように勉強する)で、もう片方は演習(実際にパソコンを使ってプログラムを作る)という風に構成されています。

多分、「あれ?同じ授業のはずなのに、書かれている教室が別々?」と思った方もいるでしょう。そういうことなんです。

 

なんですが、座学でやったことを演習の日にやってみる……という計画はいささか危ないような気がします。

 

というのも、初めてやることをたった90分でマスターして課題が完成するかというと、かなりキツいと思います。もし出来たら、めちゃくちゃ自分を褒めてあげて下さい。その人は相当才能があります。

 

なので、座学が終わったら演習日の前に大学のパソコンを借りるなり、自分のパソコンに開発環境を作り上げるなりして「プログラムの大半は完成している状態にする」のが吉です。

 

目安としては、「プログラムが完成した(コードを打ち終わった)はずなのに、エラーが消えない…… or 計算が合わない……」っていうくらいの進捗ですかね?ここまで進んでいれば、多分なんとかなると思います。

 

レポート

次に、演習日課題提出の流れについて。

課題は各回基本課題発展課題があり、どちらも演習日〜次の演習日で提出しなければいけません。

発展課題については加点程度に考えてもらって大丈夫ですが、基本課題は7割提出(例えば合計14回なら10回以上)できないと落単確定なので気をつけてください。

発展課題もコミコミで100点計算なのは注意して下さい。

 

一応、自分の時には(重要)期末頃に提出できてない基本課題を受け付ける時間がありましたが、その時出した課題は加点対象にならないのでGPAを気にする人は時間内に間に合うようにした方がいいです

 

提出の方法については、自分が受けた当時だとプログラム結果1枚のA4用紙にプリントしてTA(授業を補助する先輩方)に確認してもらい提出するという形でした。(これが1回チェックしてもらうのにえらい時間かかっ……)

 

一応、紙をプリントするのにポイントが必要(各セメスターで300p、モノクロ印刷1p消費)ですが特に他にレポートが大量に出されるわけでもないので気にせずバンバン印刷してください

 

なんなら、全部余計に1部ずつ印刷しておいて期末試験の時に見直すっていうのも作戦だと思います。

 

 

試験

試験は中間試験期末試験があり、期末試験については再試験があります。

 

割合としては、中間3 : 期末7だったような気がします。

特定条件下では割合が変わることもありますが、このせいで学生が不利になることは一切無いのでそれは安心して下さい。

 

また、「プログラムの試験ってなんぞや?」って思うかもしれませんが、内容はシンプルに「プログラムの穴埋め問題」がメインの構成になっています。

 

で、その内容というのが一部改変はあれど今まで出した課題によく似たプログラム」になっていますので、自力でしっかり課題を作っているならそれだけで点数に結びつきます

 

コピペだの代理だので友達に頼りっきりだと必ず痛い目見ますので、基本課題だけでも自力でできるようにしましょう。

これはもう上手く時間を見つけて課題をやっていくしかないです。

 

 

使うもの

この授業で使うものは……

です。

 

先に言っておきますが、ノートパソコンは必要ありません

各自で環境構築(プログラミングの準備)してみて、疑問が出たら持っていくのはアリですが基本的に使うことは無いので荷物になるだけです。

(まぁ、僕は隠れて動画編集とかするために持って行ってましたけど)

 

そんなわけで大学に進学して新たにノートPCを買う人も多いですが、我慢してお留守番しててもらいましょう。使う用が無いのであれば……ね。

(基本的に、1年生のうちのどの授業でも対面の時に使うことは無いです。)

 

 

オマケ

演習の最初らへんで自分がつまずいた所、知っておくと便利そうなことを書いておきます。

是非とも役に立てて下さい!!!

 

演習の始め方

  • 左下のスタートから、Linuxを選択
  • そしたらその下に出てくる、Ubuntuを選択
  • しばらく待つとログイン画面が出るので、自分の番号(s20〇〇〇〇〇)とパスワード(ポータルサイトと同じ)を入力
  • ちょっと待つと、上側に「アクセサリー」が出るのでそれを選択
  • その中の「テキストエディタ」を選ぶとメモ帳みたいな自由に文字が打てるウィンドウが出るので、それでプログラミングをする

 

プログラムの実行

  • CtrlAlttを同時に押すと、「端末」というアプリが立ち上がる
  • cd sdrv とコマンドを打ってディレクトリを移動する(プログラムのファイルは、全てsdrvというファイルに入れている前提)
  • gcc 実行したいファイル名 と打ってコンパイルする
  • ./a.out で実行する。
  • プログラムを修正したら、保存してまたgccの所からやり直す

 

プログラムコマンドは違う

これは僕が最初の授業で詰まったところです。

プログラムというのは

  • printf(〜)
  • scanf(〜)
  • int 〜
  • if(〜)
  • nantokakantoka[〜]

 

みたいなやつで「テキストエディタ」に書く内容であって、コマンド

  • cd 〜
  • gcc
  • ./a.out

 

みたいな「端末」に打ち込んでプログラムを実行するものです。その他 ls 〜 とかも出てきますが、実行で主に使うコマンドはこの3つです。(結果を保存・出力する時は、また別に使うよ)

2回目以降なら大丈夫だとは思いますが、ここで挫折するのはもったいないので注意して下さい。

("" は、何か書いてるよ〜って意味です。)

 

scanf()のあるプログラムの実行

このプログラムを端末で実行すると、そのscanfの所で処理が止まってみえることがあります。

 

あれ?無限ループ?」って思うかもしれませんが、scanf()は「入力して下さいね」っていう関数なので端末適切な内容(多分課題に示されている)を入力してEnterを押すと残りもちゃんと実行してくれますのでご安心を。

 

=の意味は数学と違う

おいおい授業でやりますが、プログラムの世界での「=」は左右が同じという意味ではありません

 

なので、「Eevee = Eevee + 1」みたいな違和感ありまくりの表記も実は解釈できちゃったりします。

 

プログラムを持ち帰りたい

プログラムを保存したら、

  • Windowsの方からエクスプローラを開く
  • 生徒用のドライブを開く
  • sdrvフォルダがあるはずなので、それを開く
  • 持ち帰りたいプログラムをコピーする

 

ファイルについては、大学で用意しているデスクトップPC(図書館除く)ならどれでもアクセスできるので、持ち帰らないのならUSBにコピーしなくても大丈夫です。

 

例えば、演習室で作ったやつを1号館のPCで続けたい!……っていう時とかね。

(図書館のPCでやりたい時は、USBメモリにコピーして持って行って下さい。)

 

 

オマケについては、そのうち更新するかもしれません。

 

 

以上、「プログラミング入門及び同演習」の授業レポートでした!