プログラミング教室を行いました!

クリエイターズ同好会では,先日10月22,23日の工嶺祭一般公開日にプログラミング教室を行いました.

今までにない試みだったのですが,たくさんの方々が訪れてくださり良い企画だったのではないかと思っています.
対象を中学生に絞っていましたが,「プログラミング教室を体験してみたい!」という小学生から高校生のみなさんが参加してくれました.

この教室で少しでもプログラミングに興味を持ってもらえたらうれしいです.

今回作成したテキストは,
http://dl.dropbox.com/u/6980393/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%AC%9B%E5%BA%A7%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%80%80%E5%AE%8C%E6%88%90.pdf
にあります.
同好会の1年生が中心に作ってくれました.(感謝!

僕は他の仕事もあり,プログラミング教室で教えた時間は少なかったのですが,目を輝かせてプログラミングをしている参加者のみなさんを見て,初めてプログラミングをした時の感動を思い出しました.この感動を是非とも忘れないで,これからもプログラミングを続けてみてください!

実際にやってみての反省点などが出てきたので,来年に向けてつなげていきたいと思います.
ご来場されたみなさん,ありがとうございました!

# 長野高専のキッズサイエンスでプログラミング教室みたいなのが無いのはなぜだろう...
# サイエンスだから?

CPad & Borland C++ CompilerでC言語開発環境

「CPad & Borland C++ Compiler」を使ったC言語開発環境の構築について簡単に説明します。

僕はWindowsでC言語を使うときは,基本的にCygwinで作業しています。
なので,使っているコンパイラはGCCですね。

コンパイラ(compiler)とは、プログラミング言語で書かれたプログラムを、コンピュータが直接実行可能な機械語のプログラムに変換するソフトウェアである。

(コンパイラ – Wikipedia: http://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%A9

今回は1年生に対するC言語入門のために,お手軽なC言語開発環境である「CPad」を使います。
正式名が「CPad for Borland C++ Compiler」なので,一応「Borland C++ Compiler(以下BCC)」をコンパイラとして使います。

「CPad」については,こちらから。
http://hp.vector.co.jp/authors/VA017148/pages/cpad.html

では,以下に手順を示します。

1.CPadとBCCの入手

CPadは本家のサイトからのリンクは切れているので,こちらからダウンロードしましょう。
CPad for Borland C++ Compiler」
http://cpad.michikusa.jp/

BCCも元のサイトでは配布されておらず,探してみたらembarcaderoというところで配布されているとか。
「C++コンパイラの入手方法」の手順に沿って「Borland C++ Compiler」を入手します.
http://www.embarcadero.com/jp/products/cbuilder/free-compiler?redirect=http://www.codegear.com/jp/downloads/free/cppbuilder

2.解凍&インストール

CPadはLZH形式で圧縮されているので,何かしらの解凍ソフトで解凍しましょう。(Lhaplusとか)
BCCの方はZIP形式なのでそのまま解凍できますね。

CPadはインストール形式ではないので,適当なフォルダに配置してください。
BCCの方は解凍すると,インストーラが2つ出てきますが「freecommandlinetools2.exe」だけインストールすればいいです。(Turbo Debuggerは使わない)
インストール先はデフォルトだと「c:borlandbcc55」になるようです。
特に問題がなければそのままインストールしてください。

3.設定

それでは,CPadを起動してみましょう。「bcpad.exe」が本体です。
起動すると設定画面が出ると思うので,「コンパイラのパス」を設定します。

BCCを「c:borlandbcc55」にインストールしたなら,「C:borlandbcc55Binbcc32.exe」と設定すればOKです。(インストールディレクトリ直下のBinの下にコンパイラがあります。)

あとはお好みで設定をしてください。

4.Hello World!

さて,「Hello World!」のお時間となりました!
下のソースコードを打ち込んで実行してみましょう。

#include <stdio.h>

int main() {
printf("Hello World!n");

return 0;
}

うまく実行されれば「Hello World!」と出力されるはずです。

それでは,楽しいC言語ライフを.

Processingでアナログ時計をつくろう!

1年M科のshinroboです。

今回は部長から課題として出された「Processingでアナログ時計をつくる」についてです。

Processingでは比較的簡単に図を書くことができるので、プログラミング初心者の僕でも簡単につくることができました。

概要としては、円の中心Oから、円周の点Pに向かって線を引き、その座標を習得した時刻に合わせて変化させていくという感じです。

その点Pの座標を決めるには三角関数を使います。

具体的には、

Pのx座標=r * cos(θ)
Pのy座標=r * sin (θ)
(r = 針の長さ、θ=基準からの角度)

で表すことができます。

実際には、秒針、分針、時針の3本が必要なのでそれぞれの座標を決める必要があります。

・・・・と色々書いてきましたが、実物を見てもらったほうが早いです。
(ここに直接載せたかったのですがファイルのアップロードの方法がわからず、別サイトになってしまいました。次までに調べておきます。)

ソースコードはこちらからも見ることができます。だいぶ汚いです。

針の下にデジタル表示もさせてみましたが、さらに、各数字を8パーツに分けて、取得した時刻に合わせて表示させるようなデジタル時計も作ってみたいと思います。

第1回活動方針会議

新しく投稿者として参加するM科のshinroboです。

その他に以下のメンバーも投稿に参加しますのでよろしくお願いします。
  • reputon
  • aoi14
  • kaohshi
  • 乾電池
  • Taruru
今日はクリエイターズ同好会の今後についていろいろ決める活動方針会議が開かれ、
  • 夏休みまでの計画
  • 工嶺祭の展示
  • ブログの管理
について部長から説明がありました。
1年生は(というかM科の自分は)情報処理基礎の授業でも扱っているProcessingを身につけていく方向です。

部活動説明会の開催について

クリエイターズ同好会改め情報技術研究部(予定)では、部活動説明会を行います!

日時: 4/19(火) 16:00~
場所: 図書館センター2階 第1セミナー室
内容: 

  • 活動内容の説明
  • プロコンについて
  • プログラミング関連の紹介(デモ)

部活の内容については部活昇進についての記事をごらんください。

なお,説明会前でも活動見学は大歓迎です。

普段は、情報科棟1階奥にあるAVC室で、水曜日、金曜日の16:00から活動しています。
気軽に見学へお越しください。
また、それ以外の日も活動を行なっている場合があります。(ただし,木曜日は除く)

説明会への参加をお待ちしております!

「情報技術研究部」へ

今年度クリエイターズ同好会は,「情報技術研究部」と名を改め,さらに部活動に昇進しようと考え,現在申請中です。

それに合わせ,活動内容も決定しました。
今年は,
  • 全国高等専門学校プログラミングコンテストへの参加
  • アプリケーション開発
    • 「パソコンOS上で動くアプリ開発」
      • Windows, Macintosh, Linux, UNIXなど
    • 「モバイル端末上で動くアプリ開発」
      • iPhone, Android, Windows Phoneなど
  • マイコンを用いた作品制作
    • Arduinoという手軽にマイコンを扱えるソフトウェアを利用

これらは,工嶺祭などで展示発表する予定。

  • プログラミング入門講座
    • プログラミングに初めて触れる人向け
  • 部内勉強会
    • 主に,プレゼン形式での発表
  • 校内プログラミングコンテスト
    • 今年度中に開催できるかは未定だが,部員以外でも参加できるイベントとして考えている
以上のような活動を行っていく予定です。

プログラミング入門講座では、Processingを使う予定です。
「情報処理基礎」でも同じものを扱っているので,こちらでは実践的な力を養っていこうと思います。

また,入部しなくても授業などでわからない部分があれば,最低でも1年生レベルはカバーできますので,いつでも聞きに来てください。

毎週水曜日、金曜日の16:00~ 電子情報工学科棟 1階奥 AVC室にて活動しています。
また,月曜日と火曜日も活動していることがあります。

入部,見学大歓迎です!冷やかしも大歓迎です。
新入生ももちろんですが、上級生の方の入部,見学も大歓迎です。

これからもクリエイターズ同好会改め情報技術研究部(予定)をよろしくお願いします。

競技部門について

さて、今日で高専生最後の日です。

高専生なうちに競技部門について感じたことを書いてみようと思います。
2010年の競技部門からなので来年のためになるかは別。
メンバーは出来れば3人。
今年は自分が至らずほぼ自分一人で作るという失礼な結果になったのでその辺の分担についてもちょびっと。
アルゴリズムについては当然全員で話しあうこと。

とりあえず流れ。

まず、4月に公開されるであろう要項をよく読むこと。
ここでちゃんとルールを把握するように。
そして、要項には競技の評価方法とかが書いてあるはずなので、自分たちでその評価ができるツールを必ず作ること。これが一人必要。

コーディングを始めるときには、アルゴリズムを決定するまえにプログラムの構造を先に考えること。
アルゴリズムなんてどうせ試合前5分とかまで変更し続けるんだからコードが肥大化しても自分が扱いやすく変更しやすい物にする。
コーディング担当は一人で結構。チームで相談して決定したアルゴリズムをできるだけすべて実装すること。下手にアルゴリズム同士を組み合わせない。
組み合わせるのは実装して評価してある程度煮詰めた後で。
そしてこの評価を残った一人が行うこと。
コーディングしてる人疲れるから休ませてあげて。
逆に言うとコード書く人はテストとするのが嫌になるほど気合入れてコードを書くようにしないとダメ。
ずっと考えてずっと書き続けることで微妙な修正点と飛躍的な改善方法が生まれる。かもしれない。

まあそんな感じで試合まで頑張る。
試合終われば寝れるから大丈夫だ。

次にアルゴリズムとかコーディングについて。
まずはルールを把握して、ある程度コードを書いて最低限動くものを作ること。
2010年で言うと「配水」「チャージ」「移動」ができるってとこまで。
そこからアルゴリズム。
ちょっとやると改善したくなるしする方法もすぐわかる。
でもその前に競技内容で一番勝ちにつながることを考える。
2010年では「水の配水量」がそのまま点数で、相手の邪魔をしても点数にはならない。
つまりいかに水の配水を効率よく行っていくかが勝ちに近づく方法だったわけで。
中途半端に「あれもしよう」「これもしよう」「これ付けたら強いんじゃね」とか絶対にしない。
たとえ計算量とか非現実的でも、まずは勝ちに一番近づける部分を可能なかぎり煮詰めること。
動きさえすれば絶対勝てるっていうものはどんなゲームでも必ずありますのでそれを見つけられるように。

そして、いらんもの作らない。
競技結果発表前に自分たちの順位がわかるものつけちゃったりとかしない。
(ちなみに2010年長野高専競技プログラムは正常終了しないプログラムでした。)
そんなことしたって結果発表のドキドキが失われるだけなのでそんな時間あったらチョコ買いにいくとかカラオケ行って気晴らしするとかしてください。

あとちょろっと評価について。
まあ、評価したときに順位が出る物であれば、一つ下の順位とのスコアの差を常に気にするように。
順位が上がるように改善できなくても、この差が増えていればきちんと改善されていると考えて良いと思います。

以上ですが、一番大事なことは「一見無理そうに見えるけどこれできたら絶対勝てる」を諦めないで作れってことです。
それに必須でない機能は付けない。
例えば相手のスコア計算するものとか、いらないでしょ?

そんなわけで来年から競技出る人頑張ってください。
そろそろ長野高専にも競技1位欲しいです。
あと、うちの学校1位とか2位にならないと入賞してないのとあんま変わらない扱いなので頑張ってくださいね。

来年度のクリエイターズ同好会

 来年度(平成23年度)のクリエイターズ同好会の活動について次々と決定されています。

現在、来年度はプロコン出場者とそれ以外の人で活動を分けていこうと思っています。
プロコンに出場しない人は主に新入生になると思われます。


・来年度のプロコン
 来年度のプロコンの大まかな予定は以下の通りです。募集期間までに作品をどうするか決めなくてはいけないのであまり時間はありません。
募集期間:5月20日(日)〜27日(金)
予選:6月25日(土)
本選:10月15日(土)・16日(日) 場所:一関文化センター
今年もプロコンメンバーを集めて予選突破を目指します。

。プロコン以外の活動

 Processingと呼ばれる言語を用いてプログラミングの基礎を学びます。本年度の反省を活かして来年度は教材、教える側の人間をきちんと用意して、活動が止まらないようにしていきます。
Processingを選んだ理由ですが、この言語はとても簡単にグラフィックを扱えるので成果が出やすく、「コマンドラインだけを見て絶望→挫折」ルートとならない可能性が高いためです。一通りプログラミングの基礎を学んだらゲームなどの作品を作ってもらうような方向性で考えています。

以上が来年度の予定ですが、現在Processingの代わりにツクールを使ったらどうかという案が出ているなど、ほとんど未定です。

2011年度クリエイターズ同好会長あいさつ

2011年度のクリエイターズ同好会長になりました奥本です。

今年度は同好会活動の計画をしっかり立てて,同好会全体の技術力を高めていきたいと思っています。

今のところ考えている活動内容は,

などになります。

プログラミングの入門講座では,簡単に見栄えるする成果物を作った方が,楽しいかと考え「Processing」を利用して「グラフィック系」を扱おうかと思います。これなら,学園祭とかの展示作品も見栄えして一石二鳥ですね。
個人的には,C言語とかで計算バリバリとかも楽しいですがw

でも,C言語を使ってコンピュータの内部を感じる事はとても大切なので,C言語でのプログラミングもしっかり取り入れたいと思います。(素数計算とか(ry)

入門講座だけ(要するに受動的)では個人個人の技術力がグンと高まることは無いと思います。
やはり,自分から「これをやってみたい。」,「あれをやってみたい。」と求めて行く必要があります。(自発的に,能動的に)

それらをクリアするためには,各種大会に出ることがベストな方法だと僕は思っています。
大会に出ることにどんなメリットがあるかというと,

  • 目標ができる
  • 意欲がわく
  • 必然的に自分から行動しなければならなくなる
  • 他の人からとても良い刺激を受ける
  • 自分の技術力を知ることができる
  • 技術力が向上する

などなど,まだまだたくさんありますが,この様なことが「大会に出ること」でのメリットではないでしょうか。
僕は,去年プロコンに出場させて頂きましたが,プロコン前とプロコン後では明らかに技術力がついたと感じています。(まだまだ太刀打ち出来ない程度ですが。。。)また,他高専の素晴らしい方々を目の当たりにして,自分自身をもっと高めて行きたくなりました。

長くなりましたが,今年度は部員全員が何かしら大会などに出る様にするということを,考えています。

最後に,今年度は同好会の活動を盛り上げたいと考えています。
あと,情報系の学科がある学校なのにも関わらず,情報系のクラブの規模が小さいので,もっと活動を広く知ってもらい,規模を大きくしていきたいと考えています。

よろしくお願いいたします。

post

第21回プログラミングコンテストの結果

今年は,競技部門と自由部門が本戦に出場することが出来ました。課題部門も1チーム予選に応募したのですが,残念ながら予選落ちという結果に終わってしまいました。

本戦では競技部門,自由部門ともに上位入賞し,活躍して参りました。

競技部門 「高専の治水基礎B」
 第3位

自由部門 「Connect Beat!」
 特別賞・企業賞(ブロードリーフ賞)
概要:予選資料(PDF)

大会後の記念撮影

5年生2人,4年生2人,2年生1人,1年生3人というメンバーが本戦に参加し,低学年メンバーが多い中それぞれのチームが一丸となって力を合わせ,素晴らしい賞を頂いて来ました。

この場をお借りして,私たちを手厚くサポートしてくださった,伊藤先生,鈴木先生を始めとする諸先生方や応援していただいた先輩,同輩,後輩,会場を準備していただいた高知高専の皆さま,私たちを評価していただいたプロコン委員の先生方,そして多様な面で支えていただいた家族の皆さまにお礼を申し上げたいと思います。本当にありがとうございました。今後も皆さまの期待を裏切らぬよう,日々努力していく次第です。

(長野高専 第21回プロコン出場メンバー 一同)


競技部門・決勝戦(プロコン公式サイトより)

開発作業の様子(自由部門)

ブロックを製作中

いざ出陣


現地でも奮闘(自由部門)

シリアル通信がおかしい!?

ブースの様子(1日目)

内部構造(マスターブロック)
リズムブロックとトーンブロック