ホチキス先生の「プログラマーと呼ばれたい」

InfoPath & SQL Server !

Archive for the ‘Microsoft Visual Studio’ Category

プログラミングせずにプログラミング思考が身に着くはずがない – 「プログラミング思考」という言葉のまやかし – Visual Studio を使った C# プログラミングは最高の学習環境である。

leave a comment »

「情報教育」や「プログラミング教育」という言葉が表に出るたびに本質を捻じ曲げる言葉が作り出される。その理由は明らかだ。コンピュータのことを知らない人間が「情報教育」を語るとき、「情報教育はコンピュータを教えるものではない」と言い、プログラミングを知らない人間が「プログラミングができなくてもプログラミング思考を身に着けることができる」と言う。この二つの理由の根は同じだ。

たとえばこのように言ってみよう。「英語で話ができなくても英語的思考を身に着けることができる」「足し算引き算ができなくても数学的思考を身に着けることができる」「電池を豆電球につなぎ光らせることができなくても理科的思考を身に着けることができる」「楽器を何も弾くことができなくても音楽的思考を身に着けることができる」

もうこれでいいだろう。

つまり、「プログラミングができる」ということは「プログラミング思考」を養う基本的な一歩なのだ。

しかし、このことは当然、実用的なアプリケーションを完成させるまでのプログラミング力を養う必要はない、ということも真実である。またどのような言語を使うかも、学習者のレベルにあわせて選択すべきであろう。学習ツールとしてのプレアットフォームも同様だ。

小学生ならブロック型のプログラミング言語を使うことがいいだろう。そしてブロックの背後にはコードがあることを体験させる。中学生程度なら多くの学校で実践されているエクセルのマクロ、VBA を使うのもいいだろう。厳密に言えばエクセルのマクロはプログラミングではなく、エクセルというアプリケーションソフトの「オートメーション」だ。しかしエクセルのマクロには学習者にとってたいへん有効な、マクロの自動記録の機能がある。マクロの記録をしながら画面を操作すると、操作の手順がマクロとして記録される。このコードを元にして応用、発展させることで、マクロの自学自習ができる。

高校生では本格的なプログラミングを学習させるべきだ。高校生には実際に社会で使われているアプリケーションやプラットフォームを使って実習をさせるべきである。筆者は20年も前に高等学校でマルチメディアデザインの授業を始めたが、当時いくつかあった安価な画像編集ソフトを使わず、Adobe の Photoshop を使った。

新しい技術の概念はツールに表現されている。適切なツールを使うことで新しい技術概念を正しく身に着けることができる。技術とツールは不可分である。

どの言語を使ってプログラミング教育をしていい。とならば、Visual Studio を使った C# プログラミングは大きな選択肢の一つである以上に、コンピュータの OS が Windows であるならば、最も開発環境を整えやすく、実社会で使われており、効率よく、単純なものから高機能なものまで作ることができ、データベースやネットワークの実習ができるアプリケーションも簡単に作ることができ、しかも書店に行けば初心者から上級者まで様々な解説書が手に入る、Visual Studio と C# の組み合わせは最高の選択肢だといえる。

2018年10月10日

松本 吉生(まつもとよしお)
Microsoft MVP Data Platform

1961年京都に生まれ、神戸で幼少期を過ごす。大学で応用化学を学んだのち、理科教諭として高等学校に勤務する。教育の情報化が進む中で校内ネットワークの構築運用に従事し、兵庫県立明石高等学校で文部科学省の「光ファイバー網による学校ネットワーク活用方法研究開発事業」に携わる。兵庫県立西宮香風高等学校では多部制単位制の複雑な教育システムを管理する学籍管理データベースシステムをSQL ServerとInfoPath、AccessなどのOfficeソフトウエアによるOBA開発で構築・運用する。2015年から2017年まで兵庫県立神戸工業高等学校でC#プログラミング、IoTなどのコンピュータ教育を行い、現在は兵庫県立神戸甲北高等学校に勤務する。2004年からマイクロソフトMVP(Microsoft Most Valuable Professional)を受賞し、現在15回目の連続受賞。2016年にマイクロソフト認定教育者(Microsoft Innovative Educator Experts : MIEE)を受賞し、現在4回目の連続受賞。

広告

C# – 教科「情報」の授業で使うタイピングトレーニングのソフトを作っています。その1。

leave a comment »

教科「情報」の授業でタイピングの練習を定期的にしようと思っているが、そのための簡単なトレーニングソフトを作っている。

文字入力トレーニングソフトの画面_mid_640_480

「開始」のボタンをクリックすると入力用のテキストボックスが入力できるようになり、時間が計測される。入力が終われば「終了」のボタンをクリックし、時間の計測を終えてかかった時間を表示し、入力間違いを評価してスコアにする。

いまどき、様々な文字入力のトレーニングソフトがあるが、あえて自作をしたいのは、集計結果を自動的に集約するようにしたいからだ。プログラムにソケット通信の機能をもたせ、ローカルのコンピュータにデータを送ることや、Webサービスを利用してインターネットのデータベースにデータを蓄積する。するとトレーニングの状況を一括で管理できるからだ。

教科「情報」では様々な実習をするが、実習は準備も手間だがそれ以上に終えてからの評価に手間がかかる。1クラス 40人、仮に 8クラスを担当していれば、1つの実習ごとに 320の実習レポートを評価しなければならない。実習の評価をディジタル化し、ネットワークを利用して集約できれば便利だ。

まだバージョン 1.0 というところだが、これから少しずつ機能を充実させたい。様々なアイデアを盛り込みながら。開発環境はもちろん Visual Studio を使い、開発言語は C# だ。

2017年4月21日

松本 吉生(まつもとよしお)
Microsoft MVP Data Platform

1961年京都に生まれ、神戸で幼少期を過ごす。大学で応用化学を学んだのち、理科教諭として高等学校に勤務する。教育の情報化が進む中で校内ネットワークの構築運用に従事し、兵庫県立明石高等学校で文部科学省の「光ファイバー網による学校ネットワーク活用方法研究開発事業」に携わる。兵庫県立西宮香風高等学校では多部制単位制の複雑な教育システムを管理する学籍管理データベースシステムをSQL ServerとInfoPath、AccessなどのOfficeソフトウエアによるOBA開発で構築・運用する。現在は兵庫県立神戸工業高等学校でC#プログラミング、IoTなどのコンピュータ教育を行う。2004年からマイクロソフトMVP(Microsoft Most Valuable Professional)を受賞し、現在14回目の連続受賞。2016年にマイクロソフト認定教育者(Microsoft Innovative Educator Experts : MIEE)を受賞。

C# プログラミング – Visual Studio 2017 で作る Windows Form アプリケーションでデフォルト値を保存できるようにする。

leave a comment »

作ったアプリケーションにデフォルト値を保存できるようにしたい。Visual Studio による C# アプリケーション開発なら驚くほど簡単にできる。

まずプロジェクトを開始したら、ソリューションエクスプローラーのアプリケーション名を右クリックしてメニューを表示させる。その中に「プロパティ」の項目があるので、そこをクリックする。

すると次のようなウィンドウが表示されるので、その中から「設定」の項目をクリックする。この「設定」というのがアプリケーション内に保存されるデフォルト値を管理する項目になる。やや日本語がぴったりでない気がするが。

青くなっている「設定」というところをクリックして、アプリケーション内で使いたい名前に変更する。ここでは「mySaveText」という名前にした。この名前をアプリケーション内で使うので覚えておく。

メニューの「×」をクリックして閉じようとすると、プロジェクトを変更しますか、というダイアログが表示される。このときにプロパティ値の設定が保存される。

保存されたら開発画面に戻るので、フォームにテキストボックスを 2つ、ボタンを 3つ作ろう。それぞれ名前は「textBox1」「textBox2」「button1」「button2」「button3」だ。

そしてボタンのクリックイベントに次のコードを書く。

—————————————————————————————

private void button1_Click(object sender, EventArgs e)
{
Properties.Settings.Default.mySaveText = textBox1.Text;
}
private void button2_Click(object sender, EventArgs e)
{
textBox2.Text = Properties.Settings.Default.mySaveText;
}
private void button3_Click(object sender, EventArgs e)
{
Properties.Settings.Default.Save();
}
—————————————————————————————

button1 に書いた Properties.Settings.Default.mySaveText = textBox1.Text のコードで、テキストボックス1に書いた文字がプロパティ値に記録される。button2 に書いた textBox2.Text = Properties.Settings.Default.mySaveText のコードで、プロパティ値が textBox2 に呼び出されることがわかる。しかしこれだけではアプリケーションを終了するともとに戻ってします。アプリケーションを終了してもプロパティ値が保存されたままにするのは、Properties.Settings.Default.Save() のコードだ。button3 をクリックしてアプリケーションを終了し、ふたたび起動してプロパティ値が保存されていることを確かめよう。

プロパティ値の保存がなんと簡単にできることか。Visual Studio による C# アプリケーション開発は素晴らしい。

Written by Yoshio Matsumoto

2017年4月14日 at 5:56 PM

学校の先生のための SQL Server 2016 による成績処理 (1) – SQL Server 2016 Express のダウンロード

leave a comment »

今日における高等学校では生徒の成績処理や学籍管理において、多少ともコンピュータの処理がかかわっているだろう。授業担当者は自分が担当する講座の生徒の成績を、学級担任はクラスの生徒の出席状況やホームルーム活動の記録などをエクセルのような表計算ソフトで処理しているだろう。そして学校全体の成績管理をする教務部は、これらのデータを集めて成績会議の資料を作り、生徒の指導要録を管理し、また進路指導部は調査書の処理をしているはずだ。

これらのデータ処理をエクセルのような表計算ソフトを使って学校全体で行っているケースは多いと思われる。しかし表計算ソフトウエアはもともと個人ベースのデータ処理ツールとして開発されたもので、マルチユーザーでの利用には限界がある。学校の規模にもよるが、高等学校には数十名の教職員が勤務しており、定期考査が終わり評価をつけ、成績会議までの日程はあまり長くない。そして何よりも成績処理には正確さが求められる。成績処理には会計処理における「出納違算金」のようなものはなく、1点でも誤りがあってはいけないのだ。

また学校制度が多様化し、学習指導要領に決められていない「学校設定科目」などを多く開講する「総合学科」や夜間定時制を昼間の時間帯にも拡張した「多部制」、学年の区切りがない「単位制」など新しいタイプの学校ができ、また従来からも自宅学習が基本となる「通信制」がある。これらの学校では、そもそも紙ベースでの成績処理、学籍管理には無理があるため、成績処理システムを外注していることが多い。

筆者は10年間、生徒定員1,120名の大規模な多部制、単位制高校に勤務し、成績処理と学籍管理を行ってきた。この学校は午前、午後、夜間の3つの部を持つ多部制、単位制高校で、毎年280名の入学生を受け入れ、100講座の授業を編成し、約4,500の受講登録をして単位の管理を必要とした。出席データは週当たり8,000件、1年間で30万件となった。これらの処理を、私が赴任するまでは業者に発注したデータベースシステムを使っていたが、さまざまな理由で学校事情をあわないものであったため、筆者はMicrosoft SQL Serverを使って学校独自のシステムを構築して運用した。この経験から学校では、その学校に応じたシステムを現場の教員が作る、いわゆる「内製」が望ましいと確信している。SQL Serverは簡単だ。ぜひ多くの教員がSQL Serverを知り、自ら望む最高のデータベースを構築し運用できることを願っている。

現在マイクロソフトのサイトから、SQL Server 2016がダウンロードできる。
Microsoft SQL Server のページ
https://www.microsoft.com/en-us/sql-server/sql-server-2016

SQLServer2016_for_teachers_001_mid_640

SQL Server 2016にはいくつかのバリエーションがあるが、その中に無料で使えるExpress版がある。実運用では正式版を購入することになるが、試験的な利用ではこのExpress版を使うことができ、現時点でSQL Server 2016 SP1 Expressバージョンが提供されている。

上のページでスクロールし、Editions をクリックするとダウンロードページへのリンクがわかる。
Microsoft SQL Server ダウンロードのページ
https://www.microsoft.com/en-us/sql-server/sql-server-2016-editions

SQLServer2016_for_teachers_002_mid_640

ダウンロードのリンクをクリックすると Microsoft SQL Server 2016 Service Pack 1 Express のダウンロードページが開く。いくつかの言語の版を選択できるようになるので言語のドロップダウンリストボックスをクリックし、英語、フランス語、ドイツ語、イタリア語につづく Japanese を選択してダウンロードする。
Microsoft SQL Server 2016 Service Pack 1 Express ダウンロードのページ
https://www.microsoft.com/en-us/download/details.aspx?id=54284

SQLServer2016_for_teachers_003_mid_640

ダウンロードではディスクのどこかにフォルダを作り、そこに保存する。保存できれば次のようなファイルが生成する。ファイル名は SQLServer2016-SSEI-Expr.exe だ。

SQLServer2016_for_teachers_004_mid

重ねて述べるが、SQL Server は難しくない。また Microsoft SQL Server のように多くのユーザーの支持を得て、業界標準となり、長くバージョンアップを繰り返して使われてきた製品は、そのたびに使いやすく機能が豊富になる。身に着けたことは技術資産となり積み上げられる。これを機会にぜひ使ってほしい。

2017年4月3日

松本 吉生(まつもとよしお)
Microsoft MVP Data Platform

1961年京都に生まれ、神戸で幼少期を過ごす。大学で応用化学を学んだのち、理科教諭として高等学校に勤務する。教育の情報化が進む中で校内ネットワークの構築運用に従事し、兵庫県立明石高等学校で文部科学省の「光ファイバー網による学校ネットワーク活用方法研究開発事業」に携わる。兵庫県立西宮香風高等学校では多部制単位制の複雑な教育システムを管理する学籍管理データベースシステムをSQL ServerとInfoPath、AccessなどのOfficeソフトウエアによるOBA開発で構築・運用する。現在は兵庫県立神戸工業高等学校でC#プログラミング、IoTなどのコンピュータ教育を行う。2004年からマイクロソフトMVP(Microsoft Most Valuable Professional)を受賞し、現在14回目の連続受賞。2016年にマイクロソフト認定教育者(Microsoft Innovative Educator Experts : MIEE)を受賞。

Written by Yoshio Matsumoto

2017年4月3日 at 10:21 AM

アドミンティーチャーズの「ラボワーク LW11 - Arduino UNO と Netduino 3 でモーターシールドを使い DC モーターを制御する」

leave a comment »

アドミンティーチャーズの「ラボワーク」、第5回は「Netduino 3 と 38 種類のセンサキット体験」をする。

leave a comment »

今年2月から毎月第一土曜日と決めて神戸三ノ宮の会議室を借りてやっているアドミンティーチャーズの「ラボワーク」。第5回は「Netduino 3 と 38 種類のセンサキット体験」をする。

38 種類のセンサは、キースイッチ、ロータリーエンコーダスイッチ、タッチセンサ、距離センサ、サウンドセンサ、人感センサ、レーザーセンサ、磁気センサ、磁気リードセンサ、磁気ホールセンサ、温度センサ、赤外線センサ、傾きセンサ、衝撃センサ、水銀センサ、心拍センサ、炎センサ、リードセンサ、光ブロークンモジュール、ジョイスティックモジュール、フォトレジスタ、バイブレーション、ブザー、フルカラーLED、点滅LED、5Vリレーモジュール、などだ。似た機能のセンサやアクチュエータが複数あり、どんなセンサなのか想像しがたいものもある。今回はセンサキットを買っただけで使っていない。ぶっつけ本番の、まさに「ラボワーク」だ。

P1160745_mid_640_480

また今回から再び Netduino を取り上げる。Arduino と Netduino の両方でプログラミングをする。Netduino はモデルチェンジをしており、Netduino 2 から Netduino 3 となっている。Netduino 3 では I/O ポートが独立したコネクタでボードの片端にまとめられているのでセンサなどを接続しやすい。

P1160846_mid_640_480

P1160848_mid_640_480

第5回ラボワーク「Netduino 3と 38 種類のセンサキット体験」の詳細は、アドミンティーチャーズの Web サイトで。

アドミンティーチャーズ
https://adminteachers.wordpress.com/

アドミンティーチャーズ「ラボワーク LW05 – Netduino 3 と 38 種類のセンサキット体験」
https://adminteachers.wordpress.com/2016/06/03/%e3%83%a9%e3%83%9c%e3%83%af%e3%83%bc%e3%82%af-lw05-netduino-3-%e3%81%a8-38-%e7%a8%ae%e9%a1%9e%e3%81%ae%e3%82%bb%e3%83%b3%e3%82%b5%e3%82%ad%e3%83%83%e3%83%88%e4%bd%93%e9%a8%93/

<概要>

日時:2016年6月4日(土)19:00~20:00
場所:神戸市青少年会館 サークル4号室(6階)
        (前回の勤労会館と同じ建物です)

神戸市中央区雲井通5丁目1番2号
最寄駅は三宮(JR、阪神、阪急、神戸市営地下鉄)徒歩2分から5分
神戸市勤労会館へのアクセス

対象:高等学校の情報教員、または情報教育に関心のある方
定員:15名
申し込み:電子メール

宛先 ad-teachers@outlook.com
件名 「2016年6月4日 ラボワーク LW05 申し込み」
メールの本文にご氏名、所属をお書きください。

100 円均一ショップで買った乾電池チェッカーで Netduino 2 と Arduino UNO の PWM パルス幅変調アナログ出力をチェックする

leave a comment »

100 円均一ショップには電子工作で使えそうなものがたくさんある。電子パーツとして買うとそれなりに値段がするものが手軽に手に入る。100 円均一ショップで売っていたアナログメーター式の乾電池チェッカーを使って Netduino 2 と Arduino UNO の PWM パルス幅変調アナログ出力をチェックする実験をしてみた。

Netduino 2 や Arduino UNO のアナログ出力は PWM パルス幅変調 Pulse Width Modulation であり、実際に出力電圧が変化しているのではない。5V の電圧を出力するにあたってパルスを使い、パルス幅の 5V と 0V の比を変化させることで平均電圧、という表現は正確ではないかもしれないが、疑似的に電圧を変化させるのと同等の効果を得ているのだ。ちなみに Arduino Due には D/A 変換回路が組み込まれており、本物のアナログ出力を行うことができるようだ。

P1110829_clip_640_480

まず本体を分解する。ニッパーとペンチで角から。分解すると内部はアナログメーターと 4 本の抵抗で構成されていることがわかる。はんだごてではんだを溶かしてばらばらにする。

P1110830_mid_640_480

P1110831_clip_640_480

念のため元の回路とテスターで測った抵抗の実測値をメモしておく。

P1110832_mid_640_480

このアナログメーターで、5V の出力値を MAX で表示できるようにすればいい。そこでいくらの抵抗をつなげばよいかをボリュームで調節して決める。ボリュームの値は 800 オームから 1k オームにすればよいことがわかった。

P1110833_mid_640_480

手元に適当な値の抵抗がなかったので、510 オームの抵抗を 2本直列につなぎ、1.02 kオームにして使うことにした。回路はとりあえず空中配線で。

P1110834_mid_640_480

Netduino 2 で PWM によるアナログ出力をするには、C# では次のようなコードになる。パルス幅を連続的に変化し、フェードイン、フェードアウトの効果を得る出力だ。

———————————————————————————

using System;
using System.Net;
using System.Net.Sockets;
using System.Threading;
using Microsoft.SPOT;
using Microsoft.SPOT.Hardware;
using SecretLabs.NETMF.Hardware;
using SecretLabs.NETMF.Hardware.Netduino;

namespace Netduino_Analog_Out_Blink
{
public class Program
{
public static void Main()
{
PWM myPWM = new PWM(SecretLabs.NETMF.Hardware.Netduino.PWMChannels.PWM_PIN_D9,100,0,false);
double myAdd = 0.001;

myPWM.Start();

while(true)
{
myPWM.DutyCycle = myPWM.DutyCycle + myAdd;
Thread.Sleep(2);

if(myPWM.DutyCycle > 0.999)
{
myAdd = myAdd * (-1);
}
if(myPWM.DutyCycle < 0.001)
{
myAdd = myAdd * (-1);
}
}
}
}
}

———————————————————————————

これを電池チェッカーのメーターで受け取ると、メーターの針がゆっくりと右へ左へ振れることがわかる。

P1110837_mid_640_480

Arduino UNO で PWM によるアナログ出力をするには、次のようなスケッチになる。

———————————————————————————

int bri = 0;
int myAdd = 5;

void setup()
{
pinMode(9, OUTPUT);
}

void loop()
{
analogWrite(9, bri);

bri = bri + myAdd;

if (bri == 0 || bri == 255)
{
myAdd = myAdd * (-1);
}
delay(40);
}

———————————————————————————

P1110835_mid_640_480

2016年2月22日

松本 吉生(まつもとよしお)
Microsoft MVP Data Platform

1961年京都に生まれ、神戸で幼少期を過ごす。大学で応用化学を学んだのち、理科教諭として高等学校に勤務する。教育の情報化が進む中で校内ネットワークの構築運用に従事し、兵庫県立明石高等学校で文部科学省の「光ファイバー網による学校ネットワーク活用方法研究開発事業」に携わる。兵庫県立西宮香風高等学校では多部整単位制の複雑な教育システムを管理する学籍管理データベースシステムをSQL ServerとInfoPath、AccessなどのOfficeソフトウエアによるOBA開発で構築・運用する。現在は兵庫県立神戸工業高等学校でC#プログラミング、IoTなどのコンピュータ教育を行う。2004年からマイクロソフトMVP(Microsoft Most Valuable Professional)を受賞し、現在14回目の連続受賞。2016年にマイクロソフト認定教育者(Microsoft Innovative Educator Experts : MIEE)を受賞。