วันจันทร์ที่ 23 สิงหาคม พ.ศ. 2553

หน่วยการเรียนที่7 การเขียนโปรแกรมสั่งงาน


การพัฒนาระบบการสั่งงานคอมพิวเตอร์ การพัฒนาระบบการสั่งงานแบ่งเป็น ๒ ประเภท ใหญ่ๆ คือ การพัฒนาระบบชุดคำสั่งควบคุม และการพัฒนาระบบชุดคำสั่งใช้งาน การพัฒนาระบบชุดคำสั่งควบคุม ซึ่งรวมทั้งตัวแปลชุดคำสั่งด้วยนั้นต้องใช้บุคลากรที่เรียกว่า นักวิศวกรระบบ(system engineer) และนักโปรแกรมระบบ (system programmer) ส่วนการพัฒนาระบบชุดคำสั่งใช้งานต้องมีการวิเคราะห์ระบบงานก่อนโดยใช้บุคลากรที่เรียกว่า นักวิเคราะห์ระบบ (system analyst) และนักเขียนโปรแกรม (programmer) นอกจากนี้ การพัฒนาระบบการสั่งงานยังต้องพึ่งบุคลากรที่เป็นผู้ควบคุมเครื่อง (operator) และพนักงานเตรียมข้อมูล (data preparation operator) อีกด้วย
นักวิศวกรระบบ
คือผู้ที่จะต้องเข้าใจระบบเครื่องการเขียนชุดคำสั่งภาษาระดับเครื่อง รวมทั้งมีความรู้ด้านชุดคำสั่งควบคุมและตัวแปลชุดคำสั่งเป็นอย่างดี
นักวิเคราะห์ระบบ
คือผู้ที่ทำหน้าที่ศึกษางานที่กระทำโดยไม่ได้ใช้คอมพิวเตอร์ว่าจะจัดทำได้โดยระบบใดและเมื่อนำคอมพิวเตอร์มาใช้แล้ว จะต้องเปลี่ยนแปลงอย่างไรจึงจะไม่เกิดปัญหา และคอมพิวเตอร์จะเข้ามาช่วยงานด้านใดบ้างจึงจะเกิดประสิทธิภาพดีที่สุด และประหยัดที่สุด นักวิเคราะห์ระบบจึงควรจะเป็นผู้ที่มีมนุษยสัมพันธ์ดีและเข้าใจงานนั้นๆ อย่างดีเยี่ยม จึงจะทำได้รวดเร็วมิฉะนั้นแล้วอาจต้องใช้เวลาแรมปีจึงจะวางระบบเสร็จ ในงานบางลักษณะอาจจะต้องใช้นักวิเคราะห์หลายสิบคน หรือหลายร้อยคน ทั้งนี้ขึ้นอยู่กับว่า งานนั้นมีความยากง่ายอย่างไร เมื่อนักวิเคราะห์ระบบตัดสินใจแล้วว่าจะดำเนินการได้ก็จะศึกษาว่า ชุดคำสั่งที่มีอยู่แล้วมีอะไรบ้าง ชุดคำสั่งอะไรบ้างที่จะต้องพัฒนาเพิ่มเติมเพื่อให้สะดวกกับผู้ใช้และมีข้อผิดพลาดน้อยที่สุดเมื่อใช้คอมพิวเตอร์ทำงานนั้น แล้วจัดวางระบบในลักษณะแผนภูมิที่สามารถทำให้คนทั่วไปเข้าใจได้เรียกว่า แผนภูมิระบบ (system flow chart) ที่สามารถแสดงให้ผู้ที่เกี่ยวข้อง โดยเฉพาะอย่างยิ่งผู้บริหารหน่วยงานเข้าใจได้ว่า ในแต่ละช่วงงานนั้นจะใช้งบประมาณเท่าใด รวมทั้งการใช้บุคลากรเป็นจำนวนเท่าใด หลังจากนั้นจึงขยายรายละเอียดให้กับนักเขียนโปรแกรม ซึ่งจะดำเนินการในรายละเอียดต่อไป

นักวิเคราะห์ระบบกำลังศึกษาหาวิธีการที่สามารถนำเครื่องคอมพิวเตอร์เข้ามาช่วยทำให้เกิดประสิทธิภาพสูงสุด นักโปรแกรมระบบ
คือผู้ที่จะต้องเข้าใจระบบเครื่องและระบบชุดคำสั่ง ตลอดจนสามารถตอบปัญหาที่อาจเกิดขึ้นในระหว่างการทำงาน เช่น ในขณะชุดคำสั่งควบคุมทำงาน ขณะแปลชุดคำสั่ง และขณะชุดคำสั่งที่เขียนขึ้นทำงาน เป็นต้น นอกจากนี้ นักโปรแกรมระบบยังทำหน้าที่ศึกษาความเป็นไป และหาทางพัฒนาปรับปรุงชุดคำสั่งควบคุม ตัวแปลชุดคำสั่ง รวมทั้งชุดคำสั่งใช้งานให้มีประสิทธิภาพดียิ่งขึ้น และใช้งานได้ง่าย นักโปรแกรมระบบส่วนใหญ่จะไม่เกี่ยวข้องกับผู้ใช้ทั่วไป จะเกี่ยวข้องกับเครื่องและชุดคำสั่งเท่านั้น
นักโปรแกรมระบบกำลังทดลองใช้ชุดคำสั่ง เพื่อปรับปรุงหรือพัฒนาชุดคำสั่งให้สมบรูณ์
ผู้ควบคุมเครื่อง
คือผู้ที่ทำหน้าที่นำชุดคำสั่งและข้อมูลเข้าเครื่องคอมพิวเตอร์ ผู้ควบคุมเครื่องจะต้องเข้าใจการทำงานของเครื่อง และการทำงานของชุดคำสั่งบางประเภทดีพอสมควร จึงจะสามารถทำให้เครื่องทำงานได้อย่างมีประสิทธิภาพ ผู้ควบคุมเครื่องควรจดบันทึกปัญหาที่เกิดขึ้นในขณะปฏิบัติงาน แล้วแจ้งให้นักโปรแกรมระบบทราบเพื่อหาทางแก้ไขต่อไป นอกจากนี้ ยังทำหน้าที่รายงานผลการใช้เครื่องคอมพิวเตอร์อีกด้วย
พนักงานเตรียมข้อมูล
คือผู้ที่ทำหน้าที่เตรียมข้อมูลโดยการเจาะบัตร ตรวจทานและแก้ไขบัตร เลือกและเรียงบัตร เตรียมข้อมูลเข้าแถบตลับ แถบแม่เหล็กและจานแม่เหล็ก พนักงานเตรียมข้อมูลจำเป็นต้องมีการฝึกใช้อุปกรณ์เตรียมข้อมูลประเภทต่างๆ จนมีความชำนาญพอที่จะดำเนินงานได้อย่างมีประสิทธิภาพ นอกจากบุคลากรดังกล่าวแล้ว ในบางหน่วยงานยังมีบุคลากรเพิ่มเติมอีก ได้แก่ เจ้าหน้าที่ให้การอบรม และเจ้าหน้าที่บรรณาธิกร

พนักงานเตรียมข้อมูลเข้าจานแม่เหล็กทางจอคอมพิวเตอร์

เจ้าหน้าที่ให้การอบรม
คือผู้ที่ทำหน้าที่ให้การอบรมการใช้คอมพิวเตอร์ในงานต่างๆ การอบรมอาจมีหลายระดับ แต่ที่สำคัญคือ การอบรมผู้ที่ใช้งานให้เข้าใจวิธีการใช้ชุดคำสั่งต่างๆ ที่ได้พัฒนาไว้ รวมทั้งการจัดอบรมเจ้าหน้าที่ภายในหน่วยงานคอมพิวเตอร์เองให้ทราบถึงสิ่งที่นักโปรแกรมระบบได้เปลี่ยนแปลงหรือปรับปรุงไปแล้ว[
กลับเจ้าหน้าที่บรรณาธิกร
คือผู้ที่ทำหน้าที่รวบรวมเอกสารทางด้านคอมพิวเตอร์ที่เกี่ยวกับสิ่งที่นักวิเคราะห์ระบบนักโปรแกรมระบบ และนักเขียนโปรแกรมได้ทำขึ้น รวมทั้งการจัดเก็บข้อมูลต่างๆ ให้เป็นระเบียบ การจัดแถบแม่เหล็ก และจานแม่เหล็กให้อยู่ในลักษณะพร้อมที่จะจัดใช้งานได้ จะเห็นได้ว่าในการพัฒนาชุดคำสั่งเพื่องานหนึ่งๆ นั้นจำเป็นต้องใช้บุคลากรที่เกี่ยวข้องหลายประเภท เพื่อที่จะทำให้การดำเนินงานเป็นไปอย่างมีประสิทธิภาพ ส่วนบุคลากรจะมีจำนวนเท่าใดนั้นขึ้นอยู่กับปริมาณงานว่ามีมากน้อยเท่าใดและระบบงานนั้นๆ มีความยุ่งยากซับซ้อนเพียงใด ถึงแม้ว่าในการพัฒนาชุดคำสั่งจะยุ่งยากซับซ้อนเพียงใดก็ตาม แต่เมื่อดำเนินการสำเร็จเรียบร้อยแล้ว ระบบดังกล่าวจะสามารถช่วยงานได้อย่างมีประสิทธิภาพ ถูกต้องและรวดเร็ว ดังนั้น บางครั้งชุดคำสั่งบางประเภทจะมีราคาแพงพอๆ กับระบบเครื่องคอมพิวเตอร์ หรือบางครั้งอาจจะแพงกว่า แต่ชุดคำสั่งบางประเภทราคาถูก หรืออาจขอมาใช้ได้โดยไม่เสียค่าใช้จ่ายก็ได้
การเขียนโปรแกรม
คือผู้ที่ทำหน้าที่เขียนชุดคำสั่งและหาแผนภูมิการดำเนินการโดยละเอียด (detailed flowchart) พร้อมกับจัดทำคู่มือการใช้ชุดคำสั่งโดยการเขียนชุดคำสั่งตามที่นักวิเคราะห์ระบบได้ทำไว้ การเขียนชุดคำสั่งจะเขียนเป็นภาษาอะไรนั้นขึ้นอยู่กับประเภทของงานเช่น ถ้าเป็นงานทางด้านวิทยาศาสตร์ หรือวิศวกรรมศาสตร์หรือทางการคำนวณ จะเขียนเป็นภาษาฟอร์แทรน หรือพีแอลวัน ถ้าเป็นงานทางด้านการค้าหรือธุรกิจ จะเขียนเป็นภาษาโคบอล หรือพีแอลวัน หรือดาตาเบส ทั้งนี้ขึ้นอยู่กับความชำนาญของนักเขียนโปรแกรม เมื่อทำเสร็จนักเขียนโปรแกรมจำเป็นต้องเขียนคู่มือการใช้งานโดยการแสดงลักษณะการจัดข้อมูลและการรายงานผลการใช้งานตลอดจนผลที่เกิดขึ้นเนื่องจากข้อผิดพลาด เพื่อให้ผู้ใช้ชุดคำสั่งสามารถนำไปใช้ได้โดยง่าย หรือถ้ามีความจำเป็นต้องแก้ไขปรับปรุงชุดคำสั่งก็จะทำได้ และไม่ลืมสิ่งที่ตนเองได้คิดไว้ตั้งแต่ครั้งแรก คู่มือการใช้งานดังกล่าว จะมีประโยชน์อย่างมากในการทำงานด้านชุดคำสั่ง

วันอาทิตย์ที่ 22 สิงหาคม พ.ศ. 2553

บทเรียนที่6
ตัวแปร
ตัวแปรและการตั้งชื่อตัวแปรในภาษา C#
Variable (ตัวแปร)ก่อนที่จะนิยามตัวแปรต้องขออธิบายซักนิดครับ ถ้าพูดถึงวิชาคณิตศาสตร์ ตัวแปรนั้นจะหมายถึงสิ่งที่เราไม่ทราบค่าและต้องการหาค่าเหล่านั้น แต่ในทางโปรแกรมมิ่ง ตัวแปรคือ สิ่งที่ใช้เก็บค่าของข้อมูลนั้นๆ ในเงื่อนไขหนึ่งๆตัวแปร คือ การเก็บค่าของข้อมูลโดยมีสิ่งที่อ้างอิงได้จากการตั้งชื่อให้กับหน่วยความจำเพื่อใช้ในการเก็บค่าต่างๆ ตัวแปรแต่ละตัวจะสามารถเก็บค่าได้เพียง 1 ค่าเท่านั้นในการเขียนโปรแกรมจะมีการจองพื้นที่หน่วยความจำ เพื่อใช้เก็บข้อมูล และต้องกำหนดชื่อเรียกเพื่อนอ้างอิงพื้นที่หน่วยความจำที่จอง ข้อมูลในตัวแปรสามารถเปลี่ยนแปลงได้ตลอดเวลากฏการตั้งชื่อตัวแปร
ห้ามนำคำสงวน (reserved word) มาตั้งเป็นชื่อตัวแปร
ชื่อตัวแปรจะต้องขึ้นต้นด้วย ตัวอักษรภาษาอังกฤษ อักขระพิเศษ @และ _ (underscore) เท่านั้น
ตัวแปรจะต้องไม่ขึ้นต้นด้วยตัวเลข เช่น 9number, 105Ages ถือว่าผิด
ชื่อตัวแปรจะต้องไม่ประกอบไปด้วยอักษรพิเศษทุกชนิด(เครื่องหมาย /, +, -, *, %, !)
ตัวอักษรใหญ่และเล็กจะถือว่าไม่เหมือนกัน เช่น mVar, MVAR จะถือว่าเป็นคนละตัวแปร
ไม่ควรใช้ชื่อยาวเกินไป และควรตั้งให้เหมาะสมกับการนำไปใช้ เช่น ตัวแปรเก็บอายุก็ควรตั้งว่า Age เป็นต้นตัวอย่างการตั้งชื่อตัวแปรที่ถูก- _Number (ถูกต้องเพราะขึ้นต้นด้วย _ และประกอบไปด้วยตัวอักษร)- @humor123- InputNumber (ถูกต้องเพราะขึ้นต้นด้วยตัวอักษร)ตัวอย่างการตั้งชื่อตัวแปรที่ผิด- 12Vat (ผิดเพราะ ขึ้นต้นด้วยตัวเลข)- inter-net (ผิดเพราะมีอักขระพิเศษ - )- case (ผิดเพราะ case เป็นคำสงวน)การตั้งชื่อตัวแปรในช่วงแรกๆนั้นจะนิยมตั้ง นำหน้าด้วยตัวอักษรที่สื่อถึงชนิดของข้อมูล เช่นInCost (ตัวแปรเก็บค่าราคา ชนิด integer)Dpi (ตัวแปรเก็บค่าพาย ชนิด Double)bChecker (ตัวแปรเก็บค่าความจริงชนิด Boolean)เรียกการตั้งชื่อตัวแปรรูปแบบนี้ว่า "ฮันกาเรียน โนเตชั่น"การตั้งชื่อตัวแปรในรูปแบบนี้ ได้รับความนิยมมากเนื่องจาก ป้องกันการลืมชนิดข้อมูลของตัวแปรเมื่อเราเขียนโปรแกรมที่มีขนาดใหญ่ แต่ปัจจุบันนั้น Compiler Visual Studio สามารถบอกชนิดของข้อมูลของตัวแปรได้เพียงแค่นำเมาส์ไปชี้ที่ชื่อตัวแปร การตั้งชื่อรูปแบบนี้จึงไม่นิยมอีกต่อไป
การประกาศตัวแปรก่อนที่เราจะได้ใช้งานตัวแปร เราจะต้องทำการประกาศตัวแปรเสียก่อน เพื่อที่จะให้โปรแกรมได้จองพื้นที่หน่วยความจำ ไว้สำหรับรองรับค่าที่จะรับเข้ามาเก็บไว้ในตัวแปรต่อไป ขนาดของหน่วยความจำที่ใช้จะขึ้นอยู่กับชนิดของตัวแปร(ชนิดของตัวแปร) (ชื่อของตัวแปร) ; // เป็นการประกาศค่าตัวแปรโดยที่ตัวแปรจะไม่มีค่าใดๆในหน่วยความจำเช่น int number ; // เป็นการประกาศตัวแปร number ชนิด int (จำนวนเต็ม)เราสามารถประกาศตัวแปรได้หลายตัวพร้อมกัน(ชนิดของตัวแปร) (ชื่อของตัวแปร 1), (ชื่อของตัวแปร 2), (ชื่อของตัวแปร 3), ...., (ชื่อของตัวแปร n) ;เช่น int a,b,c,d,e ;ตัวแปรที่ได้จะเป็นชนิด int (จำนวนเต็ม) ทั้งหมดเราสามารถประกาศตัวแปรพร้อมกับใส่ค่าเริ่มต้นให้กับตัวแปรได้(ชนิดของตัวแปร) (ชื่อของตัวแปร) = ค่าที่ของตัวแปร ;เช่น double pi = 3.14 ; // เป็นการประกาศค่าตัวแปร pi ชนิด double (จำนวนจริง) พร้อมกับใส่ค่าให้กับตัวแปร pi
สำหรับการประกาศค่าของ string และ char จะมีการกำหนดค่าเริ่มต้นที่ต่างจากตัวเลขดังนี้string text = "Oak"; // จะมีเครื่องหมาย "....." มาครอบข้อความเอาไว้
char word = 'O'; // จะมีเครื่องหมาย '...' มาครอบข้อความเอาไว้
การประกาศตัวแปรค่าคงที่ ( Constant )ค่าคงที่ในโค้ดโปรแกรมมีหน้าที่เฉพาะเจาะจงในแต่ละค่า เช่น ค่า พาย ค่า e หรือค่าอะไรก็แล้วแต่ ซึ่งเมื่อเราประกาศตัวแปรค่าคงที่มาแล้วนั้นจะไม่สามารถเปลี่ยนแปลงค่าได้อีก ไม่ว่าในส่วนของโปรแกรมใดๆ
รูปแบบการประกาศตัวแปรค่าคงที่const (ชนิดของตัวแปรค่าคงที่) = (ค่าที่ต้องการ) ;*** การประกาศตัวแปร const จะต้องประกาศพร้อมกับใส่ค่าให้กับตัวแปร จะประกาศเพียงชื่อไม่ได้*** const int oak ; (ถือว่าผิด จะไม่สามารถรันโปรแกรมได้) x x x x x x

ตัวแปร หมายถึง คุณลักษณะ คุณสมบัติที่แตกต่างกันไปของปรากฏการณ์ ซึ่งอาจจะเป็นสิ่งของ สิ่งมีชีวิต สิ่งไม่มีชีวิต หรือเหตุการณ์ แสดงให้เห็นความแตกต่าง หรือผลการะทบต่อกันได้ชัดเจน เมื่อทำการศึกษาวิจัย ชนิดของตัวแปร จะแบ่งย่อยเป็น ตัวแปรต้นที่เป็นสาเหตุ ตัวแปรตามที่เป็นผล และตัวแปรแทรกที่วัดค่าโดยตรงไม่ได้ พอสรุปได้ว่าตัวแปร คือ ค่าที่มีการเปลี่ยนแปลง และตัวอย่างตัวแปรที่เกี่ยวกับคนได้แก่ อายุ เพศ การศึกษา รายได้ อาชีพ ฯลฯ
ตัวแปร คือ คุณลักษณะ หรือ สภาวการณ์ต่างๆ ซึ่งแบ่งออกเป็นพวกหรือเป็นระดับ มีค่าได้หลายค่า
ประเภทของตัวแปร ได้แก่
ตัวแปรอิสระ เป็นอิสระ ไม่ขึ้นกับตัวแปรตาม และเป็นสาเหตุ มีอิทธิผลต่อตัวแปรตาม ตัวแปรอิสระยังมีชื่อเรียกอย่างอื่นเช่น ตัวแปรต้น ตัวแปรจัดการกระทำ ตัวแปรเร้า ตัวแปรป้อน เป็นต้น
ตัวแปรตาม หรือตัวแปรผล หมายถึง ขึ้นอยู่และแปรผันไปตามตัวแปรอิสระ ค่าของตัวแปรจะแตกต่างกันไปตามประเภท ระดับ หรือความเข้มข้นของตัวแปรอิสระ เชื่อว่าเป็นตัวแปรที่ได้รับผลจากอิทธิพลของตัวแปรอิสระ
ตัวแปร หมายถึง คุณลักษณะหรือปริมาณ ที่สามารถวัดได้ จากประชากรหรือกลุ่มตัวอย่าง ซึ่งมีค่าได้ต่างๆกัน เช่น เพศ สถานภาพสมรส รูปแบบวิธีสอน บุคลิกภาพ สติปัญญา เป็นต้น
ตัวแปรที่เกี่ยวข้องกับการวิจัย จำแนกได้เป็นชนิดต่างๆดังนี้ ตัวแปรทวิวิภาค ตัวแปรพหุ ตัวแปรที่มีความหมายชัดเจน ตัวแปรเชิงโครงสร้าง ตัวแปรเชิงคุณภาพ ตัวแปรเชิงปริมาณ ตัวแปรแบบต่อเนื่อง ตัวแปรแบบไม่ต่อเนื่อง ตัวแปรต้น ตัวแปรตาม ตัวแปรย่อย ตัวแปรแทรกซ้อน ตัวแปรสอดแทรก ตัวแปรควบคุม เป็นต้น
ประเภทของตัวแปร แบ่งตามบทบาทหน้าที่
- ตัวแปรอิสระ หมายถึง ตัวแปรที่มีคุณสมบัติทำหน้าที่เป็นเหตุ ซึ่งให้เกิดผลอย่างใด อย่างหนึ่งตามมา
- ตัวแปรตาม หมายถึง ตัวแปรที่มีคุณสมบัติทำหน้าที่เป็นผล
- ตัวแปรแทรก คุณสมบัติ สิ่งต่างๆที่ผู้วิจัยไม่ต้องการจะศึกษา แต่มีผลกระทบต่อตัวแปรที่ผู้วิจัยศึกษา
- ตัวแปรควบคุม ทำหน้าที่ควบคุมความผันแปร มีประโยชน์ในการลดความคาดเคลื่อนของงานวิจัย
ตัวแปร (Variables)
ตัวแปร หมายถึง ชื่อที่ผู้เขียนโปรแกรมกำหนดขึ้นเพื่อใช้เก็บหรือแทนข้อมูล ตัวแปรจึงเป็นเสมือนชื่อกล่องที่เก็บข้อมูล การตั้งชื่อตัวแปรจะเป็นตัวอักษรทั้งหมดหรือมีตัวเลขปนก็ได้ แต่ละตัวแปรจะต้องขึ้นต้นด้วยตัวอักษรเสมอ เช่น NAME SCORE X3
การตั้งชื่อตัวแปรควรตั้งชื่อให้สื่อความหมายเพื่อผู้ใช้จะได้เข้าใจง่าย ตัวแปรแบ่งเป็น 2 ประเภทคือ
1. ตัวแปรจำนวน (Numeric Variables) คือบอกให้รู้ว่าข้อมูลที่เก็บอยู่เป็นจำนวน
2. ตัวแปรอักขระ (String Variables) คือ ตัวแปรที่จะบอกให้รู้ว่าเก็บข้อมูลอยู่ในรูปตัวอักษรหรือข้อความต่าง ๆ เช่น ชื่อบ้านเลขที่ จะต้องปิดท้ายด้วยเครื่องหมาย $ เช่น NAME$ ADDRESS$
ตัวแปร หมายถึง สิ่งที่แตกต่าง หรือ เปลี่ยนแปลงไปจากเดิมเมื่ออยู่ในสถานการณ์ต่างๆ กัน ตัวแปรที่เกี่ยวข้องกับการทดลองทางวิทยาศาสตร์มีอยู่ ๓ ประเภท ได้แก่
ตัวแปรต้น (ตัวแปรอิสระ , ตัวแปรเหตุ) เป็นตัวแปรเหตุที่ทำให้เกิดผลต่างๆ หรือ ตัวแปรที่เราต้องการศึกษา หรือ ทดลองดูว่าเป็นสาเหตุที่ทำให้เกิดผลตามที่เราสังเกตใช่หรือไม่
ตัวแปรตาม (ตัวแปรไม่อิสระ , ตัวแปรผล) เป็นตัวแปรที่เกิดมาจากตัวแปรเหตุ เมื่อตัวแปรเหตุเปลี่ยนแปลง ตัวแปรตามก็จะเปลี่ยนแปลงตามไปด้วย
ตัวแปรควบคุม เป็นตัวแปรอื่นๆมากมาย (นอกจากตัวแปรเหตุ) ที่อาจส่งผลต่อการทดลอง ทำให้ผลการทดลองคลาดเคลื่อนไป เราจึงจำเป็นต้องทำการควบคุมให้เหมือนๆ กันเสียก่อน
ตัวแปร หมายถึง คุณลักษณะที่แปรเปลี่ยนได้ ขึ้นอยู่กับสิ่งที่ต้องการวัด ถ้าเป็นบุคคล ตัวแปรก็คือคุณลักษณะที่แปรเปลี่ยนไปในแต่ละบุคคล เช่น ความสูง, รายได้, การนับถือศาสนา, อายุ เป็นต้น

ตัวแปรมีหลายประเภทดังนี้
ก. ตัวแปรอิสระ (Independent Variables) มีชื่อเรียกอีกหลายชื่อ เช่น ตัวแปรต้น ตัวแปรจัดกระทำ ตัวแปรเร้า เป็นต้น
การที่ใช้ชื่อว่าตัวแปรจัดกระทำ (Manipulated or Treatment Variable) เป็นการเรียกในกรณีวิจัยการทดลองทั้งนี้เนื่องจากการวิจัยทดลองเป็นตัวแปรที่ผู้วิจัยจัดสภาพให้เกิดระดับหรือความเข้มข้น หรือประเภทแตกต่างกัน เช่น ถ้าตัวแปรอิสระเป็นอุณหภูมิ ผู้วิจัยจะจัดให้มีอุณหภูมิในการทดลองแตกต่างกัน เช่น ให้กลุ่มหนึ่งอยู่ในสภาพแวดล้อมที่มีอุณหภูมิ 20oC อีกกลุ่มอยู่ ในสภาพแวดล้อมที่มีอุณหภูมิ 30oC เป็นต้น ด้วยเหตุดังกล่าวจึงเรียกว่าเป็นตัวแปรจัดกระทำ
ที่เรียกว่าตัวแปรป้อน (Input Variable) เป็นการเรียกในการวิจัยเชิงทดลอง ทั้งนี้เนื่องจากเป็นตัวแปรที่ใส่ในการทดลอง
ข. ตัวแปรตาม (Dependent Variable) มีชื่อเรียกอีกย่างว่าตัวแปรผล คำว่า ตาม (Dependent) หมายถึง ขึ้นอยู่กับ หรือแปรผันไปตาม ตัวแปรอิสระ กล่าวคือค่าของตัวแปรนี้จะแตกต่างกันไปตามประเภท ระดับ หรือความเข้มของตัวแปรอิสระ
ที่เรียกว่าตัวแปรผล (Output Variable) เนื่องจากเชื่อว่าเป็นตัวแปรที่ได้รับผล หรือเป็นผลจากอิทธิพล ของตัวแปรอิสระ เช่น การสอน (ตัวแปรอิสระ) เป็นสาเหตุหรือมีอิทธิพลทำให้เกิดการเรียนรู้ (ตัวแปรผล) เป็นต้น
ตัวแปรอิสระ คือวิธีสอน ซึ่งมี 2 วิธี คือ
1.วิธีสอนแบบกระบวนการกลุ่มสัมพันธ์
2.วิธีสอนแบบบรรยาย
ตัวแปรตาม มี 2 ตัว คือ
1.ผลสัมฤทธิ์ทางการเรียนวิชาสังคมศึกษา
2.ความมีวินัยแห่งตน
ค. ตัวแปรสอดแทรกหรือตัวแปรแทรกซ้อน (Intervening Variable) เป็นตัวแปรที่เกิดขึ้นระหว่างการทดลอง เช่น ขณะที่การทดลองกลุ่มตัวอย่างเกิดความเหนื่อยล้าหรือเกิดความวิตกกังวล มีแรงจูงใจสูงหรือต่ำเป็นต้น นอกจากความเหนื่อยล้า ความวิตกกังวล แรงจูงใจ และยังมีตัวแปรชนิดนี้อีกหลายตัว เช่น ความรับรู้ ความต้องการ ความรู้สึก เป็นต้น
ง. ตัวแปรเกินหรือตัวแปรภายนอก (Extraneous Variable) คือตัวแปรที่ผู้วิจัยไม่ได้มุ่งศึกษาผลของตัวแปรนั้นและได้ควบคุม แต่อาจมีอิทธิพลต่อตัวแปรตามทำให้ข้อสรุปขาดความเที่ยงตรง ตัวอย่าง การทดลอง เพื่อเปรียบเทียบวิธีการสอน 2 วิธี ว่าใดจะช่วยให้ผู้เรียนมีสัมฤทธิ์ทางเรียนของผู้เรียน ได้แก่ ระดับสติปัญญาของผู้เรียน ฯลฯ ดังนั้นทางเลือกกลุ่มตัวอย่างโดยเลือกเอาห้องเรียนที่โรงเรียนจัดไว้ โดยไม่ได้ใช้วิธีจัดแบบสุ่ม ห้องเรียนแต่ละห้องมักมีนักเรียนที่มีระดับสติปัญญาแตกต่างกัน อนึ่งยังมีตัวแปรอื่น ๆ อีก เช่น สถานะภาพทางเศรษฐกิจและทางสังคม ความสามารถทางการเรียนของผู้เรียน เป็นต้น
จ. ตัวแปร Organismic หรือ Attribute Variable คือ ตัวแปรที่ไม่สามารถเปลี่ยนแปลง เช่น เพศ อายุ เชื้อชาติ เป็นต้น
หน่วยการเรียนที่5
คำสั่งวนซ้ำและกระบวนความ
โครงสร้างคอมพิวเตอร์ และภาษาแอสเซมบลี้
(Computer Organization and Assembly Language)
ระบบตัวเลขที่ใช้แทนข้อมูลและคำสั่งในเครื่องคอมพิวเตอร์ โครงสร้างระบบและภาษาเครื่อง หน่วยประมวลผลและหน่วยความจำ แบบจำลองของเครื่อง โปรแกรมภาษาแอสเซมบลี้ การทำงานกับโปรแกรมควบคุมระบบ อุปกรณ์ตรรกโปรซีเตอร์สำหรับอ่าน/เขียนข้อมูล ระบบแฟ้มข้อมูลเบื้องต้น การใช้บัฟเฟอร์หลายอัน รูปแบบและชนิดของคำสั่ง ภาษาแมคโครแอสเซมบลี้ การเชื่อมโยงส่วนจำเพาะ (Module linking) พื้นฐานของโปรแกรมควบคุมระบบ เช่น การจัดจังหวะประสาน มัลติโปรแกรมมิ่ง เทคนิคหน่วยความจำเสมือน
จุดประสงค์รายวิชา
เข้าใจระบบตัวเลขที่ใช้แทนข้อมูล และคำสั่งในเครื่องคอมพิวเตอร์
เข้าใจโครงสร้างระบบ และภาษาเครื่อง
เข้าใจหน่วยประมวลผล และหน่วยความจำ แบบจำลองของเครื่อง
เข้าใจโปรแกรมภาษาแอสเซมบลี้ การทำงานกับโปรแกรมควบคุมระบบ
เข้าใจอุปกรณ์ตรรกโปรซีเดอร์สำหรับอ่าน/เขียนข้อมูล
เข้าใจระบบแฟ้มข้อมูลเบื้องต้น
เข้าใจการใช้บัฟเฟอร์หลายอัน
เข้าใจรูปแบบ และชนิดของคำสั่งภาษาแมคโครแอสเซมบลี้
เข้าใจการเชื่อมโยงส่วนจำเพาะ (Module linking)
เข้าใจพื้นฐานของโปรแกรมควบคุมระบบ
แผนการสอน (Lesson Plan)
ความเป็นมาของหน่วยประมวล และหน่วยความจำในยุคต่าง ๆ
ไมโครโปรเซสเซอร์ 8088, 8086 (ยุค XT)
ไมโครโปรเซสเซอร์ 80286, 80386, 80486 (ยุค AT)
ไมโครโปรเซสเซอร์ Pentium, 80586 ..
โครงสร้าง หรือส่วนประกอบระบบคอมพิวเตอร์
หน่วยความจำ
หน่วยคำนวณ
หน่วยควบคุม
หน่วยแสดงผล
หน่วยรับข้อมูล
ระบบปฏิบัติการคอมพิวเตอร์ในปัจจุบัน
DOS
Windows
Linux
คำสั่งในเครื่องคอมพิวเตอร์
คำสั่งภายใน
คำสั่งภายนอก
ระบบเลขที่ใช้แทนข้อมูล
ระบบเลขฐาน 10, 2, 16 และอื่น ๆ
การบวก-ลบ เลขฐาน
ระบบแฟ้มข้อมูลเบื้องต้น
Bit
Byte or character
Field
Record
File
สอบกลางภาค
การกระทำทางตรรกศาสตร์
and, nand, or, nor, xor
shift left, shift right, rotate, complement
Register และ Interrupt ของ DOS
การใช้โปรแกรม debug เบื้องต้น
การเรียกแฟ้มเดิมมาแก้ไข
การสร้างโปรแกรม หรือแฟ้มใหม่
การดูโปรแกรม .com ในรูปภาษา assembly
การเขียนโปรแกรม assembly ด้วย debug
การเขียน Batch file เบื้องต้น
การใช้ Batch file ร่วมกับโปรแกรมที่พัฒนาด้วย debug
สร้างโปรแกรม backup
สร้างโปรแกรม menu
การเขียนโปรแกรมด้วยภาษา assembly ด้วย Macro assember
พื้นฐานของโปรแกรมควบคุมระบบ
การเชื่อมโยงส่วนจำเพาะ (Module linking)
สอบปลายภาค
การประเมินผลการเรียน
คะแนนรวม
100 คะแนน
จิตพิสัยกลาง
10 คะแนน
โครงงานประจำวิชา
10 คะแนน
การฝึกภาคปฏิบัติ
20 คะแนน
สอบกลางภาค
15 คะแนน
สอบปลายภาค
45 คะแนน
แผนการสอน (เดิม): (ที่ยังไม่สมบูรณ์ เพราะกำลังหาข้อมูลเตรียมสอนภาคเรียนที่ 2/2546)
ความเป็นมาของไมโครโปรเซสเซอร์ในยุคต่าง ๆ
ไมโครโปรเซสเซอร์ 8088, 8086 (ยุค XT)
ไมโครโปรเซสเซอร์ 80286, 80386, 80486 (ยุค AT)
ไมโครโปรเซสเซอร์ Pentium, 80586 ..
ระบบของไมโครคอมพิวเตอร์
หน่วยความจำ
หน่วยคำนวณ
หน่วยควบคุม
หน่วยแสดงผล
หน่วยรับข้อมูล
ระบบปฏิบัติการคอมพิวเตอร์
DOS
Windows
Linux
การทำงานของระบบปฏิบัติการ DOS
ROM-BIOS
io.sys, msdos.sys. config.sys
command.com, autoexec.bat
หลักการทำงานของ DOS และคำสั่งต่าง ๆ
คำสั่งภายใน
คำสั่งภายนอก
ระบบเลขฐาน
ระบบเลขฐาน 10, 2, 16 และอื่น ๆ
การบวก-ลบ เลขฐาน
การกระทำทางตรรกศาสตร์
and, nand, or, nor, xor
shift left, shift right, rotate, complement
สอบกลางภาค
Register และ Interrupt ของ DOS
การใช้โปรแกรม debug เบื้องต้น
การเรียกแฟ้มเดิมมาแก้ไข
การสร้างโปรแกรม หรือแฟ้มใหม่
การดูโปรแกรม .com ในรูปภาษา assembly
การเขียนโปรแกรม assembly ด้วย debug
การเขียน Batch file เบื้องต้น
การใช้ Batch file ร่วมกับโปรแกรมที่พัฒนาด้วย debug
สร้างโปรแกรม backup
สร้างโปรแกรม menu
การเขียนภาษา assembly ด้วย Macro assember
การเขียนโปรแกรมแบบ .exe และ .com
การเขียนโปรแกรมด้วยภาษา assembly
สอบปลายภาค
แผนการสอนของ : http://202.29.8.8/~nong/assembly/ (expired)
Introduction
ระบบเลขฐานต่าง ๆ
ไมโครโปรเซสเซอร์ 8088
คำสั่งปฏิบัติการ 8088
คำสั่งประมวลผลทางคณิตศาสตร์
คำสั่งปฏิบัติการบิตและตัวอักษร
คำสั่งควบคุม
Interrupt&คำสั่งเทียม
Dos Interrupt
Macro
- การเขียนโปรแกรมผ่าน port RS232
- สรุปคำสั่งดีบัก
แผนการสอน : http://www.cpe.ku.ac.th/~jtf/204221/ Lecturer: Jittat Fakcharaoenphol
ระบบไมโครคอมพิวเตอร์
ระบบจำนวน และ การคำนวณ
ภาษาคอมพิวเตอร์และการแปลภาษาคอมพิวเตอร์
สถาปัตยกรรมของไมโครโปรเซสเซอร์ตระกูล 80x86
คำสั่งโอนย้ายข้อมูล
แฟล็กและคำสั่งคณิตศาสตร์
โปรแกรมภาษาแอสเซมบลี้ (1)
การประกาศข้อมูล (โปรแกรมภาษาแอสเซมบลี้ (2) )
คำสั่งกระโดดและการกระทำซ้ำ
โครงสร้างควบคุม
โปรแกรมย่อยขั้นต้น
การกระทำระดับบิต
แบบการอ้างแอดเดรส
การโปรแกรมเชื่อมต่อกับอุปกรณ์รอบข้าง
โปรแกรมย่อยและแสต็ก
คำสั่งจัดการกับสายข้อมูล
คำสั่งเปิดตารางและการสร้างมาโคร
Book referenced ::
# ระบบคอมพิวเตอร์และภาษาแอสเซมบลี, (ธีรวัฒน์ ประกอบผล)
ทฤษฏีไมโครคอมพิวเตอร์, บัณฑิต จามรภูติ, (#บัณฑิต)
แอดวานซ์แอสเซมบลี, กิตติ องค์คุณารักษ์, (#กิตติ
ภาษาแอสเซมบลี, กำธร พานิชปฐมพงษ์ และ ชูชัย ธนสารตั้งเจริฐ, (#กำธร)
กลวิธีการโปรแกรมภาษาแอสเซมบลี, วิริ พงษ์แจ้ง, 2537 (#วิริ)
คำอธิบายรายวิชา (Course description)
CPSC 317 หรือ CPSC 214 หลักการภาษาชุดคำสั่ง (Principles of programming languages)
ทฤษฎีของการออกแบบ และสร้างภาษา แนวคิดเกี่ยวกับภาษาฟอร์มัล รูปแบบ และคุณลักษณะทางไวยากรณ์เบื้องต้น ชนิด และโครงสร้างของข้อมูล โครงสร้างของการควบคุม และการเคลื่อนที่ของข้อมูล การพิจารณาเวลาในการประมวลผล อัลกอริทึมแบบขนาน การออพติไมซ์ การออกแบบ และสร้างลักษณะต่าง ๆ ของภาษา ลักษณะเฉพาะของภาษาแบบโครงสร้างบล๊อก แบบมอดูลาร์ แบบเชิงวัตถุ ประเภทของภาษาชุดคำสั่ง แบบกำหนดกระบวนการ และแบบไม่กำหนดกระบวนการ การวิเคราะห์ประโยคคำสั่งของภาษาคอมพิวเตอร์ ฝึกปฏิบัติการเขียน และทดสอบโปรแกรมด้วยภาษาปาสคาล ภาษาซี หรือภาษาระดับสูงอื่น ๆ
CPSC 213 โครงสร้างคอมพิวเตอร์ และภาษาแอสเซมบลี้ (Computer Organization and Assembly Language)
ระบบตัวเลขที่ใช้แทนข้อมูลและคำสั่งในเครื่องคอมพิวเตอร์ โครงสร้างระบบและภาษาเครื่อง หน่วยประมวลผลและหน่วยความจำ แบบจำลองของเครื่อง โปรแกรมภาษาแอสเซมบลี้ การทำงานกับโปรแกรมควบคุมระบบ อุปกรณ์ตรรกโปรซีเตอร์สำหรับอ่าน/เขียนข้อมูล ระบบแฟ้มข้อมูลเบื้องต้น การใช้บัฟเฟอร์หลายอัน รูปแบบและชนิดของคำสั่ง ภาษาแมคโครแอสเซมบลี้ การเชื่อมโยงส่วนจำเพาะ (Module linking) พื้นฐานของโปรแกรมควบคุมระบบ เช่น การจัดจังหวะประสาน มัลติโปรแกรมมิ่ง เทคนิคหน่วยความจำเสมือน CPSC 211 วิทยาการคอมพิวเตอร์ (Computer science)
หลักการเขียนโปรแกรมแบบโครงสร้าง หลักการออกแบบโปรแกรม การแทนข้อมูลแบบต่าง ๆ นิพจน์โครงสร้างแบบบล็อก แถวลำดับ ฟังก์ชัน และโปรแกรมย่อย โครงสร้าง และการประมวลผลแฟ้มข้อมูลแบบต่าง ๆ โครงสร้างข้อมูลเบื้องต้น การเรียกซ้ำ การเรียงลำดับ การค้นหา และการผสานข้อมูล ฝึกปฏิบัติการเขียน และทดสอบโปรแกรมด้วยภาษาปาสคาล ภาษาซี หรือภาษาระดับสูงอื่น ๆ CPSC 101 ความรู้เบื้องต้นเกี่ยวกับโปรแกรมคอมพิวเตอร์ (Introduction to computer programming)
องค์ประกอบ และการทำงานของเครื่องคอมพิวเตอร์ ตรรก และการแก้ปัญหา ข้อมูล และรหัสที่ใช้แทนข้อมูลศึกษาพื้นฐานหลักการเขียนโปรแกรม การวิเคราะห์งาน การเขียนผังงาน การเขียนโปรแกรม และการนำเสนอการทดสอบโปรแกรม สภาพการผิดพลาดของโปรแกรม การบันทึก และการประมวลผลแฟ้มข้อมูลเบื้องต้น ฝึกปฏิบัติการเขียน และทดสอบโปรแกรมด้วยภาษาปาสคาล ภาษาซี หรือภาษาระดับสูงอื่น ๆ

หน่ยการเรียนที่4 โครงสร้างข้อมูลและคำสั่งการข้อมูล


โครงสร้างข้อมูล (Data Structure) คืออะไร
คือ รูปแบบของการจัดระเบียบของข้อมูล ซึ่งมีอยู่หลายรูปแบบ เช่น เขตข้อมูล(Field), แถวลำดับ(Array), ระเบียน(Record), ต้นไม้(Tree), ลิงค์ลิสต์(Link List) เป็นต้น (ทักษิณา สวนานนท์, 2544, หน้า 161) [4]p.12
คือ รูปแบบวิธีการจัดระเบียบของข้อมูลที่ได้จากการดำเนินการทางคณิตศาสตร์(Operations) เพื่อให้สามารถจัดการกับข้อมูลที่ใช้กับระบบคอมพิวเตอร์ได้ [4]p.12
คือ การรวบรวมข้อมูลเป็นกลุ่มอย่างมีรูปแบบ เพื่อให้การนำข้อมูลกลับมาใช้ หรือประมวลผลอย่างมีประสิทธิภาพ ด้วยขั้นตอนวิธีที่หลากหลาย แล้วนำเสนอได้อย่างถูกต้องรวดเร็วตามลักษณะงานที่ต้องการ
คือ การนำกลุ่มของข้อมูลขนาดใหญ่มาจัดรูปแบบ เพื่อให้เครื่องประมวลผลและแสดงผลอย่างมีขั้นตอน โดยเริ่มจากการรวบรวม เพิ่ม ลบ หรือเข้าถึงข้อมูลแต่ละรายการ
ระบบจัดการฐานข้อมูล (Database Management System) หรือที่เรียกว่า ดีบีเอ็มเอส (DBMS) เป็นกลุ่มโปรแกรมที่ทำหน้าที่เป็นตัวกลางในระบบติดต่อระหว่างผู้ใช้กับฐานข้อมูล เพื่อจัดการและควบคุมความถูกต้อง ความซ้ำซ้อน และความสัมพันธ์ระหว่างข้อมูลต่างๆ ภายในฐานข้อมูล ซึ่งต่างจากระบบแฟ้มข้อมูลที่หน้าที่เหล่านี้จะเป็นหน้าที่ของโปรแกรมเมอร์ ในการติดต่อกับข้อมูลในฐานข้อมูลไม่ว่าจะด้วยการใช้คำสั่งในกลุ่มดีเอ็มแอล (DML) หรือ ดีดีแอล (DDL) หรือจะด้วยโปรแกรมต่างๆ ทุกคำสั่งที่ใช้กระทำกับข้อมูลจะถูกดีบีเอ็มเอสนำมาแปล (คอมไพล์) เป็นการปฏิบัติการ (Operation) ต่างๆ ภายใต้คำสั่งนั้นๆ เพื่อนำไปกระทำกับตัวข้อมูลภายในฐานข้อมูลต่อไป สำหรับส่วนการทำงานตางๆ ภายในดีบีเอ็มเอสที่ทำหน้าที่แปลคำสั่งไปเป็นการปฏิบัติการต่างๆ กับข้อมูลนั้น ประกอบด้วยส่วนการปฏิบัติการดังนี้
หน้าที่ของระบบจัดการฐานข้อมูล
แปลงคำสั่งที่ใช้จัดการกับข้อมูลภายในฐานข้อมูล ให้อยู่ในรูปแบบที่ฐานข้อมูลเข้าใจ
นำคำสั่งต่าง ๆ ซึ่งได้รับการแปลแล้ว ไปสั่งให้ฐานข้อมูลทำงาน เช่น การเรียกใช้ (Retrieve) จัดเก็บ (Update) ลบ (Delete) เพิ่มข้อมูล (Add) เป็นต้น
ป้องกันความเสียหายที่จะเกิดขึ้นกับข้อมูลภายในฐานข้อมูล โดยจะคอยตรวจสอบว่าคำสั่งใดที่สามารถทำงานได้ และคำสั่งใดที่ไม่สามารถทำงานได้
รักษาความสัมพันธ์ของข้อมูลภายในฐานข้อมูลให้มีความถูกต้องอยู่เสมอ
เก็บรายละเอียดต่างๆ ที่เกี่ยวข้องกับข้อมูลภายในฐานข้อมูลไว้ในพจนานุกรมข้อมูล (Data Dictionary) ซึ่งรายละเอียดเหล่านี้มักจะถูกเรียกว่า เมทาดาตา (MetaData) ซึ่งหมายถึง "ข้อมูลของข้อมูล"
ควบคุมให้ฐานข้อมูลทำงานได้อย่างถูกต้องและมีประสิทธิภาพได้นะ
ควบคุมสถานะภาพของคอมพิวเตอร์ในการแปลสถาพฐานข้อมูล ส.ท
ระบบจัดการฐานข้อมูลที่นิยมใช้กันในปัจจุบัน
ออราเคิล (Oracle)
ไอบีเอ็ม ดีบีทู (IBM DB2)
ไมโครซอฟท์ ซีควลเซิร์ฟเวอร์ (Microsoft SQL Server)
ไซเบส (Sybase)
แคเช่ (Cache')
PostgreSQL
Progress
มายเอสคิวแอล (MySQL)
Interbase
Firebird
Pervasive SQL
แซพ ดีบี (SAP DB)
ไมโครซอฟท์ แอคเซส (Microsoft Office Access)

วันจันทร์ที่ 9 สิงหาคม พ.ศ. 2553

หน่ยการเรียนที่3 การเขียนแผนผังโครงสร้าง



การเขียนผังงานแบบโครงสร้างจะช่วยให้เกิดความสะดวก ในการนำไปเขียนโปรแกรม โดยการนำปัญหามาแตกย่อยเป็นงานเล็ก ๆ ทำให้มองเห็นแนวทางในการแก้ปัญหา

ผังงานเป็นเครื่องมือของผู้เขียนโปรแกรมที่ใช้ในการจำลองการวางแผนเขียนโปรแกรม ใช้แสดงลำดับ การเคลื่อนที่ของการนำข้อมูลเข้าไปประมวลผลออกเป็นผลลัพธ์ตามความต้องการ ซึ่งเป็นขั้นตอนหนึ่งของกระบวนการในการวิเคราะห์งานการเขียนโปรแกรมคอมพิวเตอร์ โดยนำขั้นตอนของวิธีการทำงานที่อยู่ใน รูปแบบข้อความมาแปลงเป็นรูปแบบของสัญลักษณ์ หรืออาจแปลงออกมาเป็นในรูปแบบของรหัสเทียม(pseudocode) เพื่อให้งานในการเขียนโปรแกรมทำได้ง่ายขึ้น อีกทั้งยังแสดงให้ผู้ที่อ่านภาษาที่ยังเขียนอยู่ในขั้นตอนวิธี สามารถเข้าใจในลำดับขั้นตอนของการทำงานของโปรแกรมที่จะทำการพัฒนาได้โดยการดูจากลำดับกระบวนการทำงานในผังงาน
การเขียนผังงานก่อนการเขียนโปรแกรมคอมพิวเตอร์ในปัจจุบันมักถูกมองข้ามความสำคัญว่าไม่ จำเป็น เพราะคิดว่าเดี๋ยวนี้เขาเขียนโปรแกรมแบบภาษา เชิงวัตถุ (object-oriented programming language) กันแล้ว ไม่จำเป็นต้องมาเขียนผังงาน แต่หากท่านมองลึก ลงไปภายในของคำสั่งต่าง ๆ ที่ใช้ จะมีรูปแบบของกระบวนการที่ต้องนำผังงานเข้าไปช่วยในการแก้ไขปัญหา ดังนั้นประโยชน์ในการใช้ผังงานคือช่วยในการแก้ไข หรือ
ช่วยในการเขียนโปรแกรม ผังงานจึงมีความจำเป็นต่ออาชีพนักเขียนโปรแกรมอยู่มาก

เหตุที่ต้องใช้ผังงาน
1. เนื่องจากผังงานเป็นแผนผังหรือรูปภาพที่แสดงแนวความคิดสำหรับใช้ติดต่อประสานงานระหว่าง ผู้วิเคราะห์ระบบกับผู้เขียนโปรแกรม หรือผู้เขียนโปรแกรมกับผู้ใช้เพื่อให้เห็นเป็นภาพว่าโปรแกรมที่จะทำมีขั้นตอนอย่างไร
2. ใช้ผังงานเป็นเอกสารอ้างอิง เพื่อให้ผู้เขียนโปรแกรมคนอื่นได้ทราบ ทั้งนี้เพราะผังงานที่ดีจะต้องไม่ขึ้นอยู่กับภาษาคำสั่งภาษาใดภาษาหนึ่งโดยเฉพาะผู้ที่สามารถอ่านและเข้าใจผังงาน ไม่จำเป็นต้องรู้ภาษาคำสั่งคอมพิวเตอร์ที่เขียนขึ้นจากผังงานโปรแกรมนั้น
3. สามารถใช้ผังงานในการทดสอบหรือแก้ไขการทำงานของโปรแกรมได้ โดยยังไม่ต้องลงมือเขียนเป็นรหัสภาษาคอมพิวเตอร์หรือส่งเข้าทดสอบกับคอมพิวเตอร์ กล่าวคือ สามารถทำได้โดยวิธีตรวจสอบบนโต๊ะ (desk checking) ผู้เขียนโปรแกรมสามารถใช้ข้อมูลตัวอย่างแล้ว


ขั้นตอนการเขียนโปรแกรม
ในการเขียนโปรแกรมหรือภาษาคอมพิวเตอร์นี้ โดยทั่วไปแล้วแต่ละภาษาจะ
มีหลักเกณฑ์ หรือขั้นตอน และการออกแบบโปรแกรมเหมือนกัน ซึ่งสามารถจะแบ่ง
ขั้นตอนการเขียนโปรแกรมออกได้เป็น 6 ขั้นตอนดังนี้
1. ขั้นตอนการวิเคราะห์ปัญหา
2. ขั้นตอนการออกแบบโปรแกรม
3. ขั้นตอนการเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์
4. ขั้นตอนการทดสอบโปรแกรม
5. ขั้นตอนการนําโปรแกรมเข้าเครื่องคอมพิวเตอร์พร้อมข้อมูลจริง
6. ขั้นตอนการจัดทําเอกสารประกอบโปรแกรม

การวิเคราะห์ปัญหา
ในขั้นตอนนี้จะเป็นขั้นตอนแรกสุดที่นักเขียนโปรแกรม (Programmer) จะต้องลงมือทํ าก่อนที่จะเขียนโปรแกรมจริง ๆ เพื่อทํ าความเข้าใจกับปัญหาที่เกิดขึ้นและค้นหาจุดมุ่งหมายหรือสิ่งที่ต้องการ วิเคราะห์ปัญหา เราจะต้องทําความเข้าใจกับปัญหากําหนดให้ได้ว่าปัญหาหรือโจทย์คืออะไร โจทย์ต้องการอะไร ทําอย่างไรจึงจะแก้ปัญหา
นั้นได้ เพื่อให้ได้ ผลลัพธ์ หรือคําตอบที่เราต้องการ เราจะทํ าความเข้าใจเกี่ยวกับองค์ประกอบอยู่ 3 องค์ประกอบ ที่จะช่วยในการวิเคราะห์ปัญหาได้แก่

1. การระบุข้อมูลเข้า(Input Specification) ต้องรู้ว่ามีข้อมูลอะไรที่จะต้องป้อนเข้าสู่คอมพิวเตอร์พร้อมกับโปรแกรม เพื่อให้โปรแกรมทํ าการประมวลผลและออกผลลัพธ์

2. การระบุข้อมูลออก(Output Specification) จะพิจารณาว่างานที่ทํ ามีเป้าหมายหรือวัตถุประสงค์อะไร ต้องหารผลลัพธ์ที่มีรูปร่างหน้าตาเป็นอย่างไร โดยจะต้องคํ านึงถึงผู้ให้เป็นหลักในการออกแบบผลลัพธ์

3. กํ าหนดวิธีการประมวลผล (Process Specification) ต้องรู้วิธีการประมวลผล
เพื่อให้ได้ผลลัพธ์ตามต้องการ



**ในขั้นตอนการวิเคราะห์ปัญหานี้ โดยทั่วไปจะทํ าให้ทราบว่าจะต้องมีการ
คํ านวณหาผลลัพธ์ว่าคืออะไรเท่านั้น ส่วนวิธีการคํ านวณเพื่อให้ได้ผลลัพธ์นั้นจะทํ าได้
อย่างไร จะอยู่ในขั้นตอนต่อไปคือการออกแบบโปรแกรม

การออกแบบโปรแกรม
หลังจากขั้นตอนการวิเคราะห์ปัญหาแล้ว ขั้นตอนถัดไปคือการออกแบบโปรแกรมโอยใช้เครื่องมือมาช่วยในการออกแบบ ขั้นตอนนี้ยังไม่ได้เป็นการเขียนโปรแกรมจริง ๆ แต่จะช่วยให้การเขียนโปรแกรมทํ าได้ง่านขึ้น โดยสามารถเขียนตามขั้นตอนที่ได้ออกแบบไว้ในขั้นตอนนี้และยังจะช่วยให้การเขียนโปรแกรมมีข้อผิดพลาด
น้อยลง นอกจากนี้ยังช่วยในการตรวจสอบการทํ างานของโปรแกรม ทํ าให้ทราบขั้นตอนการทํ างานได้อย่างรวดเร็ว โดยไม่ต้องไปไล่ดูจากตัวโปรแกรมจริง ๆ ซึ่งถ้าเปรียบเทียบการเขียนโปรแกรมเหมือนกับการสร้างบ้านแล้ว ในขั้นตอนการออกแบบโปรแกรมนี้ก็จะเปรียบเหมือนกับการสร้างแปลนบ้านลงกระดาษไว้ ซึ่งในการสร้าง
บ้านจริงจะอาศัยแปลนบ้านนี้เป็นต้นแบบในการสร้าง นั่นเองในขั้นตอนการออกแบบโปรแกรมนี้เป็นการออกแบบการทํ างานของโปรแกรม หรือขั้นตอนในการทํ าปัญหา ซึ่งผู้ออกแบบสามารถเลือกใช้เครื่องมือมา
ช่วยในการออกแบบได้ โดยมีอยู่หลายตัวตามความถนัดหรือความชอบสํ าหรับเน้อหาในบทนี้จะแนะนํ าให้รู้จักกับเครื่องมือที่ยังใช้ในการออกแบบโปรแกรมคือ
- อัลการิทึม(Algorithm)
- ผังงาน(Flowchart)
- รหัสจํ าลอง(Pseudo code)
- แผนภูมิโครงสร้าง(Structure chart)

การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์
หลังจากที่ผ่านขั้นตอนที่สองคือการออกแบบโปรแกรมแล้ว ขั้นต่อไปคือ
การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ ในขั้นตอนนี้จะเป็นการนํ าเครื่องมือที่ถูก
สร้างขึ้นจากขั้นตอนการออกแบบมาแปลให้เป็นโปรแกรมคอมพิวเตอร์นั่นเอง ซึ่งใน
การสร้างโปรแกรมคอมพิวเตอร์นั้น เราสามารถเลือกใช้ภาษาได้หลายภาษา ตั้งแต่ภาษา
ระดับตํ่ า เช่น ภาษาแอสเซมบลี จนถึงภาษาระดับสูง เช่น ภาษาเบสิก(BASIC) ภาษา
โคบอล(COBOL) ภาษาปาสดาล(PASCAL) ภาษาฟอร์แทรน(FORTRAN) ภาษาซี(C)
ฯลฯ แต่ละภาษาก็จะมีรูปแบบ โครงสร้าง หรือไวยากรณ์ของภาษาที่แตกต่างกันออก
ไป
ดังนั้นการเขียนโปรแกรมที่ดีนั้น ควรจะต้องทํ าตามขั้นตอนคือเริ่มตั้งแต่
วิเคราะห์ปัญหาให้ได้ก่อน แล้วทํ าการออกแบบโปรแกรมจึงจะเริ่มเขียนโปรแกรม ซึ่ง
ในการเขียนโปรแกรมนั้นสํ าหรับผู้ที่ยังไม่มีประสบการณ์การเขียนโปรแกรมเพียงพอ ก็
ควรจะทดลองเขียนลงในกระดาษก่อน แล้วตรวจสอบจนแน่ใจว่าสามารถทํ างานได้แล้ว
จึงทํ าการป้อนเข้าสู่เครื่องคอมพิวเตอร์ เพื่อเป็นการประหยัดเวลาและทํ าให้สามารถ
ทํ างานได้เร็วขึ้น
1. แนวคิดการสอนเขียนโปรแกรม
หลายครั้งที่ผมต้องเริ่มสอนเขียนโปรแกรม ให้นักเรียนกลุ่มใหม่ และก็ต้องบอกเล่า ด้วยประโยคเดิมทุกครั้งว่า "การเขียนโปรแกรม ทุกภาษานั้นเหมือนกัน" สิ่งที่แตกต่างกัน ของแต่ละภาษาคือ syntax แต่สิ่งที่เหมือนกันของทุกภาษาคือ การใช้ประสบการณ์จากภาษาหนึ่ง ไปใช้ในอีกภาษาหนึ่งได้ ด้วยการซึมซับ เรื่องของ Structure Programming จนเข้าใจ เพื่อควบคุมในสิ่งที่คล้าย ๆ กันคือ input, process และ output ซึ่งหมายความว่า ถ้าท่านเขียนโปรแกรมอะไร ในภาษาหนึ่งได้แล้ว การเขียนโปรแกรมแบบนั้น ในภาษาอื่นย่อมไม่ใช่เรื่องยากอีกต่อไป เพียงแต่ต้องศึกษาถึง syntax หรือ รูปแบบการเขียนของภาษาใหม่นั้นเพิ่มเติม แล้วนำประสบการณ์ที่เคยเขียน ไปสั่งให้ภาษาใหม่ทำงานตามต้องการ ผมจึงมักสนับสนุนให้นักเรียน ได้ศึกษาภาษาที่ไม่มีตัวช่วยมาก เพื่อให้เข้าใจในหลักการ และขั้นตอนการทำงาน อย่างละเอียดชัดเจน จากการทำงานของตัวแปรภาษาที่มีตัวช่วยน้อย ทำงานบน dos สามารถแปลเป็น exe และ นำไปใช้ได้โดยไม่ยุ่งยาก เช่น c, pascal, basic, fox... หรือ clipper เป็นต้น

หน่วยการเรียนที่2 ปัญญาประดิษฐ์

ปัญญาประดิษฐ์ (Artificial Intelligence) หรือ เอไอ (AI) หมายถึงความฉลาดเทียมที่สร้างขึ้นให้กับสิ่งที่ไม่มีชีวิต ปัญญาประดิษฐ์เป็นสาขาหนึ่งในด้านวิทยาการคอมพิวเตอร์ และวิศวกรรมเป็นหลัก แต่ยังรวมถึงศาสตร์ในด้านอื่นๆอย่างจิตวิทยา ปรัชญา หรือชีววิทยา ซึ่งสาขาปัญญาประดิษฐ์เป็นการเรียนรู้เกี่ยวกับกระบวนการการคิด การกระทำ การให้เหตุผล การปรับตัว หรือการอนุมาน และการทำงานของสมอง แม้ว่าดังเดิมนั้นเป็นสาขาหลักในวิทยาการคอมพิวเตอร์ แต่แนวคิดหลายๆ อย่างในศาสตร์นี้ได้มาจากการปรับปรุงเพิ่มเติมจากศาสตร์อื่นๆ เช่น
การเรียนรู้ของเครื่อง นั้นมีเทคนิคการเรียนรู้ที่เรียกว่า การเรียนรู้ต้นไม้ตัดสินใจ ซึ่งประยุกต์เอาเทคนิคการอุปนัยของ จอห์น สจวร์ต มิลล์ นักปรัชญาชื่อดังของอังกฤษ มาใช้
เครือข่ายประสาทเทียมก็นำเอาแนวคิดของการทำงานของสมองของมนุษย์ มาใช้ในการแก้ปัญหาการแบ่งประเภทของข้อมูล และแก้ปัญหาอื่นๆ ทางสถิติ เช่น การวิเคราะห์ความถดถอยหรือ การปรับเส้นโค้ง
อย่างไรก็ตาม เนื่องจากปัจจุบันวงการปัญญาประดิษฐ์ มีการพัฒนาส่วนใหญ่โดย
นักวิทยาศาสตร์คอมพิวเตอร์ อีกทั้งวิชาปัญญาประดิษฐ์ ก็ต้องเรียนที่ภาควิชาคอมพิวเตอร์ของคณะวิทยาศาสตร์หรือคณะวิศวกรรมศาสตร์ เราจึงถือเอาง่าย ๆ ว่า ศาสตร์นี้เป็นสาขาของวิทยาการคอมพิวเตอร์นั่นเอง


ปัญญาประดิษฐ์ (Artificial Intelligence : AI)
ความ เจริญก้าวหน้า ของคอมพิวเตอร์ เป็นไปใน ทุกด้าน ทั้งทางด้าน ฮาร์ดแวร์ และซอฟต์แวร์ การที่มี พัฒนาการ เจริญก้าวหน้า จึงทำให้ นักคอมพิวเตอร์ ตั้งความหวัง ที่จะทำให้ คอมพิวเตอร์ มีความฉลาด และช่วยทำงาน ให้มนุษย์ได้มากขึ้น โดยเฉพาะวิทยาการ ด้านปัญญา ประดิษฐ์ (Artificial Intelligence : AI) ซึ่งเชื่อกันว่า จะเป็นวิทยาการที่ จะช่วยให้มนุษย์ใช้ คอมพิวเตอร์ แก้ปัญหาต่างๆ ที่สำคัญ เช่นการให้ คอมพิวเตอร์ เข้าใจ ภาษามนุษย์ รู้จักการ ใช้เหตุผล การเรียนรู้ ตลอดจนการ สร้างหุ่นยนต์ปัญญาประดิษฐ์ มีความหมายถึง การสร้าง เครื่องจักร ให้สามารถ ทำงาน ได้เหมือนคน ที่ใช้ปัญญา หรืออาจ กล่าวได้ว่า เป็นการ ประดิษฐ์ปัญญา ให้คอมพิวเตอร์ เพื่อให้ คอมพิวเตอร์ สามารถจำลอง การทำงานต่างๆ เลียนแบบ พฤติกรรม ของคน โดยเน้นแนวคิด ตามแบบ สมองมนุษย์ ที่มีการวาง แผนการเรียนรู้ การให้เหตุผล การตัดสินใจ การแก้ปัญหา ตลอดจน การเลือกแนวทาง ดำเนินการใน ลักษณะคล้ายมนุษย์ความรู้ ทางด้าน ปัญญาประดิษฐ์ จึงรวมไปถึง การสร้างระบบ ที่ทำให้ คอมพิวเตอร์ สามารถ มองเห็น และจำแนกรูปภาพ หรือสิ่งต่างๆ ออกจากกัน ในด้าน การฟังเสียง ก็รับรู้ และแยกแยะเสียง และจดจำ คำพูด และเสียงต่างๆ ได้ การสัมผัส และรับรู้ข้อมูล ข่าวสาร จะต้องมี กระบวนการ เก็บความรอบรู้ การถ่ายทอด การแปลความ และการนำเอา ความรู้มา ใช้ประโยชน์หากให้ คอมพิวเตอร์ รับรู้ข่าวสาร และเหตุการณ์ ต่างๆ แล้ว ก็สามารถ นำเอา ความรู้ต่างๆ เหล่านั้น มาประมวลผล ได้ ก็จะ มีประโยชน์ได้มาก เช่น ถ้าให้ คอมพิวเตอร์ มีข้อมูล เกี่ยวกับคำศัพท์ มีความเข้าใจ ในเรื่องประโยค และความหมายแล้ว สามารถ ประมวลผล เข้าใจประโยค ที่รับเข้าไป การประมวลผล ภาษาในลักษณะ นี้จึงเรียกว่า การประมวลผล ภาษาธรรมชาติ โดยจุดมุ่งหมาย ที่จะทำให้ คอมพิวเตอร์ มีความสามารถ ในการใช้ภาษา เข้าใจภาษา และนำไปประยุกต์ งานด้านต่างๆ เช่น การตรวจสอบ ตัวสะกดใน โปรแกรมประมวลคำ ตรวจสอบการ ใช้ประโยคที่กำกวม ตรวจสอบ ไวยากรณ์ ที่อาจผิดพลาด และหากมี ความสามารถ ดีก็จะนำไปใช้ ในเรื่อง การแปลภาษาได้ปัญญาประดิษฐ์ จึงเป็นเรื่องที่ นักวิจัย ได้พยายาม ดำเนินการ และสร้างรากฐาน ไว้สำหรับอนาคต มีการคิดค้น หลักการ ทฤษฎี และวิธีการต่างๆ เพื่อทำให้ คอมพิวเตอร์ สามารถทำงาน อย่างมีเหตุผล มีการพัฒนา โครงสร้างฐาน ความรอบรู้ปัญญาประดิษฐ์ เป็นวิชาการ ที่มีหลักการต่างๆ มากมาย และมีการนำออกไป ใช้บ้างแล้ว เช่น การแทน ความรอบรู้ ด้วยโครงสร้าง ข้อมูล ลักษณะพิเศษ การคิดหาเหตุผล เพื่อนำข้อสรุป ไปใช้งาน การค้นหา เปรียบเทียบ รูปแบบ ตลอดจน กระบวนการเรียนรู้ ที่เป็นประโยชน์ อย่างมีขั้นตอน เพื่อให้ เครื่องคอมพิวเตอร์ สะสมความรู้ได้เอง
ปัญญาประดิษฐ์ ระบบผู้เชี่ยวชาญและระบบสารสนเทศทางภูมิศาสตร์ปัญญาประดิษฐ์ (Artificial Intelligence : AI) คือ ศาสตร์แขนงหนึ่งทางด้านวิทยาศาสตร์และเทคโนโลยีที่มีพื้นฐานมาจากวิชาวิทยา การคอมพิวเตอร์ ชีววิทยา จิตวิทยา ภาษาศาสตร์ คณิตศาสตร์ และวิศวกรรมศาสตร์ เป้าหมายคือ การพัฒนาระบบคอมพิวเตอร์ให้มีพฤติกรรมเลียนแบบมนุษย์ รวมทั้งเลียนแบบความเป็นอัจฉริยะของมนุษย์ลักษณะงานของปัญญาประดิษฐ์1. Cognitive Scienceงาน ด้านนี้เน้นงานวิจัยเพื่อศึกษาว่าสมองของมนุษย์ทำงานอย่างไร และมนุษย์คิดและเรียนรู้อย่างไร จึงมีพื้นฐานที่การประมวลผลสารสนเทศในรูปแบบของมนุษย์ประกอบด้วยระบบต่างๆ ระบบผู้เชี่ยวชาญ (Expert Systems)ระบบเครือข่ายนิวรอน (Neural Network)ระบบแบ๊บแน็ต (Papnet) ฟัสซี่โลจิก (Fuzzy Logic)เจนเนติกอัลกอริทึม (Genetic Algorithm)เอเยนต์ชาญฉลาด (Intelligent Agents) ระบบการเรียนรู้ (Learning Systems)2. Roboicsพื้นฐานของวิศวกรรมและสรีรศาสตร์ เป็นการพยายามสร้างหุ่นยนต็ไห้มีความฉลาดและถูกควบคุมด้วยคอมพิวเตอร์แต่ สามารถเครื่องไหวได้เหมือนกับมนุษย์3. Natural Interface งาน ด้านนี้ได้ชื่อว่าเป็นงานหลักที่สำคัญที่สุดของปัญญาประดิษฐ์ และพัฒนาบนพื้นฐานของภาษาศาสตร์ จิตวิทยา และวิทยาการคอมพิวเตอร์ประกอบด้วยงานด้านต่างๆระบบที่มีความสามารถในการเข้าใจภาษามนุษย์ (Natural Language)ระบบภาพเสมือนจริง (Virtual Reality)ระบบปัญญาประดิษฐ์แบบผสมผสาน (Hybrid AI Systems)ระบบผู้เชี่ยวชาญ (Expert Systems)เป็นระบบที่ช่วยในการแก้ปัญหาหรือช่วยในการตัดสินใจโดยใช้วิธีเดียวกับผู้เชี่ยวชาญที่เป็นมนุษย์องค์ประกอบของผู้เชี่ยวชาญ1. ฐานความรู้ (Knowledge Base) เป็นส่วนของความรู้ของผู้เชี่ยวชาญทั้งหมด ซึ่งจะเก็บไว้ในฐานข้อมูลของระบบ2. โปรแกรมของระบบผู้เชี่ยวชาญ (Expert System Software หรือ Software Resources) แบ่งออกได้ 2 ส่วน 1) ส่วนที่ใช้ในการประมวลผลความรู้จากฐานความรู้ 2) ส่วนที่ใช้ในการติดต่อสื่อสารกับผู้ใช้ระบบสารสนเทศภูมิศาสตร์ (Geographic Information Systems : GIS) คือกระบวนการทำงานเกี่ยวกับข้อมูลที่มีความสัมพันธ์ในเชิงพื้นที่ด้วย ระบบคอมพิวเตอร์ เช่น ที่อยู่ บ้านเลขที่ สัมพันธ์กับตำแหน่งในแผนที่ ตำแหน่ง เส้นรุ้ง เส้นแวง เป็นต้นองค์ประกอบของระบบสารสนเทศภูมิศาสตร์ แบ่งออกเป็น 5 ส่วน1. อุปกรณ์คอมพิวเตอร์ รวมไปถึงอุปกรณ์ต่อพ่วงต่างๆ เช่น เครื่องอ่านพิกัด เครื่องกวาดตรวจ พล็อตเตอร์ เครื่องพิมพ์ ฯลฯ2. โปรแกรม คือชุดคำสั่งสำเร็จรูป เช่น โปรแกรม Arc/Info, MapInfo ฯลฯ3. ข้อมูล คือข้อมูลต่างๆ ที่ใช้ในระบบ GIS4. บุคลากร คือผู้ปฏิบัติงานซึ่งเกี่ยวข้องกับระบบ GIS5. วิธีการหรือขั้นตอนการทำงาน


หน่วยการเรียนที่1 การเขียนโปรแกรมด้วยคอมพิวเตอร์


การเขียนโปรแกรมคอมพิวเตอร์ (อังกฤษ: Computer programming) หรือเรียกให้สั้นลงว่า การเขียนโปรแกรม (อังกฤษ: Programming) หรือ การเขียนโค้ด (Coding) เป็นขั้นตอนการเขียน ทดสอบ และดูแลซอร์สโค้ดของโปรแกรมคอมพิวเตอร์ ซึ่งซอร์สโค้ดนั้นจะเขียนด้วยภาษาโปรแกรม ขั้นตอนการเขียนโปรแกรมต้องการความรู้ในหลายด้านด้วยกัน เกี่ยวกับโปรแกรมที่ต้องการจะเขียน และอัลกอริทึมที่จะใช้ ซึ่งในวิศวกรรมซอฟต์แวร์นั้น การเขียนโปรแกรมถือเป็นเพียงขั้นหนึ่งในวงจรชีวิตของการพัฒนาซอฟแวร์
การเขียนโปรแกรมจะได้มาซึ่ง
ซอร์สโค้ดของโปรแกรมนั้นๆ โดยปกติแล้วจะอยู่ในรูปแบบของ plain text ซึ่งไม่สามารถนำไปใช้งานได้ จะต้องผ่านการคอมไพล์ตัวซอร์สโค้ดนั้นให้เป็นภาษาเครื่อง (Machine Language) เสียก่อนจึงจะได้เป็นโปรแกรมที่พร้อมใช้งาน
การเขียนโปรแกรมถือว่าเป็นการผสมผสานกันระหว่างศาสตร์ของ
ศิลปะ วิทยาศาสตร์ คณิตศาสตร์ และ วิศวกรรม เข้าด้วยกัน

1.ใช้งานคอมพิวเตอร์เบื้องต้นได้ เช่น การเรียกงานโปรแกรมต่างๆ และการจัดการแฟ้มข้อมูล
2.อธิบายองค์ประกอบที่สำคัญของคอมพิวเตอร์ทั้ง ซอฟต์แวร์ และ ฮาร์ดแวร์ได้
3. แทนค่าข้อมูลในคอมพิวเตอร์แบบ จำนวนเต็ม จำนวนจริง โดยการใช้ตัวแปรในภาษาซี
4. เขียนคำสั่งคอมพิวเตอร์ด้วยภาษาซีแบบค่าคงที่และนิพจน์ทางคณิตศาสตร์ที่ใช้ตัวแปรได้
5. เขียนส่วนของโปรแกรมภาษาซีเพื่อทำงานแบบทำวนซ้ำคำสั่งได้
6. เขียนโปรแกรมภาษาซีที่มีโปรแกรมย่อยโดยส่งค่าพารามิเตอร์ได้
7. กำหนดขอบเขตการใช้งานตัวแปรและโปรแกรมย่อยในภาษาซีได้
8. อธิบายโครงสร้างข้อมูลในภาษาซีแบบต่างๆ โดยการยกตัวอย่างประกอบได้
9. เขียนโปรแกรมจากผังงาน (Flowchart) ที่กำหนดให้ได้

แนะนำคอมพิวเตอร์และอินเตอร์เน็ตเบื้องต้น
การจัดองค์การของระบบคอมพิวเตอร์
- คอมพิวเตอร์คืออะไร
- การใช้งาน ประโยชน์ ของคอมพิวเตอร์
- การใช้ระบบปฏิบัติการเบื้องต้น

องค์ประกอบและการทำงานของ ฮาร์ดแวร์ (Hardware) และ ซอฟต์แวร์(Software)
- ส่วนประกอบและหน้าที่ของฮาร์ดแวร์
- ชนิดและการใช้งานซอฟต์แวร์
อินเตอร์เน็ตเบื้องต้น
- พื้นฐานการใช้งานอินเตอร์เน็ต
- บริการในระบบอินเตอร์เน็ต
ก่อนที่เราจะเขียนโปรแกรมคอมพิวเตอร์ภาษาใดภาษาหนึ่งเพื่อแก้ปัญหาทางคอมพิวเตอร์ เราควรศึกษาขั้นตอนวิธีการทางคอมพิวเตอร์ เพื่อให้เกิดความรู้ความเข้าใจที่ถูกต้องตามขั้นตอนวิธีดังนี้
1) การวิเคราะห์งาน (job analysis)
2) การเขียนผังงานโปรแกรม (program flowcharting)
3) การเขียนโปรแกรม (programming)
4) การทดสอบ และแก้ไขโปรแกรม (testing and editing program)
5) การจัดทำเอกสารประกอบ และการบำรุงรักษาโปรแกรม (documentation and maintenance program)
1.1.1 การวิเคราะห์งาน (job analysis) ในการวิเคราะห์งานเราจะต้องกำหนดจุดประสงค์ของการวิเคราะห์งาน และขั้นตอนวิธีการวิเคราะห์งานแต่ละอย่างให้ได้ ซึ่งงานแต่ละอย่างมีรายละเอียดดังนี้
1.1.1.1 จุดประสงค์ของการวิเคราะห์งานในการวิเคราะห์งานแต่ละอย่างมีจุดประสงค์ของการวิเคราะห์งานที่สำคัญดังนี้
1. เพื่อหาวัตถุประสงค์ของการเขียนโปรแกรม
2. เพื่อหารูปแบบผลลัพธ์ที่ต้องการ
3. เพื่อหาข้อมูลนำเข้าที่ต้องใส่เข้าไปในโปรแกรม
4. เพื่อหาตัวแปรที่จำเป็นต้องใช้ในโปรแกรม
5. เพื่อหาขั้นตอนวิธีการทำงานของโปรแกรม
1.1.1.2 ขั้นตอนวิธีการวิเคราะห์งานในการวิเคราะห์งานแต่ละอย่างมีขั้นตอนวิธีการวิเคราะห์งานที่สำคัญดังนี้
1) การหาวัตถุประสงค์ของการเขียนโปรแกรมผู้เขียนโปรแกรมจะต้องหาวัตถุประสงค์จากงานที่จะเขียนโปรแกรมว่า ต้องการเขียนโปรแกรมเพื่อแก้ปัญหาอะไรบ้างซึ่งจะทำให้เขียนโปรแกรมได้ตรงกับความต้องการหรือวัตถุประสงค์ของงานนั้น ๆ
2) การหารูปแบบผลลัพธ์ที่ต้องการเมื่อผู้เขียนโปรแกรมหาวัตถุประสงค์ของการเขียนโปรแกรมได้แล้ว ขั้นตอนต่อมาคือการกำหนดรูปแบบผลลัพธ์ที่ต้องการจากโปรแกรม ซึ่งรูปแบบผลลัพธ์อาจอยู่ในลักษณะของข้อความหรือตัวเลข หรือตาราง หรือแผนภูมิ หรืออาจใช้ผสมกันระหว่างตัวเลขกับข้อความ หรือข้อความกับตัวเลข และตารางก็ได้ ขึ้นอยู่กับผู้เขียนโปรแกรมเป็นผู้กำหนดเอง แต่โดยส่วนมากนิยมแสดงผลลัพธ์ของโปรแกรมให้อยู่ในรูปแบบที่เข้าใจง่ายมากกว่ารูปแบบที่ซับซ้อน
3) การหาข้อมูลนำเข้าที่ต้องใส่เข้าไปในโปรแกรมผู้เขียนโปรแกรมจะต้องหาข้อมูลนำเข้าจากผลลัพธ์ที่ได้จากโปรแกรม โดยคำนึงถึงขั้นตอนวิธีการคำนวณ และข้อมูลที่จำเป็นต้องใส่เข้าไปเพื่อให้ได้ผลลัพธ์ที่ต้องการ