welcome to การพัฒนาโปรแกรม!! เนื้อหาที่พร้อมจะไขข้อข้องใจของพวกคุณทุกคน!!

วันอังคารที่ 2 ธันวาคม พ.ศ. 2557

การพัฒนาโปรแกรม

ขั้นตอนการพัฒนาโปรแกรม 

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

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

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

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

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


        ภาษาโปรแกรมคอมพิวเตอร์

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

1.ภาษาเชิงกระบวนความ(procedural languages)
            โปรแกรมคอมพิวเตอร์ที่เขียนด้วยภาษาเชิงกระบวนความมีลักษณะการทำงานตามลำดับของคำสั่ง จากคำสั่งแรกจนถึงคำสั่งสุดท้าย และบางคำสั่งอาจจะถูกทำซ้ำ หรือบางคำสั่งอาจจะไม่ถูกกระทำเลยขึ้นอยู่กับเงื่อนไขในโปรแกรม ภาษาในกลุ่มนี้เหมาะสำหรับการเริ่มต้นทำความเข้าใจกับการเขียนโปรแกรมคอมพิวเตอร์ นอกจากนี้ในภาษาโปรแกรมประเภทอื่นก็จะยังมีรูปแบบการทำงานเชิงกระบวนความแฝงอยู่ภายในด้วยเสมอ การใช้งานภาษาในกลุ่มนี้ เช่น งานคำนวณทางวิทยาศาสตร์อาจเลือกใช้ภาษาฟอร์แทรน(FORTRAN) งานประมวลผลข้อมูลทางธุรกิจการเงินหรือธนาคารอาจเลือกใช้ภาษาโคบอล (COBOL)หรือภาษาอาร์พีจี (RPG) การเขียนโปรแกรมควบคุมการทำงานของระบบคอมพิวเตอร์มักเลือกใช้ภาษาซีเนื่องจากภาษาเครื่องที่ได้จะทำงานได้รวดเร็ว หรือการเรียนการสอนการโปรแกรมเชิงกระบวนความอาจเลือกใช้ภาษาปาสคาล (Pascal) หรือภาษาซี เป็นต้น


รูปที่ 7.2 โปรแกรมภาษาโคบอล 

2.ภาษาเชิงวัตถุ(Object-Oriented Languages)
            ภาษาเชิงวัตถุจะอำนวยความสะดวกให้กับผู้เขียนโปรแกรมในการพัฒนาโปรแกรมที่ใหญ่และซับซ้อนได้เป็นอย่างดี อีกทั้งยังสามารถใช้เขียนโปรแกรมในลักษณะเดียวกับภาษาเชิงกระบวนความได้เช่นกัน ภาษาในกลุมนี้ เช่น ภาษาจาวา (Java) ภาษาซีชาร์ป (C#) และภาษาซีพลัสพลัส (C++)


รูปที่ 7.5 แสดงตัวอย่างโปรแกรมภาษาซีพลัสพลัส


3.ภาษาอื่นๆ
1) โฟร์ทจีแอล (fourth-generation languages: 4GLs) เป็นกลุ่มของภาษาที่แตกต่างจากภาษาเชิงกระบวนความ ที่เน้นให้ผู้ใช้สามารถเข้าถึงข้อมูลในฐานข้อมูลได้โดยง่าย ภาษาจะมีความคล้ายคลึงกับภาษาอังกฤษที่ใช้กันอยู่ ตัวอย่างของภาษา 4GL เช่น ภาษาเอสคิวแอล (SQL)
2) เอชทีเอ็มแอล (Hypertext Markup Language: HTML )เป็นภาษาที่ใช้จัดรูปแบบการแสดงผลของข้อความและรูปภาพ รวมถึงสื่อประสมบนหน้าเว็บ ดังนั้นเอชทีเอ็มแอลจึงไม่ได้ถูกจัดเป็นภาษาที่ใช้ในการเขียนโปรแกรมอย่างแท้จริง แต่เป็นการกำหนดวิธีการในการแสดงผล เอชทีเอ็มแอลจะใช้แท็ก (tags) เป็นตัวกำหนดว่าส่วนใดในเอกสารจะให้แสดงผลอย่างไร 






การโปรแกรมด้วยภาษาซี
โครงสร้างพื้นฐานของโปรแกรมภาษาซี  จะต้องประกอบด้วยโปรแกรมย่อย หรือเรียกว่า ฟังก์ชัน (function)อย่างน้อย 1 ฟังก์ชัน  คือ                
ฟังก์ชันmain ( ) ซึ่งมีรูปแบบดังนี้
 1    int  main ( ) {                                            ส่วนหัวของฟังก์ชัน
  2    การประกาศตัวแปรท้องถิ่น                    ส่วนการประกาศตัวแปร
  3      คำสั่งต่าง ๆ;                                          ส่วนคำสั่ง
   4     }

โครงสร้างพื้นฐานของโปรแกรมภาษาซี
ฟังก์ชัน main ( )ประกอบด้วย 3 ส่วนหลัก คือ
1)ส่วนหัวของฟังก์ชัน ประกอบด้วย ชนิดข้อมูล  ชื่อฟังก์ชัน main ตามด้วยเครื่องหมาย  ( และเครื่องหมาย  ) ตามลำดับ  สำหรับชนิดข้อมูล  เป็นการระบุว่าฟังก์ชันนี้จะส่งค่ากลับไปให้กับฟังก์ชันผู้เรียกเป็นข้อมูลชนิดใด  โดยทั่วไปแล้วสำหรับฟังก์ชัน  main()  จะส่งค่ากลับเป็นชนิดข้อมูลจำนวนเต็ม หรือ int
2)    ส่วนการประกาศตัวแปร ใช้สำหรับประกาศตัวแปรชนิดต่างๆ เพื่อเก็บข้อมูลระหว่างการประมวลผล
3)    ส่วนคำสั่ง  ประกอบด้วยคำสั่งที่เกี่ยวข้องกับการรับเข้าและการแสดงข้อมูล คำสั่งประมวลผลอื่นๆ  รวมถึงการเรียกใช้ฟังก์ชันอื่นได้ด้วย



องค์ประกอบของภาษาซี






ตัวอย่างโปรแกรมภาษาซี





การประกาศรวมแฟ้มส่วนหรือ ( header files )
1 #include <stdio.h>
1 #include <stdiob.h>
                  การประกาศรวมแฟ้มส่วนหัวดังแสดงในบรรทัดที่ 1 และ 2 เป็นการรวมเอาฟังก์ชันมาตรฐานของภาษาซีเข้ามาร่วมใช้งานกับโปรแกรมที่เขียนขึ้น ทำให้นักเขียนโปรแกรมสามารถเรียกใช้ฟังก์ชันมาตรฐานที่ภาษาซีเตรียมไว้ให้ได้ เช่น ฟังก์ชัน printf( ) และ scanf( ) เป็นต้น

การประกาศตัวแปร ( variable declaration )
6  int target ;
7  int number ;
8. int no_of_guesses = 1 ;
             ในบรรทัดที่ 6 ถึง 8 เป็นการประกาศตัวแปร ซึ่งเป็นข้อกำหนดของภาษาซีที่ต้องมีการประกาศตัวแปรไว้ที่ตอนต้นของฟังก์ชัน ก่อนที่จะสามารถใช้งานตัวแปรเหล่านั้นได้ ในที่นี้มีการประกาศตัวแปรtarget, number และ no_of_guesses เป็นชนิดจำนวนเต็ม ( int ) สังเกตว่ารูปแบบของการประกาศตัวแปร คือ data_type identification_name ซึ่ง data_type เป็นชนิดของข้อมูล และ identification_name เป็นชื่อตัวแปรที่กำหนดขึ้นให้มีชนิดตามที่ระบุนอกจากนี้ยังสามารถกำหนดค่าเริ่มต้นให้กับตัวแปรที่เพิ่งจะประกาศขึ้นได้เลย ดังเช่นที่กำหนดค่า 1ให้กับตัวแปร no_of_guesses ในบรรทัดที่ 8

การรับข้อมูลเข้า
10  scanf (“%”, &target) ;
12  scanf (“%”, &number) ;
13  scanf (“%”, &number) ;
                ในบรรทัดที่ 10.12 และ 20 เป็นการเรียกฟังก์ชัน scanf ( ) ในการรับข้อมูลเข้า โดยต้องมีการระบุพารามิเตอร์ คือ ตัวแรกเป็นสายอักขระของการกำหนดรูปแบบของข้อมูลเข้าที่ต้องการรับ ในที่นี้คือ”%d” หมายถึงว่าต้องการรับข้อมูลเข้าที่อยู่ในรูปแบบจำนวนเต็ม และตัวที่สองเป็นตำแหน่งในหน่วยความจำของตัวแปรที่ต้องการใช้เก็บค่าที่รับเข้า สังเกตุว่าภาษาซีใช้เครื่องหมาย & นำหน้าชื่อตัวแปร เป็นการอ้างถึงตำแหน่งในหน่วยความจำของตัวแปรนั้น

การพิมพ์ผลลัพธ์
11 printf (“Enter the number you guess “) ;
16 printf (“Too high\n”) ;
17 printf (“Too low\n”) ;
19 printf (“Enter the number you guess “) ;
              ในบรรทัดที่ 11. 16. 18 และ 19 เป็นการเรียกใช้ฟังก์ชัน printf ( ) เพื่อพิมพ์ข้อความออกทางจอภาพซึ่งเราสามารถกำหนดข้อความอยู่ภายในเครื่องหมายอัญประกาศให้เป็นพารามิเตอร์ของฟังก์ชัน printf ( ) ได้เลย
23 printf (“Correct – You try %d time . \n” , no_of_guesses ) ;
สำหรับในบรรทัดที่ 23 จะมีการพิมพ์ค่าของตัวแปรชนิดจำนวนเต็ม no_of_guesses ด้วย โดยจะต้องระบุรูปแบบข้อมูลของตัวแปลที่ต้องการให้พิมพ์ภายในข้อความที่เป็นพารามิเตอร์ตัวแรกด้วย ในที่นี้ตัวแปร no_of_guesses เป็นชนิด int ซึ่งจะใช้รูปแบบกำหนดการพิมพ์คือ “%d” ในลักษณะเดียวกันกับฟังก์ชัน scanf ( ) นั่นเอง

 คำสั่งควบคุมการทำงานแบบวนซ้ำ
          คำสั่ง while เป็นคำสั่งเพื่อควบคุมว่าชุดคำสั่งภายใต้คำสั่ง while ( คือ ตั้งแต่บรรทัดที่ 14 ถึง 22)จะถูกวนทำซ้ำอีกหรือไม่ โดยเมื่อโปรแกรมทำงานมาถึงบรรทัดที่ 13 จะตรวจสอบก่อนว่าเงื่อนไขเป็นจริงหรือไม่ ในที่นี้คือตรวจสอบว่าค่าของตัวแปร number ไม่เท่ากันกับค่าของตัวแปร target หรือไม่ถ้าเป็นจริง ก็จะไปทำงานตามคำสั่งภายในบรรทัดดังกล่าวหนึ่งรอบ ก่อนที่จะย้อนกลับไปตรวจสอบเงื่อนไขอีกครั้ง ถ้าเงื่อนไขเป็นเท็จ ก็จะไปทำงานในบรรทัดที่ 23 ต่อไป

คำสั่งกำหนดค่าแปรให้กับตัวแปร
21 no_of_guesses = no_of_guesses  + 1 ;
   ในบรรทัดที่ 21 เป็นการกำหนดค่าใหม่ให้กับตัวแปร no_of_guesses โดยใช้เครื่องหมายกำหนดค่า ( = ) ซึ่งเป็นการกำหนดให้ตัวแปรที่อยู่ทางซ้ายของเครื่องหมายกำหนดค่า มีค่าเท่ากับค่าของนิพจน์ทางขวาของเครื่องหมายกำหนดค่า ซึ่งในที่นี้เป็นการเพิ่มค่าของตัวแปร no_of_guesses ขึ้นอีก 1 นั่นเอง

ภาษาซีใช้นิพจน์ทางคณิตศาสตร์
เพื่อคำนวนและเปรียบเทียบ นิพจน์ประกอบด้วยตัวถูกดำเนินการ( operand ) และตัวดำเนินการ ( operator ) ที่สามารถถุกลดรูปหรือถูกประเมินให้เป็นค่าทางคณิตศาสตร์เพียงค่าเดียวได้




คำสั่งควบคุมการทำงานแบบมีทางเลือก
15 if (number > target)
16   printf (“Too high\n”) ;
17 else
18   printf (“Too low\n”) ;
             คำสั่ง if-else ในบรรทัดที่ 15 ถึง 18 เป็นการเลือกว่าจะทำงานตามคำสั่งภายใต้ if หรือภายใต้ elseแล้วแต่เงื่อนไขที่อยู่หลัง if ในบรรทัดที่ 15 โดยถ้าเงื่อนไขเป็นจริง จะทำงานภายใต้ if นั่นคือคำสั่งในบรรทัดที่ 16 เท่านั้น แล้วจะข้ามไปทำงานในบรรทัดที่ 19 เลย แต่ถ้าเงื่อนไขในบรรทัดที่ 15 เป็นเท็จก็จะข้ามคำสั่งภายใต้ if ไปทำงานที่คำสั่งภายใต้ else ในบรรทัดที่ 18 เท่านั้น ก่อนที่จะทำงานในบรรทัดที่ 19 ต่อไป

คำสั่ง return
25 return 0;
ในบรรทัดที่ 25 คำสั่ง return เป็นการจบการทำงานของฟังก์ชัน แล้วส่งค่าที่ระบุ ( คือค่า 0 ) กลับไปให้กับฟังก์ชันที่เรียกมา สำหรับโปรแกรมภาษาซีที่ถูกเรียกให้ทำงานจากระบบปฏิบัติการนั้น เนื่องจากระบบปฏิบัติการเป็นผู้เรียกให้ฟังก์ชันmain ( ) ในโปรแกรมทำงาน ดังนั้นเมื่อโปรแกรมทำงานเสร็จสิ้นลง ฟังก์ชัน main ( ) จึงส่งค่า 0 ไปให้กับระบบปฏิบัติการ

ผลจากการรันโปรแกรมภาษาซี



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

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

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

แนวทางการพัฒนาโครงงาน
เป็นกระบวนการในการทำโครงงานที่ต้องดำเนินการอย่างเป็นลำดับขั้นตอน เพื่อให้เกิดประโยชน์มากที่สุดต่อการพัฒนาโครงงานคอมพิวเตอร์ โดยมีขั้นตอนดังต่อไปนี้

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