Table of Contents

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

Structured Programming

2015 S2

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

ข่าวประกาศ

TODO

  1. ให้นักศึกษา Download และ install Cygwin Pack
  2. ให้นักศึกษาลงทะเบียน Piazza ของรายวิชา
  3. ให้นักศึกษาสมัคร Git Hub: Student Developer Pack โดยให้ username เป็น firstname_last เหมือน CMU mail

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

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

เวลาเรียน

Section 001:

Section 002:

Section 003:

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

วันสอบ

หมายเหตุ เสนอหัวข้อโครงงาน วันพุธที่ 16 มีนาคม เวลา 10:30 น.

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

  • คะแนนเข้าชั้นเรียน, ปฏิบัติการ, และการบ้าน
  • 15%
  • สอบย่อย (Quiz)
  • 05%
  • สอบปฏิบัติการ
  • 15%
  • สอบกลางภาค
  • 25%
  • สอบปลายภาค
  • 30%
  • โครงงาน
  • 10%

    การลอกการบ้าน แบบฝึกหัดหรืองานที่ได้รับมอบหมาย ถือเป็นการทุจริต โดยจะไม่ได้รับการพิจารณาให้คะแนนในงานนั้นๆ ทั้งผู้ลอก และผู้ให้ลอก

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

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

    Schedule

    < 100% 4% 40% 8% 8% 40% >
    Week Lab Lec
    01

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

    </WRAP> | 5 ม.ค. | 8 ม.ค. |<WRAP> หลักการออกแบบโปรแกรมที่ดี

    </WRAP>|

    02

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

    </WRAP>| 12 ม.ค. | 15 ม.ค. |<WRAP> ภาพรวมการเขียนโปรแกรมภาษาซี

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

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

    1. กลยุทธ์การทดสอบและการแก้จุดบกพร่อง
    2. การออกแบบกรณีทดสอบ
    3. Blackbox Testing
    4. Whitebox Testing

    </WRAP>|

    03

    gcc common errors and warnings

    </WRAP>| 19 ม.ค. | 22 ม.ค. | ::: |

    04

    การทดสอบและการแก้จุดบกพร่อง </WRAP>| 26 ม.ค. | 29 ม.ค. |<WRAP> โครงสร้างข้อมูล

    </WRAP>|

    05

    โครงสร้างข้อมูล

    </WRAP>| 2 ก.พ. | 5 ก.พ. |<WRAP> โครงสร้างข้อมูล

    </WRAP>|

    06

    โครงสร้างข้อมูล

    </WRAP>| 9 ก.พ. | 12 ก.พ. |<WRAP> โครงสร้างข้อมูล

    </WRAP>|

    07

    โครงสร้างข้อมูล

    </WRAP>| 16 ก.พ. | 19 ก.พ. |<WRAP> โครงสร้างข้อมูล

    </WRAP>|

    08

    โครงสร้างข้อมูล

    </WRAP>| 23 ก.พ. | 26 ม.ค. |<WRAP> Algorithm and Programming Practice

    Exam Review </WRAP>|

    สอบข้อเขียนกลางภาค <fc #FF0000>วันพฤหัสบดีที่ 3 มีนาคม เวลา 12:00 - 15:00 น.</fc>
    09

    การจัดดำเนินการแฟ้มข้อมูล

    </WRAP>| 8 มี.ค. | 11 มี.ค. |<WRAP> ฟังก์ชันแบบเวียนบังเกิด

    </WRAP>|

    10

    ฟังก์ชันแบบเวียนบังเกิด

    </WRAP>| 15 มี.ค. | 18 มี.ค. |<WRAP> การจัดดำเนินการแฟ้มข้อมูล

    โครงสร้างข้อมูล

    </WRAP>|

    11

    โครงสร้างข้อมูล

    </WRAP>| 22 มี.ค. | 25 มี.ค. |<WRAP> โครงสร้างข้อมูล - เรคอร์ดและ ตัวแปรชุดของเรคอร์ด </WRAP>|

    12

    โครงสร้างข้อมูล - เรคอร์ดและ ตัวแปรชุดของเรคอร์ด </WRAP>| 29 มี.ค. | 1 เม.ย. |<WRAP> โครงสร้างข้อมูล - โครงสร้างแบบลิสต์ </WRAP>|

    13

    โครงสร้างข้อมูล - โครงสร้างแบบลิสต์ </WRAP>| 5 เม.ย. | 8 เม.ย. |<WRAP> โครงสร้างข้อมูล - โครงสร้างแบบลิสต์ และการเวียนเกิด </WRAP>|

    14

    โครงสร้างข้อมูล - โครงสร้างแบบลิสต์ และการเวียนเกิด </WRAP>| 19 เม.ย. | 22 เม.ย. |<WRAP> การดำเนินการแฟ้มข้อมูลด้วยการเข้าถึงแบบสุ่ม </WRAP>|

    15

    Algorithm and Programming Practice </WRAP>| 26 เม.ย. | 29 เม.ย. |<WRAP> Algorithm and Programming Practice

    Exam Review </WRAP>|

    สอบข้อเขียนปลายภาค <fc #FF0000>วันอาทิตย์ที่ 8 พฤษภาคม เวลา 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 วัน
    งานที่ตั้งชื่อไฟล์ไม่ตรงกับที่กำหนดในใบงาน จะไม่ได้รับการตรวจ

    /* ชื่อ นามสกุล
     * 5XXXXXXXX
     * Lab (หรือ HW) YY
     * Problem Z
     * 204112 Sec 00A */
    < 100% >
    ชื่อ นามสกุล ลำดับที่ ##
    5XXXXXXXX
    Lab (หรือ Lec) YY
    Problem Z
    204112 Sec 00A

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

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

    <100%>
    Assignment Assignment Sheet File Naming Format Due Date Globbing
    (สำหรับ TA)
    Lab01_1 Lab01 Lab01_1_5XXXXXXXX.c TBA
    <fc #ff0000>(TBA)</fc>
    Lab01_1_5????????.c
    Lab01_2 Lab01_2_5XXXXXXXX.c Lab01_2_5????????.c
    HW01_1 HW01 HW01_1_5XXXXXXXX.c @#FFFFCC:TBA
    <fc #ff0000>(TBA)</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

    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] เอกสารเพิ่มเติม โดย อาจารย์ กิตติพิชญ์ คุปตะวาณิช

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