<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Cholwich's blog &#187; teaching</title>
	<atom:link href="http://cholwich.org/wordpress/category/teaching/feed/" rel="self" type="application/rss+xml" />
	<link>http://cholwich.org/wordpress</link>
	<description>Just another blog of mine</description>
	<lastBuildDate>Thu, 02 Jun 2011 02:00:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>จับลอกการบ้านแบบพื้นๆ</title>
		<link>http://cholwich.org/wordpress/2011/01/17/%e0%b8%88%e0%b8%b1%e0%b8%9a%e0%b8%a5%e0%b8%ad%e0%b8%81%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%9a%e0%b9%89%e0%b8%b2%e0%b8%99%e0%b9%81%e0%b8%9a%e0%b8%9a%e0%b8%9e%e0%b8%b7%e0%b9%89%e0%b8%99%e0%b9%86/</link>
		<comments>http://cholwich.org/wordpress/2011/01/17/%e0%b8%88%e0%b8%b1%e0%b8%9a%e0%b8%a5%e0%b8%ad%e0%b8%81%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%9a%e0%b9%89%e0%b8%b2%e0%b8%99%e0%b9%81%e0%b8%9a%e0%b8%9a%e0%b8%9e%e0%b8%b7%e0%b9%89%e0%b8%99%e0%b9%86/#comments</comments>
		<pubDate>Mon, 17 Jan 2011 08:58:10 +0000</pubDate>
		<dc:creator>cholwich</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[teaching]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[plagiarism]]></category>

		<guid isPermaLink="false">http://cholwich.org/wordpress/?p=414</guid>
		<description><![CDATA[เทอมนี้ผมได้รับมอบหมายให้สอนวิชา Introduction to Computers and Programming ซึ่งเป็นวิชาพื้นฐานสำหรับนักศึกษาชั้นปีที่ 1 ทุกโปรแกรม มีนักศึกษาลงทะเบียนจำนวนมาก อย่างเทอมนี้ก็มีเกือบ 300 คน เนื้อหาหลักก็คือสอนการเขียนโปรแกรมภาษา C กับอัลกอริทึมพื้นฐาน (อย่างเช่น searching และ sorting) แต่การเขียนโปรแกรมเป็นทักษะที่ต้องฝึกฝนบ่อยๆ จึงทำเข้าใจและทำได้ วิชาก็เลยมีทั้งบรรยาย ปฏิบัติการ และการบ้าน (ปีนี้ดีหน่อยที่สามารถหาคนมาช่วยตรวจการบ้านได้) เมื่อมีการบ้านให้คะแนนแล้ว ผมก็อยากจะให้ทำการบ้านกันจริงๆ (อย่างน้อยก็ควรจะได้สัมผัสและฝึกฝนด้วยตนเอง) เลยจะต้องหาทางตรวจว่าลอกการบ้านกันบ้างหรือเปล่า แต่การบ้านแรกคำถามจะค่อนข้างง่ายมาก ไม่สามารถพลิกแพลงหรือเขียนโปรแกรมแบบที่แตกต่างกันมากนัก (ส่วนใหญ่จะฝึกการเขียน expression ตามสูตรที่กำหนดให้) ก็เลยตรวจการลอกข้อสอบแบบง่ายๆ ก่อน (การบ้านครั้งต่อไปค่อยขยับขยายความซับซ้อนในการตรวจจับให้เพิ่มขึ้น) คือ ตรวจแค่ว่าส่งไฟล์เดียวกันมาหรือเปล่า ในที่นี้แปลว่าเอาไฟล์มาจากเพื่อนแล้วก็ upload ส่งมาให้เลยโดยไม่แตะต้องใดๆ ทั้งสิ้น เมื่อจะตรวจแบบพื้นๆ ผมก็แค่ใช้ hash function มาสร้าง message digest จากไฟล์ที่นักศึกษาส่งมา ถ้าไฟล์ไหนมี message digest [...]]]></description>
			<content:encoded><![CDATA[<p>เทอมนี้ผมได้รับมอบหมายให้สอนวิชา Introduction to Computers and Programming ซึ่งเป็นวิชาพื้นฐานสำหรับนักศึกษาชั้นปีที่ 1 ทุกโปรแกรม มีนักศึกษาลงทะเบียนจำนวนมาก อย่างเทอมนี้ก็มีเกือบ 300 คน เนื้อหาหลักก็คือสอนการเขียนโปรแกรมภาษา C กับอัลกอริทึมพื้นฐาน (อย่างเช่น searching และ sorting) แต่การเขียนโปรแกรมเป็นทักษะที่ต้องฝึกฝนบ่อยๆ จึงทำเข้าใจและทำได้ วิชาก็เลยมีทั้งบรรยาย ปฏิบัติการ และการบ้าน (ปีนี้ดีหน่อยที่สามารถหาคนมาช่วยตรวจการบ้านได้)</p>
<p>เมื่อมีการบ้านให้คะแนนแล้ว ผมก็อยากจะให้ทำการบ้านกันจริงๆ (อย่างน้อยก็ควรจะได้สัมผัสและฝึกฝนด้วยตนเอง) เลยจะต้องหาทางตรวจว่าลอกการบ้านกันบ้างหรือเปล่า แต่การบ้านแรกคำถามจะค่อนข้างง่ายมาก ไม่สามารถพลิกแพลงหรือเขียนโปรแกรมแบบที่แตกต่างกันมากนัก (ส่วนใหญ่จะฝึกการเขียน expression ตามสูตรที่กำหนดให้) ก็เลยตรวจการลอกข้อสอบแบบง่ายๆ ก่อน (การบ้านครั้งต่อไปค่อยขยับขยายความซับซ้อนในการตรวจจับให้เพิ่มขึ้น) คือ ตรวจแค่ว่าส่งไฟล์เดียวกันมาหรือเปล่า ในที่นี้แปลว่าเอาไฟล์มาจากเพื่อนแล้วก็ upload ส่งมาให้เลยโดยไม่แตะต้องใดๆ ทั้งสิ้น</p>
<p>เมื่อจะตรวจแบบพื้นๆ ผมก็แค่ใช้ hash function มาสร้าง message digest จากไฟล์ที่นักศึกษาส่งมา ถ้าไฟล์ไหนมี message digest เหมือนกัน ก็แปลว่าลอกกันมาทั้งไฟล์ จะไปได้หักคะแนนถูก การหาค่า message digest ของไฟล์การบ้านทั้งหมด ก็ใช้คำสั่ง find ของ unix</p>
<pre class="bash">
$ cd assignment1
$ find . -name "*" -not -type d -exec shasum '{}' \; | sort > digest_list.txt
</pre>
<p>คำสั่ง find ใช้หาชื่อไฟล์ตามเงื่อนไขที่กำหนด ในที่นี้คือเอาทุกไฟล์ ยกเว้นไดเรคทอรี เมื่อได้ไฟล์แล้ว เราก็สามารถสั่งให้รันโปรแกรม shasum โดย &#8216;{}&#8217; จะถูกแทนด้วยชื่อไฟล์ที่ค้นเจอแต่ละไฟล์ จากนั้นก็เอาไปเรียงลำดับเพื่อให้ไฟล์ที่มี digest เหมือนกันอยู่ติดกัน เก็บลงไฟล์​ digest_list.txt ที่เหลือก็แค่เขียนโปรแกรมจับกลุ่มว่าไฟล์ที่เหมือนกันมีใครบ้าง จัดเป็นกลุ่มก็เรียบร้อย</p>
]]></content:encoded>
			<wfw:commentRss>http://cholwich.org/wordpress/2011/01/17/%e0%b8%88%e0%b8%b1%e0%b8%9a%e0%b8%a5%e0%b8%ad%e0%b8%81%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%9a%e0%b9%89%e0%b8%b2%e0%b8%99%e0%b9%81%e0%b8%9a%e0%b8%9a%e0%b8%9e%e0%b8%b7%e0%b9%89%e0%b8%99%e0%b9%86/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>กรอกคะแนน</title>
		<link>http://cholwich.org/wordpress/2010/07/09/%e0%b8%81%e0%b8%a3%e0%b8%ad%e0%b8%81%e0%b8%84%e0%b8%b0%e0%b9%81%e0%b8%99%e0%b8%99/</link>
		<comments>http://cholwich.org/wordpress/2010/07/09/%e0%b8%81%e0%b8%a3%e0%b8%ad%e0%b8%81%e0%b8%84%e0%b8%b0%e0%b9%81%e0%b8%99%e0%b8%99/#comments</comments>
		<pubDate>Fri, 09 Jul 2010 09:11:23 +0000</pubDate>
		<dc:creator>cholwich</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[teaching]]></category>
		<category><![CDATA[input]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[score]]></category>
		<category><![CDATA[teaching. programming]]></category>

		<guid isPermaLink="false">http://cholwich.org/wordpress/?p=404</guid>
		<description><![CDATA[ผมรู้สึกว่าการกรอกคะแนนนักศึกษาเป็นเรื่องยุ่งยาก โดยเฉพาะคะแนนการบ้านกับควิซ ที่เก็บมาแบบไม่ได้เรียงตามลำดับรหัสนักศึกษา ไม่รู้ว่าอาจารย์คนอื่นเขาทำกันยังไง (โดยเฉพาะวิชาที่สอนกัน 200-300 คน) เดิมผมมักจะเอากระดาษมาเรียงตามรหัสนักศึกษา แล้วค่อยไล่กรอกลง spreadsheet แต่มันก็ยุ่งยาก ขี้เกียจอีก ความขี้เกียจนี้ส่งผลให้ผมไม่ค่อยได้คืนควิชหรือการบ้านกลับให้นักศึกษา แล้วก็จะมาหัวหมุนเอาตอนปลายเทอม เพราะต้องกรอกทุกอย่างให้เสร็จก่อนจะตัดเกรด วันก่อนก็เลยเขียนโปรแกรมเล็กๆ เอาไว้กรอกคะแนนควิซโดยเฉพาะ ฟีเจอร์หลักๆ ที่ต้องการก็คือ อยากใส่แค่รหัสนักศึกษาบางส่วน (3-4 ตัวก็พอ) ถ้าไม่ซ้ำก็กรอกคะแนนไปได้เลย ถ้าซ้ำก็แสดงตัวเลือกให้หน่อย แล้วค่อยกรอกคะแนน ตอนแรกก็อยากจะทำเป็น GUI สวยงาม มี textbox ให้กรอกรหัส แล้วจะแสดงตัวเลือกเหมือนพวก autocomplete อะไรทำนองนั้น แต่ก็ดูยุ่งยาก ขี้เกียจอีก (จะเห็นว่าขี้เกียจกันทุกขั้นตอน) แต่สุดท้ายเลยได้โปรแกรม python แบบ command-line มาอันหนึ่ง รับข้อมูลเป็น text file มีแต่รหัสนักศึกษา ใช้ regular expression สำหรับเทียบรหัสกรอกเข้ามา แล้วก็ให้เลือกได้ ถ้ามีรหัสตรงหลายอัน จากนั้นก็กรอกคะแนนลงไปได้ เรียบร้อย ใช้ได้ดี ตามข้างล่างนี้ [...]]]></description>
			<content:encoded><![CDATA[<p>ผมรู้สึกว่าการกรอกคะแนนนักศึกษาเป็นเรื่องยุ่งยาก โดยเฉพาะคะแนนการบ้านกับควิซ ที่เก็บมาแบบไม่ได้เรียงตามลำดับรหัสนักศึกษา ไม่รู้ว่าอาจารย์คนอื่นเขาทำกันยังไง (โดยเฉพาะวิชาที่สอนกัน 200-300 คน) เดิมผมมักจะเอากระดาษมาเรียงตามรหัสนักศึกษา แล้วค่อยไล่กรอกลง spreadsheet แต่มันก็ยุ่งยาก <strong>ขี้เกียจ</strong>อีก</p>
<p>ความ<strong>ขี้เกียจ</strong>นี้ส่งผลให้ผมไม่ค่อยได้คืนควิชหรือการบ้านกลับให้นักศึกษา แล้วก็จะมาหัวหมุนเอาตอนปลายเทอม เพราะต้องกรอกทุกอย่างให้เสร็จก่อนจะตัดเกรด</p>
<p>วันก่อนก็เลยเขียนโปรแกรมเล็กๆ เอาไว้กรอกคะแนนควิซโดยเฉพาะ ฟีเจอร์หลักๆ ที่ต้องการก็คือ อยากใส่แค่รหัสนักศึกษาบางส่วน (3-4 ตัวก็พอ) ถ้าไม่ซ้ำก็กรอกคะแนนไปได้เลย ถ้าซ้ำก็แสดงตัวเลือกให้หน่อย แล้วค่อยกรอกคะแนน ตอนแรกก็อยากจะทำเป็น GUI สวยงาม มี textbox ให้กรอกรหัส แล้วจะแสดงตัวเลือกเหมือนพวก autocomplete อะไรทำนองนั้น แต่ก็ดูยุ่งยาก <strong>ขี้เกียจ</strong>อีก (จะเห็นว่าขี้เกียจกันทุกขั้นตอน) แต่สุดท้ายเลยได้โปรแกรม python แบบ command-line มาอันหนึ่ง รับข้อมูลเป็น text file มีแต่รหัสนักศึกษา ใช้ regular expression สำหรับเทียบรหัสกรอกเข้ามา แล้วก็ให้เลือกได้ ถ้ามีรหัสตรงหลายอัน จากนั้นก็กรอกคะแนนลงไปได้ เรียบร้อย ใช้ได้ดี ตามข้างล่างนี้ (แต่ไม่รับประกันความผิดพลาดถ้าจะเอาไปใช้ เพราะ<strong>ขี้เกียจ</strong>เช็ค input error บางกรณีอีก) โปรดลองใช้กันได้ตามอัตภาพ <img src='http://cholwich.org/wordpress/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /><br />
<span id="more-404"></span></p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">sys</span>
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">re</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">class</span> Student:
	<span style="color: #ff7700;font-weight:bold;">def</span> <span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>,line<span style="color: black;">&#41;</span>:
		<span style="color: #008000;">self</span>.<span style="color: black;">line</span> = line.<span style="color: black;">strip</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
		l = <span style="color: #008000;">self</span>.<span style="color: black;">line</span>.<span style="color: black;">split</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">\t</span>&quot;</span><span style="color: black;">&#41;</span>
		<span style="color: #008000;">self</span>.<span style="color: #008000;">id</span> = l<span style="color: black;">&#91;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#93;</span>
		<span style="color: #008000;">self</span>.<span style="color: black;">score</span> = -<span style="color: #ff4500;">1.0</span>
	<span style="color: #ff7700;font-weight:bold;">def</span> <span style="color: #0000cd;">__str__</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
		<span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #008000;">self</span>.<span style="color: #008000;">id</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">def</span> saveData<span style="color: black;">&#40;</span>fname,students<span style="color: black;">&#41;</span>:
	f = <span style="color: #008000;">open</span><span style="color: black;">&#40;</span>fname, <span style="color: #483d8b;">'w'</span><span style="color: black;">&#41;</span>
	<span style="color: #ff7700;font-weight:bold;">for</span> i <span style="color: #ff7700;font-weight:bold;">in</span> students:
		score = <span style="color: #ff4500;">0</span>
		<span style="color: #ff7700;font-weight:bold;">if</span> i.<span style="color: black;">score</span> <span style="color: #66cc66;">!</span>= -<span style="color: #ff4500;">1</span>:
			score = i.<span style="color: black;">score</span>
		i.<span style="color: black;">line</span> += <span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\t</span>{0}'</span>.<span style="color: black;">format</span><span style="color: black;">&#40;</span>score<span style="color: black;">&#41;</span>
		f.<span style="color: black;">write</span><span style="color: black;">&#40;</span>i.<span style="color: black;">line</span><span style="color: black;">&#41;</span>
		f.<span style="color: black;">write</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: black;">&#41;</span>
	f.<span style="color: black;">close</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">def</span> inputUntilMatched<span style="color: black;">&#40;</span>prompt, pattern<span style="color: black;">&#41;</span>:
	<span style="color: #ff7700;font-weight:bold;">while</span> <span style="color: #008000;">True</span>:
		s = <span style="color: #008000;">raw_input</span><span style="color: black;">&#40;</span>prompt<span style="color: black;">&#41;</span>
		<span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #dc143c;">re</span>.<span style="color: black;">match</span><span style="color: black;">&#40;</span>pattern, s<span style="color: black;">&#41;</span>:
			<span style="color: #ff7700;font-weight:bold;">return</span> s
	<span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #008000;">None</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #008000;">len</span><span style="color: black;">&#40;</span><span style="color: #dc143c;">sys</span>.<span style="color: black;">argv</span><span style="color: black;">&#41;</span> <span style="color: #66cc66;">&gt;</span> <span style="color: #ff4500;">1</span>:
	fname = <span style="color: #dc143c;">sys</span>.<span style="color: black;">argv</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span>
<span style="color: #ff7700;font-weight:bold;">else</span>:
	<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;Unknown data file.&quot;</span>
	quit<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
f = <span style="color: #008000;">open</span><span style="color: black;">&#40;</span>fname, <span style="color: #483d8b;">'r'</span><span style="color: black;">&#41;</span>
students = <span style="color: black;">&#91;</span><span style="color: black;">&#93;</span>
<span style="color: #ff7700;font-weight:bold;">for</span> line <span style="color: #ff7700;font-weight:bold;">in</span> f:
	s = Student<span style="color: black;">&#40;</span>line<span style="color: black;">&#41;</span>
	students.<span style="color: black;">append</span><span style="color: black;">&#40;</span>s<span style="color: black;">&#41;</span>
f.<span style="color: black;">close</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">for</span> i <span style="color: #ff7700;font-weight:bold;">in</span> students:
	<span style="color: #ff7700;font-weight:bold;">print</span> i
&nbsp;
<span style="color: #ff7700;font-weight:bold;">while</span> <span style="color: #008000;">True</span>:
	<span style="color: #dc143c;">cmd</span> = <span style="color: #008000;">raw_input</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'&gt; '</span><span style="color: black;">&#41;</span>
	<span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #dc143c;">cmd</span>==<span style="color: #483d8b;">'save'</span>:
		saveData<span style="color: black;">&#40;</span>fname, students<span style="color: black;">&#41;</span>
		<span style="color: #ff7700;font-weight:bold;">break</span>
	<span style="color: #ff7700;font-weight:bold;">elif</span> <span style="color: #dc143c;">cmd</span>==<span style="color: #483d8b;">'quit'</span>:
		<span style="color: #ff7700;font-weight:bold;">break</span>
	pat = <span style="color: #483d8b;">&quot;.*&quot;</span>+<span style="color: #dc143c;">cmd</span>+<span style="color: #483d8b;">&quot;.*&quot;</span>
&nbsp;
	matched = <span style="color: black;">&#91;</span><span style="color: black;">&#93;</span>
	<span style="color: #ff7700;font-weight:bold;">for</span> s <span style="color: #ff7700;font-weight:bold;">in</span> students:
		<span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #dc143c;">re</span>.<span style="color: black;">match</span><span style="color: black;">&#40;</span>pat, s.<span style="color: #008000;">id</span><span style="color: black;">&#41;</span>:
			matched.<span style="color: black;">append</span><span style="color: black;">&#40;</span>s<span style="color: black;">&#41;</span>
			<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;({0}) {1}&quot;</span>.<span style="color: black;">format</span><span style="color: black;">&#40;</span><span style="color: #008000;">len</span><span style="color: black;">&#40;</span>matched<span style="color: black;">&#41;</span>,s<span style="color: black;">&#41;</span>
	count = <span style="color: #008000;">len</span><span style="color: black;">&#40;</span>matched<span style="color: black;">&#41;</span>
	<span style="color: #ff7700;font-weight:bold;">if</span> count==<span style="color: #ff4500;">0</span>:
		<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;Not found&quot;</span>
	<span style="color: #ff7700;font-weight:bold;">else</span>:
		<span style="color: #ff7700;font-weight:bold;">while</span> count<span style="color: #66cc66;">&gt;</span><span style="color: #ff4500;">1</span>:
			schoice = inputUntilMatched<span style="color: black;">&#40;</span><span style="color: #483d8b;">'choice&gt; '</span>, <span style="color: #483d8b;">'[0-9]+'</span><span style="color: black;">&#41;</span>
			choice = <span style="color: #008000;">int</span><span style="color: black;">&#40;</span>schoice<span style="color: black;">&#41;</span>
			<span style="color: #ff7700;font-weight:bold;">if</span> choice <span style="color: #66cc66;">&lt;</span>= count:
				student = matched<span style="color: black;">&#91;</span>choice-<span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span>
				<span style="color: #ff7700;font-weight:bold;">break</span>
			<span style="color: #ff7700;font-weight:bold;">else</span>:
				<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;Unknown choice&quot;</span> 
		<span style="color: #ff7700;font-weight:bold;">if</span> count==<span style="color: #ff4500;">1</span>:
			student = matched<span style="color: black;">&#91;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#93;</span>
		sscore = inputUntilMatched<span style="color: black;">&#40;</span><span style="color: #483d8b;">'score&gt; '</span>, <span style="color: #483d8b;">'[0-9.]+'</span><span style="color: black;">&#41;</span>
		score = <span style="color: #008000;">float</span><span style="color: black;">&#40;</span>sscore<span style="color: black;">&#41;</span>
		<span style="color: #ff7700;font-weight:bold;">if</span> student.<span style="color: black;">score</span> <span style="color: #66cc66;">!</span>= -<span style="color: #ff4500;">1</span>:
			<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;Replaced!!!&quot;</span>
		student.<span style="color: black;">score</span> = score
		<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;Updated {0} to {1}&quot;</span>.<span style="color: black;">format</span><span style="color: black;">&#40;</span>student.<span style="color: #008000;">id</span>, student.<span style="color: black;">score</span><span style="color: black;">&#41;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://cholwich.org/wordpress/2010/07/09/%e0%b8%81%e0%b8%a3%e0%b8%ad%e0%b8%81%e0%b8%84%e0%b8%b0%e0%b9%81%e0%b8%99%e0%b8%99/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>ภาษาญี่ปุ่นวันละหลายคำ #4 ฮาร์ดแวร์</title>
		<link>http://cholwich.org/wordpress/2008/12/17/%e0%b8%a0%e0%b8%b2%e0%b8%a9%e0%b8%b2%e0%b8%8d%e0%b8%b5%e0%b9%88%e0%b8%9b%e0%b8%b8%e0%b9%88%e0%b8%99%e0%b8%a7%e0%b8%b1%e0%b8%99%e0%b8%a5%e0%b8%b0%e0%b8%ab%e0%b8%a5%e0%b8%b2%e0%b8%a2%e0%b8%84%e0%b8%b3-3/</link>
		<comments>http://cholwich.org/wordpress/2008/12/17/%e0%b8%a0%e0%b8%b2%e0%b8%a9%e0%b8%b2%e0%b8%8d%e0%b8%b5%e0%b9%88%e0%b8%9b%e0%b8%b8%e0%b9%88%e0%b8%99%e0%b8%a7%e0%b8%b1%e0%b8%99%e0%b8%a5%e0%b8%b0%e0%b8%ab%e0%b8%a5%e0%b8%b2%e0%b8%a2%e0%b8%84%e0%b8%b3-3/#comments</comments>
		<pubDate>Wed, 17 Dec 2008 15:01:18 +0000</pubDate>
		<dc:creator>cholwich</dc:creator>
				<category><![CDATA[japanese]]></category>
		<category><![CDATA[teaching]]></category>
		<category><![CDATA[คอมพิวเตอร์]]></category>
		<category><![CDATA[ภาษาญี่ปุ่น]]></category>

		<guid isPermaLink="false">http://cholwich.org/wordpress/?p=166</guid>
		<description><![CDATA[หลังจากงานราษฎร์ งานหลวง และโรคภัยไข้เจ็บรุมเร้า วันนี้มาเพิ่มคำศัพท์ภาษาญี่ปุ่นเกี่ยวกับคอมพิวเตอร์ ต่ออีกหน่อยดีกว่า วันนี้ว่าด้วยฮาร์ดแวร์ทั้งหลาย และศัพท์เกี่ยวข้องที่ @wittawatj แนะนำไว้ คนญี่ปุ่นมักจะเรียกอุปกรณ์คอมพิวเตอร์ต่างๆ โดยทับศัพท์ ซึ่งจะเขียนด้วยตัวคะตะคะนะ ได้แก่ จอภาพ = モニタ (monita), คีย์บอร์ด = キーボード (ki-bo-do), เมาส์ = マウス (mausu), ฮาร์ดดิสก์ = ハードディスク (ha-dodisuku), หน่วยความจำ = メモリ (memori), เมนบอร์ด = マザーボード (maza-bo-do, ลองทายกันดูเองล่ะกันว่ามาจากคำว่าอะไร แต่ไม่ใช่ mainboard), ยกเว้นพวกที่เป็นคำย่อจะใช้ตามภาษาอังกฤษไปอย่างนั้นเลย อย่างเช่น CD-ROM แต่จริงๆ คำนี้ก็มีชื่อเรียกรวมๆ เป็น 光ディスク (hikari disuku) คำว่า 光 แปลว่าแสง รวมแล้วจึงหมายถึง optical disk [...]]]></description>
			<content:encoded><![CDATA[<p>หลังจากงานราษฎร์ งานหลวง และโรคภัยไข้เจ็บรุมเร้า วันนี้มาเพิ่มคำศัพท์ภาษาญี่ปุ่นเกี่ยวกับคอมพิวเตอร์ ต่ออีกหน่อยดีกว่า วันนี้ว่าด้วยฮาร์ดแวร์ทั้งหลาย และศัพท์เกี่ยวข้องที่ @wittawatj แนะนำไว้</p>
<ul>
<li>คนญี่ปุ่นมักจะเรียกอุปกรณ์คอมพิวเตอร์ต่างๆ โดยทับศัพท์ ซึ่งจะเขียนด้วยตัวคะตะคะนะ ได้แก่ จอภาพ = モニタ (monita), คีย์บอร์ด = キーボード (ki-bo-do), เมาส์ = マウス (mausu), ฮาร์ดดิสก์ = ハードディスク (ha-dodisuku), หน่วยความจำ = メモリ (memori), เมนบอร์ด = マザーボード (maza-bo-do, ลองทายกันดูเองล่ะกันว่ามาจากคำว่าอะไร แต่ไม่ใช่ mainboard), ยกเว้นพวกที่เป็นคำย่อจะใช้ตามภาษาอังกฤษไปอย่างนั้นเลย อย่างเช่น CD-ROM แต่จริงๆ คำนี้ก็มีชื่อเรียกรวมๆ เป็น 光ディスク (hikari disuku) คำว่า 光 แปลว่าแสง รวมแล้วจึงหมายถึง optical disk</li>
<li>มีจุดสังเกตอยู่จุดหนึ่ง คือ เวลาเขียนเสียงยาวด้วยคะตะคะนะ จะเขียนด้วยเครื่องหมาย ー เสมอ ถ้าเป็นฮิระงะนะจะใช้ตัวอักษรที่แทนเสียงนั้นมากำกับ</li>
<li>พูดถึงอุปกรณ์ต่างๆ แล้ว ลืมบอกไปว่ารวมๆ แล้ว จะเรียกว่า ハードウェア (ha-do wea) หรือ hardware นั่นเอง</li>
<li>ที่เหลือก็ศัพท์เกี่ยวข้อง เช่น click = クリック, ถ้าจะบูตเครื่องเริ่มใช้งาน จะใช้ศัพท์บัญญัติว่า 起動 (kidou) แปลว่า เริ่มทำงาน, ส่วนรีบูตจะใช้ว่า 再起動 (saikidou) แปลว่าเริ่มงานใหม่ ตัวคันจิ 再 (sai) เป็น prefix เหมือนกับ re- ในภาษาอังกฤษ</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://cholwich.org/wordpress/2008/12/17/%e0%b8%a0%e0%b8%b2%e0%b8%a9%e0%b8%b2%e0%b8%8d%e0%b8%b5%e0%b9%88%e0%b8%9b%e0%b8%b8%e0%b9%88%e0%b8%99%e0%b8%a7%e0%b8%b1%e0%b8%99%e0%b8%a5%e0%b8%b0%e0%b8%ab%e0%b8%a5%e0%b8%b2%e0%b8%a2%e0%b8%84%e0%b8%b3-3/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Student Randomizer</title>
		<link>http://cholwich.org/wordpress/2008/12/02/student-randomizer/</link>
		<comments>http://cholwich.org/wordpress/2008/12/02/student-randomizer/#comments</comments>
		<pubDate>Tue, 02 Dec 2008 16:31:20 +0000</pubDate>
		<dc:creator>cholwich</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[teaching]]></category>

		<guid isPermaLink="false">http://cholwich.org/wordpress/?p=141</guid>
		<description><![CDATA[ด้วยความที่อยากให้นักศึกษามีส่วนร่วมในการเรียนมากขึ้น เทอมนี้เลยพยายามเรียกนักศึกษาให้ช่วยตอบคำถาม หรือออกมาทำอะไรเล่นหน้าห้อง อย่างน้อยจะได้หลับกันน้อยลง หรือพยายามทำแบบฝึกหัดที่ให้ในห้องเรียนบ้าง แต่จะให้เลือกชื่อก็จำชื่อนักศึกษาทั้งหมดไม่ได้ แถมอาจจะเรียกบางคนซ้ำ หรือไม่ได้เรียกบางคนเลย เมื่อวานพอมีเวลาว่างอยู่บ้าง เลยนั่งเขียนโปรแกรม Java เล็กๆ ขึ้นมาหนึ่งตัว เอาไว้สำหรับสุ่มชื่อนักศึกษาในชั้นเรียน ตอนแรกก็กะจะทำเป็นโปรแกรมง่ายๆ คือแค่เปิดไฟล์อ่านชื่อนักศึกษามา แล้วก็แค่สุ่ม แต่ถ้าทำอย่างนั้นก็มีโอกาสที่บางคนจะโดนซ้ำ หรือสุ่มไม่ทั่วถึง เพื่อเผื่อแผ่ให้ทุกคนถูกเรียกกันอย่างทั่วถึง เลยปรับการสุ่มนิดหน่อย โดยเก็บจำนวนครั้งที่นักศึกษาแต่ละคนถูกเรียกไว้ ถ้าโดนเรียกแล้วหนึ่งครั้ง ก็จะกำหนดโอกาสที่จะถูกสุ่มขึ้นมาอีกให้เป็น 1/2 ของเพื่อนที่ยังไม่เคยโดนเรียก ถ้าโดนสองครั้งก็จะลดไปอีกให้เหลือ 1/4 ของเพื่อนๆ คือให้เป็น 1/(2^n) เมื่อ n เป็นจำนวนครั้งที่ถูกเรียก เสร็จแล้วก็มานึกอีกว่าบางคนอาจจะโดนเรียกแล้วไม่อยู่ อย่ากระนั้นเลยจะต้องเก็บข้อมูลไว้หน่อยว่าคนนี้โดดเรียน เลยทำปุ่มให้กดได้ด้วยว่าโดดไปแล้วกี่ครั้ง (ไม่รู้เก็บไว้ทำไมเหมือนกัน) สุดท้ายได้โปรแกรมออกมาหน้าตาแบบนี้ ถ้าใครสนใจลองโหลดไปเล่นได้ที่นี่ วิธีใช้ก็คือเตรียม text file ใส่ชื่อนักศึกษาบรรทัดละคน เขียน ID ก่อน แล้วค่อยตามด้วยชื่อ คั่นด้วย TAB อาจจะใส่จำนวนครั้งที่เรียกนักศึกษาไปแล้วด้วยก็ได้ คั่นด้วย TAB เหมือนกัน ส่วนโค้ด [...]]]></description>
			<content:encoded><![CDATA[<p>ด้วยความที่อยากให้นักศึกษามีส่วนร่วมในการเรียนมากขึ้น เทอมนี้เลยพยายามเรียกนักศึกษาให้ช่วยตอบคำถาม หรือออกมาทำอะไรเล่นหน้าห้อง อย่างน้อยจะได้หลับกันน้อยลง หรือพยายามทำแบบฝึกหัดที่ให้ในห้องเรียนบ้าง แต่จะให้เลือกชื่อก็จำชื่อนักศึกษาทั้งหมดไม่ได้ แถมอาจจะเรียกบางคนซ้ำ หรือไม่ได้เรียกบางคนเลย เมื่อวานพอมีเวลาว่างอยู่บ้าง เลยนั่งเขียนโปรแกรม Java เล็กๆ ขึ้นมาหนึ่งตัว เอาไว้สำหรับสุ่มชื่อนักศึกษาในชั้นเรียน ตอนแรกก็กะจะทำเป็นโปรแกรมง่ายๆ คือแค่เปิดไฟล์อ่านชื่อนักศึกษามา แล้วก็แค่สุ่ม แต่ถ้าทำอย่างนั้นก็มีโอกาสที่บางคนจะโดนซ้ำ หรือสุ่มไม่ทั่วถึง</p>
<p>เพื่อเผื่อแผ่ให้ทุกคนถูกเรียกกันอย่างทั่วถึง เลยปรับการสุ่มนิดหน่อย โดยเก็บจำนวนครั้งที่นักศึกษาแต่ละคนถูกเรียกไว้ ถ้าโดนเรียกแล้วหนึ่งครั้ง ก็จะกำหนดโอกาสที่จะถูกสุ่มขึ้นมาอีกให้เป็น 1/2 ของเพื่อนที่ยังไม่เคยโดนเรียก ถ้าโดนสองครั้งก็จะลดไปอีกให้เหลือ 1/4 ของเพื่อนๆ คือให้เป็น 1/(2^n) เมื่อ n เป็นจำนวนครั้งที่ถูกเรียก เสร็จแล้วก็มานึกอีกว่าบางคนอาจจะโดนเรียกแล้วไม่อยู่ อย่ากระนั้นเลยจะต้องเก็บข้อมูลไว้หน่อยว่าคนนี้โดดเรียน เลยทำปุ่มให้กดได้ด้วยว่าโดดไปแล้วกี่ครั้ง (ไม่รู้เก็บไว้ทำไมเหมือนกัน)</p>
<p>สุดท้ายได้โปรแกรมออกมาหน้าตาแบบนี้</p>
<p><a href="http://cholwich.org/wordpress/wp-content/uploads/2008/12/stdrnd.png"><img class="aligncenter size-medium wp-image-142" title="Student Randomizer" src="http://cholwich.org/wordpress/wp-content/uploads/2008/12/stdrnd-300x112.png" alt="" width="300" height="112" /></a></p>
<p>ถ้าใครสนใจลองโหลดไปเล่นได้<a href="http://cholwich.org/programs/StudentRandomizer.jar">ที่นี่</a> วิธีใช้ก็คือเตรียม text file ใส่ชื่อนักศึกษาบรรทัดละคน เขียน ID ก่อน แล้วค่อยตามด้วยชื่อ คั่นด้วย TAB อาจจะใส่จำนวนครั้งที่เรียกนักศึกษาไปแล้วด้วยก็ได้ คั่นด้วย TAB เหมือนกัน</p>
<p>ส่วนโค้ด ถ้าใครอยากได้ก็ขอมาล่ะกันครับ มันค่อนข้างเละเทะ ไม่อยากเผย อายครับ <img src='http://cholwich.org/wordpress/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  ถ้ามีเวลาบ้าอีก ก็อาจจะเพิ่มฟีเจอร์อื่นๆ ไปด้วย</p>
]]></content:encoded>
			<wfw:commentRss>http://cholwich.org/wordpress/2008/12/02/student-randomizer/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>จัดการการบ้าน (1)</title>
		<link>http://cholwich.org/wordpress/2008/10/19/%e0%b8%88%e0%b8%b1%e0%b8%94%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%9a%e0%b9%89%e0%b8%b2%e0%b8%99-1/</link>
		<comments>http://cholwich.org/wordpress/2008/10/19/%e0%b8%88%e0%b8%b1%e0%b8%94%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%9a%e0%b9%89%e0%b8%b2%e0%b8%99-1/#comments</comments>
		<pubDate>Sun, 19 Oct 2008 07:58:59 +0000</pubDate>
		<dc:creator>cholwich</dc:creator>
				<category><![CDATA[teaching]]></category>
		<category><![CDATA[assignment]]></category>
		<category><![CDATA[fetchmail]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://cholwich.org/wordpress/?p=129</guid>
		<description><![CDATA[เวลาผมให้นักศึกษาทำการบ้านเขียนโปรแกรม ผมมักจะให้ส่งการบ้านทางเมล เพราะคิดว่าสะดวกที่จะตรวจทางเมลมากกว่า จะทดสอบด้วยการรันโปรแกรมที่ส่งมาก็ได้ รวมทั้งยังสามารถใช้เครื่องมือต่างๆ ในการตรวจจับความคล้ายของโปรแกรมในกรณีที่ลอกกันมาได้อีกด้วย แต่ประสบการณ์ที่ผ่านมา จะพบปัญหาต่างๆ ที่ทำให้ผมไม่อยากตรวจการบ้าน ก็คือ เมลที่แต่ละคนส่งมา จะมีรูปแบบหลากหลาย ไม่ค่อยตรงกับที่กำหนดให้ เช่น ไม่ตั้งชื่อไฟล์ตามที่กำหนด บางคนก็ใช้โปรแกรมบีบอัดแบบแปลกๆ มาให้ บางทีบอกให้ส่งเป็น plain text ก็จะมีคนเขียนใน MS Word แล้วเปลี่ยน extension เป็น .txt จนอ่านไม่ออก หรือกำหนดให้ส่งเป็น .jar แต่ไม่รู้ยังไงใช้ WinRAR ทำเป็น .rar แล้วเปลี่ยน extension เป็น .jar เฉยเลย สุดท้ายผมจะต้องมานั่งไล่เช็คไล่เก็บไฟล์ทีละฉบับ บางคนยังส่งมาหลายที แถมยังมีการใช้แอดเดรสเดียวกัน ส่งการบ้านหลายชุดแทนเพื่อนอีก ทำให้สับสนได้ง่ายมาก และเนื่องจากผมจะต้องสอนนักศึกษาไม่น้อยกว่า 70-80 คน จึงเสียเวลาไปกับเรื่องนี้เยอะมาก จนพาลไม่ค่อยจะอยากตรวจสักเท่าไหร่ เมื่อวานเลยนั่งคิดว่าจะทำยังไงกับการบ้านในเทอมที่จะถึงนี้ดี จะทำเป็นเว็บให้อัพโหลดไฟล์ ก็ขี้เกียจเขียนเว็บ สุดท้ายจึงตัดสินใจจะใช้เมลเหมือนเดิม แล้วไปเขียนสคริปต์ด้วย fetchmail [...]]]></description>
			<content:encoded><![CDATA[<p>เวลาผมให้นักศึกษาทำการบ้านเขียนโปรแกรม ผมมักจะให้ส่งการบ้านทางเมล เพราะคิดว่าสะดวกที่จะตรวจทางเมลมากกว่า จะทดสอบด้วยการรันโปรแกรมที่ส่งมาก็ได้ รวมทั้งยังสามารถใช้เครื่องมือต่างๆ ในการตรวจจับความคล้ายของโปรแกรมในกรณีที่ลอกกันมาได้อีกด้วย แต่ประสบการณ์ที่ผ่านมา จะพบปัญหาต่างๆ ที่ทำให้ผมไม่อยากตรวจการบ้าน ก็คือ เมลที่แต่ละคนส่งมา จะมีรูปแบบหลากหลาย ไม่ค่อยตรงกับที่กำหนดให้ เช่น ไม่ตั้งชื่อไฟล์ตามที่กำหนด บางคนก็ใช้โปรแกรมบีบอัดแบบแปลกๆ มาให้ บางทีบอกให้ส่งเป็น plain text ก็จะมีคนเขียนใน MS Word แล้วเปลี่ยน extension เป็น .txt จนอ่านไม่ออก หรือกำหนดให้ส่งเป็น .jar แต่ไม่รู้ยังไงใช้ WinRAR ทำเป็น .rar แล้วเปลี่ยน extension เป็น .jar เฉยเลย สุดท้ายผมจะต้องมานั่งไล่เช็คไล่เก็บไฟล์ทีละฉบับ บางคนยังส่งมาหลายที แถมยังมีการใช้แอดเดรสเดียวกัน ส่งการบ้านหลายชุดแทนเพื่อนอีก ทำให้สับสนได้ง่ายมาก และเนื่องจากผมจะต้องสอนนักศึกษาไม่น้อยกว่า 70-80 คน จึงเสียเวลาไปกับเรื่องนี้เยอะมาก จนพาลไม่ค่อยจะอยากตรวจสักเท่าไหร่</p>
<p>เมื่อวานเลยนั่งคิดว่าจะทำยังไงกับการบ้านในเทอมที่จะถึงนี้ดี จะทำเป็นเว็บให้อัพโหลดไฟล์ ก็ขี้เกียจเขียนเว็บ สุดท้ายจึงตัดสินใจจะใช้เมลเหมือนเดิม แล้วไปเขียนสคริปต์ด้วย fetchmail กับ procmail หรือไม่ก็ maildrop เพื่อคัดแยกเมลที่ส่งมา ไปไว้ในไดเรคทอรีที่กำหนด แยก attachment ออกจากเมล โดยอาจจะใช้ Perl หรือไม่ก็โปรแกรม ripMime พร้อมทั้งตอบเมลกลับแบบอัตโนมัติว่าได้รับการบ้านแล้ว (ในกรณีที่ส่งมาถูกตามที่กำหนด) สุดท้ายหวังว่าจะช่วยให้จัดการกับการบ้านทางเมลได้สบายขึ้น แต่วิธีการทั้งหมดก็จะยังไม่สามารถจัดการกับกรณีที่ส่งไฟล์มาผิดประเภทได้ แต่ไม่เป็นไรเพราะมีคนแนะนำวิธีจัดการมาให้แล้ว ก็คือไม่ต้องตรวจให้ 0 ไปเลย คนแนะนำรับรองว่าแค่ทำเพียงครั้งเดียวก็จะส่งถูกต้องทุกคน จริงๆ แล้วยังไม่ได้เขียนสคริปต์ทั้งหมดหรอก แต่จะเอามาเล่าเรื่อยๆ วันนี้เล่าถึง fetchmail ก่อนล่ะกัน</p>
<p>โปรแกรม fetchmail เป็นโปรแกรมสำหรับดึงเมลจากเซิร์ฟเวอร์ (จะเป็นแบบ POP3 หรือ IMAP ก็ได้) มาไว้ที่เครื่องของเรา การทำงานของมัน ก็จะคล้ายๆ โปรแกรมอ่านเมลทั่วไป เพียงแต่ว่าเป็นแบบ command line ที่ให้โหลดเป็นครั้งๆ ไป และอาจจะกำหนดให้ทำงานเป็น daemon คอยเช็คและโหลดอยู่ตลอดเวลาได้ด้วย การใช้งานก็ง่ายมาก แค่กำหนดข้อมูลเซิร์ฟเวอร์ที่จะไปโหลดไว้ในไฟล์ .fetchmailrc เช่น</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">set</span> daemon <span style="color: #000000;">300</span>
poll mail.mydomain.com protocol pop3 user <span style="color: #ff0000;">&quot;myname&quot;</span> password <span style="color: #ff0000;">&quot;mypassword&quot;</span>
mimedecode
mda <span style="color: #ff0000;">&quot;/usr/bin/maildrop&quot;</span>
no keep
fetchall</pre></div></div>

<p>จะเป็นกำหนดให้อ่านเมลทั้งหมดจากเซิร์ฟเวอร์ด้วยโปรโตคอล pop3 ตามที่กำหนด จากนั้นส่งเมลที่ได้ทีละฉบับไปยังโปรแกรม maildrop ซึ่งเราจะสามารถกำหนด regular expression สำหรับคัดแยกเมลได้ ทีนี้จะเขียนวิธีการคัดแยกทำยังไงเอาไว้ต่อคราวหน้าล่ะกัน</p>
]]></content:encoded>
			<wfw:commentRss>http://cholwich.org/wordpress/2008/10/19/%e0%b8%88%e0%b8%b1%e0%b8%94%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%9a%e0%b9%89%e0%b8%b2%e0%b8%99-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>หลักสูตร</title>
		<link>http://cholwich.org/wordpress/2008/06/07/%e0%b8%ab%e0%b8%a5%e0%b8%b1%e0%b8%81%e0%b8%aa%e0%b8%b9%e0%b8%95%e0%b8%a3/</link>
		<comments>http://cholwich.org/wordpress/2008/06/07/%e0%b8%ab%e0%b8%a5%e0%b8%b1%e0%b8%81%e0%b8%aa%e0%b8%b9%e0%b8%95%e0%b8%a3/#comments</comments>
		<pubDate>Sat, 07 Jun 2008 10:40:05 +0000</pubDate>
		<dc:creator>cholwich</dc:creator>
				<category><![CDATA[teaching]]></category>
		<category><![CDATA[curriculum]]></category>
		<category><![CDATA[university]]></category>

		<guid isPermaLink="false">http://cholwich.org/wordpress/?p=64</guid>
		<description><![CDATA[เนื่องจากอาทิตย์หน้าจะมีการปฐมนิเทศน์นักศึกษาชั้นปีที่สอง ที่เพิ่งจะเข้ามาเรียนในภาควิชาฯ เลยลองทำ visualization ของวิชาต่างๆ ในหลักสูตรดู โดยพยายามรักษาตำแหน่งตามภาคการศึกษาที่น.ศ.ต้องเรียนในแนวตั้ง และใช้ตำแหน่งในแนวนอนกับสี แสดงความเกี่ยวข้องกันของวิชาต่างๆ   เหตุที่ต้องทำอย่างนี้ก็เพราะที่ภาควิชามีการเรียนแบ่งเป็นสองหลักสูตร คือ Information Technology กับ Computer Science ที่แตกต่างกันไม่มากนัก (อย่างน้อยปีสองก็เรียนเหมือนกันทุกคน) ทำให้นักศึกษาบางส่วนอาจจะยังไม่เข้าใจว่า สิ่งที่ตัวเองจะต้องเจอในสามปีข้างหน้านี้เป็นยังไง แล้วสุดท้ายจะเป็นยังไง แล้วจะต่างจากเพื่อนที่เรียนหลักสูตรข้างๆ ยังไง ตอนนี้หวังเล็กๆ ว่าภาพที่ทำขึ้นนี้อาจจะช่วยเพิ่มความเข้าใจในนักศึกษามากขึ้น]]></description>
			<content:encoded><![CDATA[<p>เนื่องจากอาทิตย์หน้าจะมีการปฐมนิเทศน์นักศึกษาชั้นปีที่สอง ที่เพิ่งจะเข้ามาเรียนในภาควิชาฯ เลยลองทำ visualization ของวิชาต่างๆ ในหลักสูตรดู โดยพยายามรักษาตำแหน่งตามภาคการศึกษาที่น.ศ.ต้องเรียนในแนวตั้ง และใช้ตำแหน่งในแนวนอนกับสี แสดงความเกี่ยวข้องกันของวิชาต่างๆ</p>
<p><a href="http://cholwich.org/wp-content/uploads/2008/06/it_curriculum.png"><img class="aligncenter size-full wp-image-65" title="IT Curriculum" src="http://cholwich.org/wp-content/uploads/2008/06/it_curriculum.png" alt="IT Curriculum" width="550" /></a></p>
<p><a href="http://cholwich.org/wordpress/wp-content/uploads/2008/06/cs_curriculum.png"><img class="aligncenter size-full wp-image-66" title="CS Curriculum" src="http://cholwich.org/wp-content/uploads/2008/06/cs_curriculum.png" alt="CS Curriculum" width="550" /></a></p>
<p> </p>
<p>เหตุที่ต้องทำอย่างนี้ก็เพราะที่ภาควิชามีการเรียนแบ่งเป็นสองหลักสูตร คือ Information Technology กับ Computer Science ที่แตกต่างกันไม่มากนัก (อย่างน้อยปีสองก็เรียนเหมือนกันทุกคน) ทำให้นักศึกษาบางส่วนอาจจะยังไม่เข้าใจว่า สิ่งที่ตัวเองจะต้องเจอในสามปีข้างหน้านี้เป็นยังไง แล้วสุดท้ายจะเป็นยังไง แล้วจะต่างจากเพื่อนที่เรียนหลักสูตรข้างๆ ยังไง ตอนนี้หวังเล็กๆ ว่าภาพที่ทำขึ้นนี้อาจจะช่วยเพิ่มความเข้าใจในนักศึกษามากขึ้น</p>
]]></content:encoded>
			<wfw:commentRss>http://cholwich.org/wordpress/2008/06/07/%e0%b8%ab%e0%b8%a5%e0%b8%b1%e0%b8%81%e0%b8%aa%e0%b8%b9%e0%b8%95%e0%b8%a3/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>ITS331 Info Tech I Lab</title>
		<link>http://cholwich.org/wordpress/2008/05/15/its331-information-technology-i-laboratory/</link>
		<comments>http://cholwich.org/wordpress/2008/05/15/its331-information-technology-i-laboratory/#comments</comments>
		<pubDate>Thu, 15 May 2008 03:02:32 +0000</pubDate>
		<dc:creator>cholwich</dc:creator>
				<category><![CDATA[teaching]]></category>

		<guid isPermaLink="false">http://cholwich.org/wordpress/?p=62</guid>
		<description><![CDATA[วันก่อนเขียนเรื่อง ITS325 ไปแล้ว วันนี้ขอเขียนถึงวิชาที่ต้องเข้าไปเกี่ยวข้องในเทอมหน้าอีกวิชาหนึ่ง คือ &#8220;ITS331 Information Technology I Lab&#8221; หรือที่เด็กๆ นิยมเรียกกันว่าแล็บดาตาเบส เพราะว่าเนื้อหาบางส่วนเกี่ยวข้องกับฐานข้อมูล แถมคนสอนก็สอนวิชาระบบจัดการฐานข้อมูลด้วย วิชานี้เป็นการฝึกปฎิบัติที่เกี่ยวกับการใช้งาน database กับ web programming ขั้นต้น ดังนั้นเนื้อหาส่วนใหญ่ก็จะเน้นไปที่ LAMP เริ่มต้นตั้งแต่การติดตั้ง Linux ฝึกเขียน HTML/CSS และ Javascript ไปจนกระทั่งใช้ PHP กับ MySQL เท่าที่ประสบมาในปีก่อน (ปีที่แล้วจะไม่ได้ดูแลโดยตรงเท่าไหร่) วิชานี้จะมีปัญหาอยู่พอสมควร คือเนื้อหาที่สอนอาจจะไม่ได้น่าสนใจมากนัก เด็กหลายๆ คน เรียนและฝึกด้วยตัวเอง จนกระทั่งใช้ linux หรือทำ web application ได้อยู่แล้ว ก็จะรู้สึกว่ามันไม่น่าสนใจ แต่ที่เหลือส่วนใหญ่จะไม่มีความรู้เกี่ยวกับพวกนี้เลย เรียกว่า พวกที่เป็นก็ทำเป็นจนทำงานได้แล้ว ไม่ต้องเรียนก็ได้ แต่พวกไม่เป็นก็ไม่เป็นอะไรเลยสักอย่าง ทำให้ลำบากอยู่พอควร นอกจากนี้แล็บนี้ยังเป็นแล็บแรกที่ไม่ได้เชื่อมโยงกับวิชาเรียนโดยตรง คือไม่ใช่เรียนในวิชาบรรยายมา แล้วมาทำแบบฝึกหัดอย่างเดียว [...]]]></description>
			<content:encoded><![CDATA[<p>วันก่อนเขียนเรื่อง <a href="http://cholwich.org/wordpress/2008/04/21/its325-computer-architecture/">ITS325</a> ไปแล้ว วันนี้ขอเขียนถึงวิชาที่ต้องเข้าไปเกี่ยวข้องในเทอมหน้าอีกวิชาหนึ่ง คือ &#8220;ITS331 Information Technology I Lab&#8221; หรือที่เด็กๆ นิยมเรียกกันว่าแล็บดาตาเบส เพราะว่าเนื้อหาบางส่วนเกี่ยวข้องกับฐานข้อมูล แถมคนสอนก็สอนวิชาระบบจัดการฐานข้อมูลด้วย </p>
<p>วิชานี้เป็นการฝึกปฎิบัติที่เกี่ยวกับการใช้งาน database กับ web programming ขั้นต้น ดังนั้นเนื้อหาส่วนใหญ่ก็จะเน้นไปที่ <a href="http://en.wikipedia.org/wiki/LAMP_(software_bundle)">LAMP</a> เริ่มต้นตั้งแต่การติดตั้ง Linux ฝึกเขียน HTML/CSS และ Javascript ไปจนกระทั่งใช้ PHP กับ MySQL </p>
<p>เท่าที่ประสบมาในปีก่อน (ปีที่แล้วจะไม่ได้ดูแลโดยตรงเท่าไหร่) วิชานี้จะมีปัญหาอยู่พอสมควร คือเนื้อหาที่สอนอาจจะไม่ได้น่าสนใจมากนัก เด็กหลายๆ คน เรียนและฝึกด้วยตัวเอง จนกระทั่งใช้ linux หรือทำ web application ได้อยู่แล้ว ก็จะรู้สึกว่ามันไม่น่าสนใจ แต่ที่เหลือส่วนใหญ่จะไม่มีความรู้เกี่ยวกับพวกนี้เลย เรียกว่า พวกที่เป็นก็ทำเป็นจนทำงานได้แล้ว ไม่ต้องเรียนก็ได้ แต่พวกไม่เป็นก็ไม่เป็นอะไรเลยสักอย่าง ทำให้ลำบากอยู่พอควร นอกจากนี้แล็บนี้ยังเป็นแล็บแรกที่ไม่ได้เชื่อมโยงกับวิชาเรียนโดยตรง คือไม่ใช่เรียนในวิชาบรรยายมา แล้วมาทำแบบฝึกหัดอย่างเดียว เหมือนแล็บในปีหนึ่งหรือปีสอง เนื่องจากเนื้อหาส่วนใหญ่ไม่ได้เกี่ยวกับวิชาฐานข้อมูล ที่นี้พอต้องสอนบรรยายในห้องแล็บ ปัญหาก็เกิดขึ้นเพราะนั่งอยู่หน้าคอมพิวเตอร์ มีสิ่งต่างๆ มาดึงดูดความสนใจออกไปเยอะ</p>
<p>ในปีการศึกษาหน้า ก็เลยพยายามจะปรับเปลี่ยนวิธีการเรียนการสอนใหม่ คือ การบรรยายในช่วงแรกจะทำในห้องบรรยาย อาจจะแค่ครึ่งหรือหนึ่งชั่วโมง ให้เข้ามานั่งฟังอธิบายต่างๆ ให้เรียบร้อยซะก่อน แล้วจึงแยกย้ายกันไปทำแบบฝึกหัดให้ห้องแล็บ คิดว่าน่าจะลดปัญหาหลายๆ อย่าง ส่วนเรื่องเนื้อหาก็พยายามจะเอาอะไรใหม่ๆ ใส่เข้ามาบ้าง เผื่อว่าจะทำให้มันดูน่าสนใจขึ้น</p>
<p>อีกคำถามหนึ่งที่ผมโดนถามทุกปี ก็คือ &#8220;ทำไมไม่สอน oracle ภาคฯ ข้างๆ เขายังสอนเลย&#8221; จริงๆ ผมก็เคยสอน oracle เหมือนกัน แต่สอนไปแล้วก็ไม่เห็นประโยชน์เท่าไหร่ เพราะถ้าเข้าใจแนวคิด เข้าใจ SQL จะใช้ DBMS ตัวไหนก็ไม่น่าจะต่างกันสักเท่าไหร่ สุดท้ายนี้เอาแผนคร่าวของแล็บมาแปะไว้หน่อยล่ะกัน</p>
<ol>
<li>Linux Installation + Tutorials</li>
<li>HTML + CSS</li>
<li>Javascript</li>
<li>JQuery</li>
<li>Introduction to PHP</li>
<li>Midterm examination</li>
<li>MySQL</li>
<li>PHP with mySQL</li>
<li>Cookie and Sessions</li>
<li>Ajax with JQuery</li>
<li>Project Development</li>
<li>Final examination</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://cholwich.org/wordpress/2008/05/15/its331-information-technology-i-laboratory/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>ITS325 Computer Architecture</title>
		<link>http://cholwich.org/wordpress/2008/04/21/its325-computer-architecture/</link>
		<comments>http://cholwich.org/wordpress/2008/04/21/its325-computer-architecture/#comments</comments>
		<pubDate>Mon, 21 Apr 2008 15:22:26 +0000</pubDate>
		<dc:creator>cholwich</dc:creator>
				<category><![CDATA[teaching]]></category>
		<category><![CDATA[computer architecture]]></category>

		<guid isPermaLink="false">http://cholwich.org/wordpress/?p=56</guid>
		<description><![CDATA[เนื่องจากเทอมหน้าจะเปลี่ยนไปสอนวิชา Computer Architecture วิชาเทอมต้นนี่เปลี่ยนมาหลายวิชาแล้ว ทำงานมาสามปี ไม่เคยสอนซ้ำกันซักปี ปีแรกสอนภาษาซีครึ่งหนึ่ง อีกครึ่งสอนวิชา Foundation of Information Systems วิชาที่หายไปจากหลักสูตรแล้ว ปีที่สองก็ไปสอน DBMS ครึ่งหนึ่ง กับ Intelligent Systems อีกครึ่งหนึ่ง วิชาหลังนี่แปลงกายมาเป็น Artificial Intelligence ในหลักสูตรใหม่ แถมย้ายไปอยู่เทอมหลัง ปีที่แล้วกลับไปสอนภาษาซีอีกครั้งหนึ่งแต่คราวนี้สอนเต็มตัวเลย ปีหน้าด้วยเหตุการณ์หลายๆ อย่าง เลยทำให้ได้ไปสอน Computer Architecture แทน ก็เลยต้องเตรียมตัวกันพอสมควร Computer Architecture มีเป้าหมายให้นักศึกษาเข้าใจหลักการทำงานพื้นฐานภายในระบบคอมพิวเตอร์ ผมยังเชื่อว่าวิชานี้เป็นความรู้พื้นฐานที่สำคัญสำหรับนักศึกษาที่เรียนทางด้านนี้ แม้ว่าปัจจุบันระบบซอฟท์แวร์จะทำสิ่งต่างๆ ซ้อนไว้หลายชั้น จนเราแทบจะไม่จำเป็นต้องสนใจหรือเข้าใจว่าระบบทำงานยังไง เราก็สามารถสร้างซอฟท์แวร์หรือแอพพลิเคชันได้ แต่สุดท้ายถ้าอยากทำซอฟท์แวร์ที่ใช้ประสิทธิภาพสูงสุดของระบบจริงๆ ก็จำเป็นที่จะต้องเข้าใจสิ่งต่างๆ เหล่านี้ ปัญหาของการเรียนวิชานี้ก็คือ ส่วนใหญ่จะเน้นไปที่ทฤษฎี หรือวิธีการต่างๆ จนบางครั้ง นักศึกษาคิดว่าเป็นวิชาท่องจำ หรือบางครั้งก็เน้นไปที่การออกแบบฮาร์ดแวร์ ซึ่งอาจจะไม่เหมาะกับนักศึกษาที่เพิ่งเริ่มเรียนปีที่สองในมหาวิทยาลัย และยังเป็นเทอมแรกที่เรียนวิชาเฉพาะสาขาด้วย นอกจากนี้นักศึกษาที่จะสอนก็เป็นนักศึกษาสาขาวิทยาการคอมพิวเตอร์ กับเทคโนโลยีสารสนเทศ ที่จะเรียน [...]]]></description>
			<content:encoded><![CDATA[<p>เนื่องจากเทอมหน้าจะเปลี่ยนไปสอนวิชา Computer Architecture วิชาเทอมต้นนี่เปลี่ยนมาหลายวิชาแล้ว ทำงานมาสามปี ไม่เคยสอนซ้ำกันซักปี ปีแรกสอนภาษาซีครึ่งหนึ่ง อีกครึ่งสอนวิชา Foundation of Information Systems วิชาที่หายไปจากหลักสูตรแล้ว ปีที่สองก็ไปสอน DBMS ครึ่งหนึ่ง กับ Intelligent Systems อีกครึ่งหนึ่ง วิชาหลังนี่แปลงกายมาเป็น Artificial Intelligence ในหลักสูตรใหม่ แถมย้ายไปอยู่เทอมหลัง ปีที่แล้วกลับไปสอนภาษาซีอีกครั้งหนึ่งแต่คราวนี้สอนเต็มตัวเลย ปีหน้าด้วยเหตุการณ์หลายๆ อย่าง เลยทำให้ได้ไปสอน Computer Architecture แทน ก็เลยต้องเตรียมตัวกันพอสมควร </p>
<p>Computer Architecture มีเป้าหมายให้นักศึกษาเข้าใจหลักการทำงานพื้นฐานภายในระบบคอมพิวเตอร์ ผมยังเชื่อว่าวิชานี้เป็นความรู้พื้นฐานที่สำคัญสำหรับนักศึกษาที่เรียนทางด้านนี้ แม้ว่าปัจจุบันระบบซอฟท์แวร์จะทำสิ่งต่างๆ ซ้อนไว้หลายชั้น จนเราแทบจะไม่จำเป็นต้องสนใจหรือเข้าใจว่าระบบทำงานยังไง เราก็สามารถสร้างซอฟท์แวร์หรือแอพพลิเคชันได้ แต่สุดท้ายถ้าอยากทำซอฟท์แวร์ที่ใช้ประสิทธิภาพสูงสุดของระบบจริงๆ ก็จำเป็นที่จะต้องเข้าใจสิ่งต่างๆ เหล่านี้ </p>
<p>ปัญหาของการเรียนวิชานี้ก็คือ ส่วนใหญ่จะเน้นไปที่ทฤษฎี หรือวิธีการต่างๆ จนบางครั้ง นักศึกษาคิดว่าเป็นวิชาท่องจำ หรือบางครั้งก็เน้นไปที่การออกแบบฮาร์ดแวร์ ซึ่งอาจจะไม่เหมาะกับนักศึกษาที่เพิ่งเริ่มเรียนปีที่สองในมหาวิทยาลัย และยังเป็นเทอมแรกที่เรียนวิชาเฉพาะสาขาด้วย นอกจากนี้นักศึกษาที่จะสอนก็เป็นนักศึกษาสาขาวิทยาการคอมพิวเตอร์ กับเทคโนโลยีสารสนเทศ ที่จะเรียน Digital Circuits ในเทอมเดียวกัน แถมเป้าหมายของหลักสูตรก็อยากจะให้นักศึกษาเหล่านี้จบไปทำงานในสาขาทางด้านซอฟท์แวร์ หรือไปทางในเชิงทฤษฎี  </p>
<p>สุดท้ายก็ไปเจอหนังสือ <a href="http://www.csapp.cs.cmu.edu">Computer Systems: A Programmer&#8217;s Perspective</a> ที่พัฒนาโดยอาจารย์จาก CMU ที่เจอปัญหาคล้ายๆ กัน เลยเปลี่ยนวิธีการสอนใหม่ เป็นการเรียนรู้สถาปัตยกรรม หรือการทำงานของคอมพิวเตอร์ ผ่านทางการเขียนโปรแกรม และการทดลองด้วยภาษาซี เพื่อทำให้ผู้เรียนกลายเป็นโปรแกรมเมอร์ที่เข้าใจการทำงานของระบบคอมพิวเตอร์ และสามารถเขียนโปรแกรมที่ดึงความสามารถของระบบออกมาได้เต็มที่ จริงๆ แล้ว Matt ก็เคยใช้หนังสือเล่มนี้สอนเมื่อสามปีก่อนเหมือนกัน ได้เวลาเริ่มทำสไลด์ประกอบการสอนแล้ว คงจะได้สนุกกับวิชานี้อีกเทอมหนึ่งล่ะ ถ้ามีเวลาอยากสอนเขียนโปรแกรมที่ใช้พวก SSE หรือ MMX เพิ่มด้วยนะ แต่หวังว่าคงจะไม่ใช่คนสอนสนุกอยู่คนเดียวนะ <img src='http://cholwich.org/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://cholwich.org/wordpress/2008/04/21/its325-computer-architecture/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>ปิดเทอมใหญ่&#8230;ก็ยังไม่เลิกยุ่ง</title>
		<link>http://cholwich.org/wordpress/2008/04/09/%e0%b8%9b%e0%b8%b4%e0%b8%94%e0%b9%80%e0%b8%97%e0%b8%ad%e0%b8%a1%e0%b9%83%e0%b8%ab%e0%b8%8d%e0%b9%88%e0%b8%81%e0%b9%87%e0%b8%a2%e0%b8%b1%e0%b8%87%e0%b9%84%e0%b8%a1%e0%b9%88%e0%b9%80%e0%b8%a5/</link>
		<comments>http://cholwich.org/wordpress/2008/04/09/%e0%b8%9b%e0%b8%b4%e0%b8%94%e0%b9%80%e0%b8%97%e0%b8%ad%e0%b8%a1%e0%b9%83%e0%b8%ab%e0%b8%8d%e0%b9%88%e0%b8%81%e0%b9%87%e0%b8%a2%e0%b8%b1%e0%b8%87%e0%b9%84%e0%b8%a1%e0%b9%88%e0%b9%80%e0%b8%a5/#comments</comments>
		<pubDate>Wed, 09 Apr 2008 01:10:30 +0000</pubDate>
		<dc:creator>cholwich</dc:creator>
				<category><![CDATA[teaching]]></category>
		<category><![CDATA[university]]></category>
		<category><![CDATA[summer]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://cholwich.org/wordpress/?p=49</guid>
		<description><![CDATA[ช่วงนี้มีคนถามบ่อยๆ ว่า &#8220;ปิดเทอมแล้วอาจารย์ทำอะไร?&#8221; ส่วนใหญ่ก็จะตอบไปเรื่อยเปื่อยตามสิ่งที่กำลังทำอยู่ในตอนนั้น แต่พอลองมานั่งนึกจริงๆ จึงๆ ดูแล้วก็มีสิ่งที่ต้องทำอีกเยอะเหมือนกัน ช่วยทำระบบค้นหาคำแปลศัพท์เฉพาะทางอัตโนมัติให้เสร็จ อันนี้หมายถึงโปรแกรมที่ทำงานได้จริงผ่านเว็บ และเปเปอร์ที่เขียนไปได้เยอะแล้วด้วย ทำไอเดียเกี่ยวกับ SVM ที่มีอยู่ให้กลายเป็นจริง อยากส่งไปงาน ECML2008 ปลายเดือนนี้ ไม่รู้จะทันหรือเปล่า ปรับปรุงระบบเก็บข้อมูล KPI ของอาจารย์แต่ละคนใน SIIT ที่ทำเมื่อปีที่แล้วให้ดีขึ้น คงต้องทำให้เสร็จก่อนต้นเดือนพฤษภา เตรียมระบบและบทความเกี่ยวกับการแข่งขัน Robocode ที่จะจัดร่วมกับ vcharkarn.com เพราะใกล้เวลาจะต้องประกาศอย่างเป็นทางการแล้ว ทำระบบสนับสนุนการสอนของตัวเอง เช่น ระบบเช็คชื่อนักศึกษาที่เข้าเรียนผ่านเว็บ อ่านหนังสือ Beautiful Code ที่เพิ่งได้มาสดๆ ร้อนๆ อ่านหนังสือ CS:APP เพื่อจะได้เตรียมสอนวิชา Computer Architecture ในเทอมหน้า อันนี้อยู่ในโครงการ Learning by Teaching (เป็นการหาเรื่องใส่ตัวโดยใช่เหตุ) หาไอเดียใหม่ๆ มาสอนแล็บ Web Application Development ให้ได้ผลมากกว่านี้ หรือใช้เทคนิคที่ใหม่กว่าเดิม อ่านหนังสือ [...]]]></description>
			<content:encoded><![CDATA[<p>ช่วงนี้มีคนถามบ่อยๆ ว่า &#8220;ปิดเทอมแล้วอาจารย์ทำอะไร?&#8221; ส่วนใหญ่ก็จะตอบไปเรื่อยเปื่อยตามสิ่งที่กำลังทำอยู่ในตอนนั้น แต่พอลองมานั่งนึกจริงๆ จึงๆ ดูแล้วก็มีสิ่งที่ต้องทำอีกเยอะเหมือนกัน</p>
<ol>
<li>ช่วยทำระบบค้นหาคำแปลศัพท์เฉพาะทางอัตโนมัติให้เสร็จ อันนี้หมายถึงโปรแกรมที่ทำงานได้จริงผ่านเว็บ และเปเปอร์ที่เขียนไปได้เยอะแล้วด้วย</li>
<li>ทำไอเดียเกี่ยวกับ SVM ที่มีอยู่ให้กลายเป็นจริง อยากส่งไปงาน ECML2008 ปลายเดือนนี้ ไม่รู้จะทันหรือเปล่า</li>
<li>ปรับปรุงระบบเก็บข้อมูล KPI ของอาจารย์แต่ละคนใน SIIT ที่ทำเมื่อปีที่แล้วให้ดีขึ้น คงต้องทำให้เสร็จก่อนต้นเดือนพฤษภา</li>
<li>เตรียมระบบและบทความเกี่ยวกับการแข่งขัน Robocode ที่จะจัดร่วมกับ vcharkarn.com เพราะใกล้เวลาจะต้องประกาศอย่างเป็นทางการแล้ว</li>
<li>ทำระบบสนับสนุนการสอนของตัวเอง เช่น ระบบเช็คชื่อนักศึกษาที่เข้าเรียนผ่านเว็บ</li>
<li>อ่านหนังสือ Beautiful Code ที่เพิ่งได้มาสดๆ ร้อนๆ</li>
<li>อ่านหนังสือ CS:APP เพื่อจะได้เตรียมสอนวิชา Computer Architecture ในเทอมหน้า อันนี้อยู่ในโครงการ Learning by Teaching <img src='http://cholwich.org/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  (เป็นการหาเรื่องใส่ตัวโดยใช่เหตุ)</li>
<li>หาไอเดียใหม่ๆ มาสอนแล็บ Web Application Development  ให้ได้ผลมากกว่านี้ หรือใช้เทคนิคที่ใหม่กว่าเดิม</li>
<li>อ่านหนังสือ Ruby Programming Language เพื่อจะได้เขียน Ruby ให้แม่นๆ กว่านี้ คือจำพวก Syntax ไม่ค่อยได้ กับไม่ค่อยรู้รายละเอียดว่ามันคืออะไรด้วย ที่เขียนมาส่วนใหญ่ใช้เดาๆ เอา</li>
</ol>
<p>ลองกลับไปดูรายการที่เขียนมาแล้ว ตูจะมีเวลาทำอย่างอื่นไหมเนี้ย ยังอยากทำอย่างอื่นด้วยนะ เช่น หาเวลาไปเดินถ่ายรูปเล่น แถมวันลาพักร้อนก็พอกพูนเยอะแล้วเหมือนกัน ต้องหาเวลาใช้บ้างด้วย ที่สำคัญช่วงนี้โดนบ่นบ่อยๆ ว่าทำงานมากเกินไปแล้ว เฮ้อ&#8230;.. แต่ก็ยังสนุกที่ได้ทำงานอยู่นะ</p>
]]></content:encoded>
			<wfw:commentRss>http://cholwich.org/wordpress/2008/04/09/%e0%b8%9b%e0%b8%b4%e0%b8%94%e0%b9%80%e0%b8%97%e0%b8%ad%e0%b8%a1%e0%b9%83%e0%b8%ab%e0%b8%8d%e0%b9%88%e0%b8%81%e0%b9%87%e0%b8%a2%e0%b8%b1%e0%b8%87%e0%b9%84%e0%b8%a1%e0%b9%88%e0%b9%80%e0%b8%a5/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ฝึกงาน</title>
		<link>http://cholwich.org/wordpress/2007/05/25/%e0%b8%9d%e0%b8%b6%e0%b8%81%e0%b8%87%e0%b8%b2%e0%b8%99/</link>
		<comments>http://cholwich.org/wordpress/2007/05/25/%e0%b8%9d%e0%b8%b6%e0%b8%81%e0%b8%87%e0%b8%b2%e0%b8%99/#comments</comments>
		<pubDate>Fri, 25 May 2007 09:55:49 +0000</pubDate>
		<dc:creator>cholwich</dc:creator>
				<category><![CDATA[internship]]></category>
		<category><![CDATA[teaching]]></category>
		<category><![CDATA[university]]></category>
		<category><![CDATA[บ่น]]></category>

		<guid isPermaLink="false">http://cholwich.org/wordpress/?p=21</guid>
		<description><![CDATA[ในหลักสูตรของภาควิชาฯ การฝึกงานถือเป็นวิชาบังคับ ที่นักศึกษาทุกคนจะต้องผ่าน ทั้งนี้มีเป้าหมายเพื่อเป็นการเตรียมตัว ให้นักศึกษาเข้าใจสถานการณ์จริงที่ตัวเองต้องประสบหลังจากจบการศึกษาแล้ว ในหลักสูตรส่วนใหญ่มักจะกำหนดจำนวนชั่วโมง หรือจำนวนวันขั้นต่ำที่นักศึกษาจะต้องไปใช้ชีวิตในบริษัทหรือองค์กรภายนอก ซึ่งไม่ใช่แค่ไปให้เขาเห็นหน้าให้ครบตามจำนวนชั่วโมง แต่ต้องแบกความรับผิดชอบ และความเป็นผู้ใหญ่ไปด้วย หมายความว่านักศึกษาควรจะเตรียมตัวให้พร้อม และเตรียมใจไว้ด้วย ว่าเราคือพนักงาน (ชั่วคราว) คนหนึ่งขององค์กรนั้น นอกจากนี้ระหว่างฝึกงานก็ควรจะมีความกระตีอรือร้นที่จะเรียนรู้ในสิ่งใหม่ๆ เพราะสิ่งที่เรียนในมหาวิทยาลัยจะเน้นแค่ทฤษฎี หรือหลักการกว้างๆ ที่นักศึกษาควรเข้าใจ แต่องค์กรธุรกิจอาจจะมีวิธีการทำงาน หรือความรู้เฉพาะด้านที่จะต้องศึกษาเพิ่มเติม นอกจากนี้ควรสังเกตวิธีการทำงาน วัฒนธรรมองค์กร ไปพร้อมๆ กับการมองหาจุดด้อยของตัวเอง เพื่อที่หลังจากการฝึกงานแล้ว จะได้ใช้เวลาที่เหลืออีกหนึ่งปี เตรียมตัวให้พร้อมที่จะก้าวสู่โลกแห่งความเป็นจริงต่อไป วันนี้มาบ่นอีกแล้ว หลังจากได้รับโทรศัพท์สายหนึ่ง รู้สึกจะเป็นความผิดพลาด และอ่อนประสบการณ์ของตัวเองอีกแล้ว]]></description>
			<content:encoded><![CDATA[<p>ในหลักสูตรของภาควิชาฯ <strong>การฝึกงาน</strong>ถือเป็นวิชาบังคับ ที่นักศึกษาทุกคนจะต้องผ่าน ทั้งนี้มีเป้าหมายเพื่อเป็นการเตรียมตัว ให้นักศึกษาเข้าใจสถานการณ์จริงที่ตัวเองต้องประสบหลังจากจบการศึกษาแล้ว ในหลักสูตรส่วนใหญ่มักจะกำหนดจำนวนชั่วโมง หรือจำนวนวันขั้นต่ำที่นักศึกษาจะต้องไปใช้ชีวิตในบริษัทหรือองค์กรภายนอก ซึ่งไม่ใช่แค่ไปให้เขาเห็นหน้าให้ครบตามจำนวนชั่วโมง แต่ต้องแบกความรับผิดชอบ และความเป็นผู้ใหญ่ไปด้วย หมายความว่านักศึกษาควรจะเตรียมตัวให้พร้อม และเตรียมใจไว้ด้วย ว่าเราคือพนักงาน (ชั่วคราว) คนหนึ่งขององค์กรนั้น  นอกจากนี้ระหว่างฝึกงานก็ควรจะมีความกระตีอรือร้นที่จะเรียนรู้ในสิ่งใหม่ๆ เพราะสิ่งที่เรียนในมหาวิทยาลัยจะเน้นแค่ทฤษฎี หรือหลักการกว้างๆ ที่นักศึกษาควรเข้าใจ แต่องค์กรธุรกิจอาจจะมีวิธีการทำงาน หรือความรู้เฉพาะด้านที่จะต้องศึกษาเพิ่มเติม นอกจากนี้ควรสังเกตวิธีการทำงาน วัฒนธรรมองค์กร ไปพร้อมๆ กับการมองหาจุดด้อยของตัวเอง เพื่อที่หลังจากการฝึกงานแล้ว จะได้ใช้เวลาที่เหลืออีกหนึ่งปี เตรียมตัวให้พร้อมที่จะก้าวสู่โลกแห่งความเป็นจริงต่อไป</p>
<p>วันนี้มาบ่นอีกแล้ว หลังจากได้รับโทรศัพท์สายหนึ่ง รู้สึกจะเป็นความผิดพลาด และอ่อนประสบการณ์ของตัวเองอีกแล้ว</p>
]]></content:encoded>
			<wfw:commentRss>http://cholwich.org/wordpress/2007/05/25/%e0%b8%9d%e0%b8%b6%e0%b8%81%e0%b8%87%e0%b8%b2%e0%b8%99/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

