User Tools

Site Tools


ปีการศึกษา_2557

204112 การเขียนโปรแกรมเชิงโครงสร้าง

Structured Programming

วิชาที่ต้องผ่านก่อน (prerequisites)

  • 204111

ข่าวประกาศ

Sec002: โจทย์สำหรับทำ Lab09 (เป็นกรณีพิเศษ) pdfกำหนดส่ง วันที่ 26 มีนาคม <fc #ff0000>(29 มีนาคม)</fc>

วัตถุประสงค์กระบวนวิชา

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

เวลาเรียน

Section 001:

  • Lec: Fr 9:30 - 11:30 (room CSB207)
  • Lab: Tu 9:30 - 11:30 (room CSB307)
  • Instructor: ผู้ช่วยศาสตราจารย์ ดร.วัชรี จำปามูล wjumpa@gmail.com
    • Office: CSB110
    • Office hours: TBA
  • Assignment Checklist: http://goo.gl/fjz7sC

Section 002:

  • Lec: Fr 9:30 - 11:30 (room CSB210)
  • Lab: Tu 9:30 - 11:30 (room CSB308)
  • Instructor: อาจารย์ ดร.รัศมีทิพย์ วิตา ratsameetip+204112@gmail.com
    • Office: CSB107
    • Office hours: TBA
  • Assignment Checklist: http://goo.gl/3Pgnbm

Section 003:

  • Lec: Fr 14:30 - 16:30 (room CSB207)
  • Lab: Tu 14:30 - 16:30 (room CSB308)
  • Instructor: อาจารย์ กิตติพิชญ์ คุปตะวาณิช kittipitch.cmu+204112@gmail.com
    • Office: CSB107
    • Office hours: TBA
  • Assignment Checklist: http://goo.gl/ZGvjZr

Facebook Group: http://www.facebook.com/groups/14S2.204112

วันสอบ

  • สอบข้อเขียนกลางภาค : วันศุกร์ที่ 6 มีนาคม 2558 เวลา 12:00 - 15:00 น.
  • สอบปฏิบัติกลางภาค : วันพุธที่ 11 มีนาคม 2558 เวลา 13:30 - 15:30 น.
  • สอบปฏิบัติปลายภาค : วันพุธที่ 29 เมษายน 2558 เวลา 13:30 - 16:30 น.
  • สอบข้อเขียนปลายภาค : วันอาทิตย์ที่ 10 พฤษภาคม 2558 เวลา 12:00 - 15:00 น.

หลักเกณฑ์การให้คะแนน

  • กลางภาค
    • สอบข้อเขียนกลางภาค 25%
    • สอบปฏิบัติการกลางภาค 5%
  • ปลายภาค
    • สอบข้อเขียนปลายภาค 30%
    • สอบปฏิบัติการปลายภาค 10%
  • สอบย่อย
    • สอบย่อยในคาบบรรยาย 5%
    • สอบย่อยในคาบปฏิบัติการ 5%
  • แบบฝึกหัดและการบ้าน (บรรยาย + ปฏิบัติการ) 10%
  • โครงงาน (รายงาน การนำเสนอ และประสิทธิภาพของโปรแกรมที่พัฒนา) 10%

การลอกการบ้าน แบบฝึกหัดหรืองานที่ได้รับมอบหมาย ถือเป็นการทุจริต

ข้อตกลงพิเศษของกระบวนวิชา

  • นักศึกษาทุกคนต้องมีเวลาเข้าเรียน ไม่น้อยกว่า 80 % จึงจะมีสิทธิ์เข้าสอบ
  • นักศึกษาต้องลงลายมือชื่อเข้าชั้นเรียน ภายในช่วงเวลาที่กำหนด คือ 9.30 - 9.50 น.สำหรับ ตอน 001 และตอน 002 และ 14.30-14.50 น. สำหรับตอน 003 เท่านั้น หากเลยเวลาที่กำหนด จะถือว่าขาดเรียน แต่อนุญาตให้เข้าเรียนได้

เนื้อหาวิชาและแผนการสอน

Schedule

< 100% 4% 40% 8% 8% 40% >
Week Lab Lec
01 ทดสอบวัดพื้นความรู้และทักษะเกี่ยวกับภาษาซี 6 ม.ค. 9 ม.ค.

1. ทบทวนการเขียนโปรแกรม pdf

  1. การแก้ปัญหา (เน้นการวิเคราะห์ปัญหา)
  2. การเขียนอัลกอริทึม (การออกแบบแนวทางการแก้ปัญหา)
  3. โครงสร้างควบคุมแบบเงื่อนไขและทำซ้ำ pdf
  4. ฟังก์ชันและการส่งผ่านค่าพารามิเตอร์

</WRAP>|

02

1. การพัฒนาโปรแกรมภาษาซี โดยใช้ gcc

  1. กระบวนการสร้างแอพพลิเคชันภาษาซี pdf
    (C compiling and Linking)
  2. การแปลงผังงานโปรแกรมเป็นชุดคำสั่งภาษาซีและคำสั่งในการรับ/ แสดงผลอย่างง่าย pdf

</WRAP>| 13 ม.ค. | 16 ม.ค. | ::: |

03

2. โครงสร้างควบคุมแบบมีเงื่อนไขและแบบทำซ้ำ </WRAP>| 20 ม.ค. | 23 ม.ค. | ::: |

04

3. ฟังก์ชันและการส่งผ่านพารามิเตอร์ pdf

  • gcc common errors and warnings pdf

</WRAP>| 27 ม.ค. | 30 ม.ค. |<WRAP> 2. หลักการออกแบบโปรแกรมที่ดี pdf

  1. สมบัติของโปรแกรมที่ดี
  2. หลักการออกแบบโปรแกรมแบบโครงสร้าง
  3. การออกแบบส่วนต่อประสานกับผู้ใช้

</WRAP>|

05

4. การเขียนโปรแกรมที่ดี + สอบปฏิบัติการย่อย ครั้งที่ 1 </WRAP>| 3 ก.พ. | 6 ก.พ. |<WRAP> 1. การดำเนินการระดับบิต pdf

3 . การทดสอบและการแก้จุดบกพร่อง pdf

  1. กลยุทธ์การทดสอบและการแก้จุดบกพร่อง
  2. การออกแบบกรณีทดสอบ
  3. เครื่องมือช่วยการทดสอบและแก้จุดบกพร่อง

</WRAP>|

06

5. เครื่องมือช่วยการทดสอบและการแก้จุดบกพร่อง </WRAP>| 10 ก.พ. | 13 ก.พ. |:::|

07

6. พอยน์เตอร์และการอ้างถึง </WRAP>| 17 ก.พ. | 20 ก.พ. |<WRAP> 4. โครงสร้างข้อมูล

  1. พอยน์เตอร์และการอ้างถึง (รวมถึงฟังก์ชันแบบ Called by Reference) pdf
  2. ตัวแปรชุด pdf

</WRAP>|

08

7. ตัวแปรชุด ฟังก์ชันและการส่งผ่านพารามิเตอร์ด้วยตัวแปรชุด </WRAP>| 24 ก.พ. | 27 ก.พ. |<WRAP> 4 . โครงสร้างข้อมูล - สายอักขระและการประมวลผล </WRAP>|

สอบข้อเขียนกลางภาค <fc #FF0000>วันศุกร์ที่ 6 มีนาคม เวลา 12:00 - 15:00 น.</fc>
สอบปฏิบัติกลางภาค <fc #FF0000>วันพุธที่ 11 มีนาคม เวลา 13.30 - 15.30 น.</fc>
09

8. สายอักขระและการประมวลผลสายอักขระ
Command Line Argument pdf </WRAP>| 10 มี.ค. | 13 มี.ค. |<WRAP> 5. การจัดดำเนินการแฟ้มข้อมูล pdf

  1. การจัดระเบียบแฟ้ม
  2. แฟ้มแบบข้อความและแบบไบนารี

</WRAP>|

10

9. การจัดดำเนินการแฟ้มข้อมูล (Array of structs) </WRAP>| 17 มี.ค. | 20 มี.ค. |<WRAP> 4. โครงสร้างข้อมูล - เรคอร์ดและ ตัวแปรชุดของเรคอร์ด </WRAP>|

11

10. เรคอร์ด (struct) และ ตัวแปรชุดของเรคอร์ด pdf1 pdf2 </WRAP>| 24 มี.ค. | 27 มี.ค. |<WRAP> 4. โครงสร้างข้อมูล - โครงสร้างแบบลิสค์ pdf </WRAP>|

12

11. โครงสร้างแบบลิสต์ pdf + สอบปฏิบัติการย่อย ครั้งที่ 2 </WRAP>| 31 มี.ค. | 3 เม.ย. |<WRAP> 6. ฟังก์ชันแบบเวียนบังเกิด 2x2 2x2

  1. แนวคิดของการเวียนบังเกิด
  2. การโปรแกรมแบบเวียนบังเกิด

</WRAP>|

13

12. การโปรแกรมแบบเรียกซ้ำ </WRAP>| 7 เม.ย. | 10 เม.ย. | ::: |

14

13. การดำเนินการแฟ้มข้อมูลด้วยการเข้าถึงแบบสุ่ม </WRAP>| 21 เม.ย. | 24 เม.ย. |<WRAP> 5. การจัดดำเนินการแฟ้มข้อมูล - 3. การเข้าถึงแบบสุ่ม pdf
7. Enumeration Type pdf </WRAP>|

15 ทบทวนปฏิบัติการ 28 เม.ย. 1 พ.ค. ทบทวน
สอบปฏิบัติปลายภาค <fc #FF0000>วันพุธที่ 29 เมษายน เวลา 13.30 - 16.30 น.</fc>
สอบข้อเขียนปลายภาค <fc #FF0000>วันอาทิตย์ที่ 10 พฤษภาคม เวลา 12:00 - 15:00 น.</fc>

การส่งงานผ่านเว็บไซต์ (เฉพาะการบ้านที่กําหนด)

http://hw.cs.science.cmu.ac.th/CS_HW/p204112.html

หรือที่เว็บไซต์ของภาควิชา http://www.cs.science.cmu.ac.th→คลิกหัวข้อเว็บเพจส่งการบ้านโดยให้คลิก Link เพื่อ Login ตามรหัสวิชา และตอนเรียน (Section) ที่ลงทะเบียนเรียน จะมีการแจก User name และรหัสผ่าน ในชั่วโมงปฏิบัติการ ให้นักศึกษาจดบันทึก User name และรหัสผ่านให้ดี อย่าทําหาย

หากส่งงานช้ากว่ากำหนด จะคิดคะแนน 80% จากคะแนนเต็ม และไม่อนุญาตให้ส่งงานช้าเกิน 3 วัน
งานที่ตั้งชื่อไฟล์ไม่ตรงกับที่กำหนดในใบงาน จะไม่ได้รับการตรวจ

  • ไฟล์งานทุกไฟล์ที่ส่ง online จะต้องมีการแทรก comment ที่บรรทัดบนสุด ในรูปแบบดังนี้
/* ชื่อ นามสกุล
 * 5XXXXXXXX
 * Lab (หรือ HW) YY
 * Problem Z
 * 204112 Sec 00A */
  • งานที่ส่งเป็นกระดาษ หรือ MS Word Documents ให้เขียนที่หัวกระดาษด้านขวาดังนี้
< 100% >
ชื่อ นามสกุล ลำดับที่ ##
5XXXXXXXX
Lab (หรือ Lec) YY
Problem Z
204112 Sec 00A

lab08_multidimarray.pdf

กำหนดส่งงาน (Online)

* ไม่รับงานส่งสายหลังจากวันที่ที่ระบุในวงเล็บ (เกิน 3 วันจากกำหนดส่ง)

<100%>
Assignment Assignment Sheet File Naming Format Due Date Globbing
(สำหรับ TA)
Lab01_1 Lab01 Lab01_1_5XXXXXXXX.c 14 Jan
<fc #ff0000>(17 Jan)</fc>
Lab01_1_5????????.c
Lab01_2 Lab01_2_5XXXXXXXX.c Lab01_2_5????????.c
R01 R01_5XXXXXXXX.docx R01_5????????.doc*
HW01_1 HW01 HW01_1_5XXXXXXXX.c @#FFFFCC:19 Jan
<fc #ff0000>(22 Jan)</fc>
HW01_1_5????????.c
HW01_2 HW01_2_5XXXXXXXX.c HW01_2_5????????.c
HW01_3 HW01_3_5XXXXXXXX.c HW01_3_5????????.c
Lab02_1 Lab02 Lab02_1_5XXXXXXXX.c @#FFE0C1:22 Jan
<fc #ff0000>(25 Jan)</fc>
Lab02_1_5????????.c
Lab02_2 Lab02_2_5XXXXXXXX.c Lab02_2_5????????.c
Lab02_3 Lab02_3_5XXXXXXXX.c Lab02_3_5????????.c
HW02_1 HW02 HW02_1_5XXXXXXXX.c @#FFFFCC:26 Jan
<fc #ff0000>(29 Jan)</fc>
HW02_1_5????????.c
HW02_2 HW02_2_5XXXXXXXX.c HW02_2_5????????.c
HW02_3 HW02_3_5XXXXXXXX.c HW02_3_5????????.c
Lab03_1 Lab03 Lab03_1_5XXXXXXXX.c @#FFE0C1:29 Jan
<fc #ff0000>(1 Feb)</fc>
Lab03_1_5????????.c
Lab03_2 Lab03_2_5XXXXXXXX.c Lab03_2_5????????.c
HW03_1 HW03 HW03_1_5XXXXXXXX.c @#FFFFCC:2 Feb
<fc #ff0000>(5 Feb)</fc>
HW03_1_5????????.c
HW03_2 HW03_2_5XXXXXXXX.c HW03_2_5????????.c
HW03_3 HW03_3_5XXXXXXXX.c HW03_3_5????????.c
Lab04_1 Lab04 Lab04_1_5XXXXXXXX.c @#FFE0C1:5 Feb
<fc #ff0000>(8 Feb)</fc>
Lab04_1_5????????.c
Lab04_2 Lab04_2_5XXXXXXXX.c Lab04_2_5????????.c
Lab04_3 Lab04_3_5XXXXXXXX.c Lab04_3_5????????.c
HW04_1 HW04 HW04_1_5XXXXXXXX.c @#FFF0F5:10 Feb
<fc #ff0000>(13 Feb)</fc>
HW04_1_5????????.c
HW04_2 HW04_2_5XXXXXXXX.c HW04_2_5????????.c
HW04_3 HW04_3_5XXXXXXXX.c HW04_3_5????????.c
Lab05_1 Lab05 Lab05_4_5XXXXXXXX.c @#FFE0C1:12 Feb
<fc #ff0000>(15 Feb)</fc>
Lab05_4_5????????.c
HW05_1 HW05 HW05_1_5XXXXXXXX.c @#FFF0F5:17 Feb
<fc #ff0000>(20 Feb)</fc>
HW05_1_5????????.c
HW05_2 HW05_2_5XXXXXXXX.c HW05_2_5????????.c
HW05_3 HW05_3_5XXXXXXXX.c HW05_3_5????????.c
Lab06_1 Lab06 Lab06_1_5XXXXXXXX.c @#FFE0C1:19 Feb
<fc #ff0000>(22 Feb)</fc>
Lab06_1_5????????.c
Lab06_2 Lab06_2_5XXXXXXXX.c Lab06_2_5????????.c
HW06_1 HW06 HW06_1_5XXXXXXXX.c @#FFFFCC:23 Feb
<fc #ff0000>(26 Feb)</fc>
HW06_1_5????????.c
HW06_2 HW06_2_5XXXXXXXX.c HW06_2_5????????.c
HW06_3 HW06_3_5XXXXXXXX.c HW06_3_5????????.c
HW06_EX1 HW06_EX1_5XXXXXXXX.c HW06_EX1_5????????.c
Lab07_3 Lab07 Lab07_3_5XXXXXXXX.c @#FFE0C1:12 Mar
<fc #ff0000>(15 Mar)</fc>
Lab07_3_5????????.c
Lab07_4 Lab07_4_5XXXXXXXX.c Lab07_4_5????????.c
HW07_1 HW07 HW07_1_5XXXXXXXX.c @#FFFFCC:16 Mar
<fc #ff0000>(19 Mar)</fc>
HW07_1_5????????.c
HW07_2 HW07_2_5XXXXXXXX.c HW07_2_5????????.c
Lab08_2 Lab08 Lab08_2_5XXXXXXXX.c @#FFE0C1:19 Mar
<fc #ff0000>(22 Mar)</fc>
Lab08_2_5????????.c
HW08_1 HW08 HW08_1_5XXXXXXXX.c @#FFFFCC:23 Mar
<fc #ff0000>(26 Mar)</fc>
HW08_1_5????????.c
HW08_2 HW08_2_5XXXXXXXX.c HW08_2_5????????.c
HW09_1 HW09 HW09_1_5XXXXXXXX.c @#D6EDBD:1 Apr
<fc #ff0000>(4 Apr)</fc>
HW09_1_5????????.c
HW09_2 HW09_2_5XXXXXXXX.c HW09_2_5????????.c
HW10_1 HW10 HW10_1_5XXXXXXXX.c @#FFFFCC:6 Apr
<fc #ff0000>(9 Apr)</fc>
HW10_1_5????????.c
HW10_2 HW10_2_5XXXXXXXX.c HW10_2_5????????.c
HW11_1 HW11 HW11_1_5XXXXXXXX.c @#E9EEFB:24 Apr
<fc #ff0000>(27 Apr)</fc>
HW11_1_5????????.c
HW11_2 HW11_2_5XXXXXXXX.c HW11_2_5????????.c
HW11_EX HW11_EX_5XXXXXXXX.c HW11_EX_5????????.c
Lab12_1 Lab12 Lab12_1_5XXXXXXXX.c @#FFFFCC:27 Apr
<fc #ff0000>(30 Apr)</fc>
Lab12_1_5????????.c
Lab12_1 Lab12_2_5XXXXXXXX.c Lab12_2_5????????.c

Development Environment

Software หลักที่ใช้หลักที่ใช้ในภาคเรียนนี้ คือ gcc compiler และ text editor ตามที่นักศึกษาเลือก

Software อื่นๆ

หนังสือ/วารสารประกอบการเรียน

[1] Alfred V. Aho and Jeffrey D. Ullman. Foundations of Computer Science : C edition, W.H. Freeman & Company, New York, 1995.
[2] Harold Abelson, Gerald J. Sussman and Julie Sussman. Structure and Interpretation of Computer Programs, 2nd edition, Mc-Graw Hill Co., 1998.
[3] Robert W. Sebesta. Concepts of Programming Languages, 6th edition. Addison Wesley, 2003

เอกสารเพิ่มเติม

[1] Mathematics for Computer Scientists by Janacek and Close
[2] The C Programming Language (ANSI C Version) 2nd Edition by Ritchie and Kernighan
[3] A First Book of ANSI C, 4th Edition by Gary J. Bronson
[4] Computer Systems: A Programmer's Perspective 2nd Edition by Bryan and O'Hallaron
[5] เอกสารประกอบปีการศึกษา 2555 โดย อาจารย์ ดร.อารีรัตน์ ตรงรัศมีทอง
[6] เอกสารเพิ่มเติม โดย อาจารย์ ดร. เมทินี เขียวกันยะ
[7] เอกสารเพิ่มเติม โดย อาจารย์ กิตติพิชญ์ คุปตะวาณิช

ภาคการศึกษาก่อน

ปีการศึกษา_2557.txt · Last modified: 2016/01/02 18:46 (external edit)