User Tools

Site Tools


start

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

Structured Programming

2015 S2

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

  • 204111

ข่าวประกาศ

  • ผลงานของนักศึกษา poster
  • [May 07] สัดส่วนหัวข้อที่ออกสอบ
  • [May 03] หัวข้อที่ออกสอบนะครับ อัตราส่วนคะแนนเป็นไปตามการบ้านและชั่วโมงสอน ลักษณะข้อสอบคล้ายที่ผ่านมา มี choice, จับคู่, short answer, เติมบางส่วนของ code, เขียนเองทั้งหมด, ไล่ code
  • [Apr 06] Lab12's grader is online at http://bit.ly/1RDKu8M (permanent move)
  • [Apr 02] Week 11's grader is online
  • [Mar 26] Week 10's homework is online
  • [Mar 24] ตรวจสอบคะแนนสอบกลางภาคได้ที่อีเมล @cmu

  • [Mar 21] ทั้ง 3 Sec ให้ทำ ใบงาน Recursion แล้วมาตรวจคำตอบโดยการ code ใน Lab พรุ่งนี้ (Mar 22) ครับ
  • [Mar 16] ลงรายชื่อกลุ่มที่นี https://goo.gl/EE9WfD ภายใน <fc #ff0000>23:59</fc> วันที่ <fc #ff0000>16</fc> มีนาคมครับ
  • [Mar 09] Week 8's homework and grader is online
  • [Feb 27] Midterm Breakdown อนุญาตกระดาษสรุปขนาดไม่เกิน F4 หนึ่งแผ่นครับ
  • [Feb 19] Week 7's grader is online
  • [Feb 16] Week07 - Labsheet <fc #ff0000>ไม่อนุญาตให้ใช้ string.h ในข้อ Lab07_2</fc>
  • [Feb 12] Week 6's homework is online
  • [Feb 09] การบ้านทุกงานที่ clone จาก GitHub ให้ push ขึ้น repo ด้วยครับเมื่อทำเสร็จแล้ว <fc #ff0000>ไม่อย่างนั้นเสีย 20% นะครับ</fc>
  • [Jan 31] HW04_2 test case 5 7
  • [Jan 28] การบ้าน HW04 เพิ่มเติมรายละเอียดในโจทย์ข้อ HW04_3 ครับ
  • [Jan 28] Week 4's homework is online
  • [Jan 26] Reminder: เรามี quiz Lab กันวันที่ 27 เวลา 10:30 ที่ห้อง 301 ครับ
  • [Jan 22] Sec003 วันที่ 22 เวลา 14:30 ย้ายไปเรียนที่ห้อง CSB303
  • [Jan 21] Week 3's homework is online
  • [Jan 20] Lab03_1's grader is online
  • [Jan 18] ให้ศึกษาการทำงานของฟังก์ชัน rand() และการใช้งาน (ลอง หาตัวอย่าง code แล้วลอง run) จาก Library <stdlib.h> ก่อนเข้าเรียน Lab วันที่ 19 ครับ
  • [Jan 16] Week 2's Grader is online
  • [Jan 16] Reminder: สอบ Lab <fc #800000>วันที่ 20</fc> เป็น closed book, closed notes นะครับ มีให้แค่ C reference Card 1 แผ่น สุ่มการบ้าน (HW + Lab) มาออก แล้วแต่ดวงนะครับใครได้ข้อไหน
  • [Jan 13] Week 2's Assignment is online
  • [Jan 10] ให้ นศ เข้าร่วมอบรม Git and Version Control workshop วันที่ 13 มกราคม ที่ห้อง CSB301 เวลา 9:30
  • [Jan 08] Grader for Assignment 1 is online
  • [Jan 05] Week 1's Assignment is online
  • [Jan 05] ให้ นศ เข้าร่วมอบรม Linux workshop วันที่ 6 มกราคม ที่ห้อง CSB301 เวลา 9:30

TODO

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

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

  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: https://goo.gl/Xvpx25

Section 002:

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

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: https://goo.gl/VfbRH1

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

วันสอบ

  • สอบย่อยครั้งที่ 1: (Algorithm Design and Testing) วันพุธที่ 27 มกราคม เวลา 10:30 - 11:30 น.
  • สอบย่อยครั้งที่ 2: (Pointers and 1D Array) วันพุธที่ 10 กุมภาพันธ์ เวลา 10:30 - 11:30 น.
  • สอบย่อยครั้งที่ 3: (Recursion) วันพุธที่ 23 มีนาคม เวลา 10:30 - 11:30 น.
  • สอบปฏิบัติการ: วันพุธ เวลา 10:30 - 12:00 (พุธที่ 20 มกราคม, 3 กุมภาพันธ์, 17 กุมภาพันธ์, 9 มีนาคม, 30 มีนาคม, 20 เมษายน)
  • สอบข้อเขียนกลางภาค : วันที่ 3 มีนาคม 2559 เวลา 12:00 - 15:00 น.
  • สอบข้อเขียนปลายภาค : วันที่ 8 พฤษภาคม 2559 เวลา 12:00 - 15:00 น.

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

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

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

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

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

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

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

    Schedule

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

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

    • กระบวนการสร้างแอพพลิเคชันภาษาซี
      (C compiling and Linking)

    </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> โครงสร้างข้อมูล

    • พอยน์เตอร์และการอ้างถึง (รวมถึงฟังก์ชันแบบ Called by Reference)

    </WRAP>|

    05

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

    • พอยน์เตอร์และการอ้างถึง (รวมถึงฟังก์ชันแบบ Called by Reference)

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

    • ตัวแปรชุด 1 มิติ
    • สายอักขระและการประมวลผล
    • การดำเนินการระดับบิต

    </WRAP>|

    06

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

    • ตัวแปรชุด 1 มิติ
    • สายอักขระและการประมวลผล
    • การดำเนินการระดับบิต

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

    • ตัวแปรชุดหลายมิติ
    • สายอักขระและการประมวลผล
    • ฟังก์ชันสายอักขระ

    </WRAP>|

    07

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

    • ตัวแปรชุดหลายมิติ
    • สายอักขระและการประมวลผล
    • ฟังก์ชันสายอักขระ

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

    • ตัวแปรชุดของพอยน์เตอร์

    </WRAP>|

    08

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

    • ตัวแปรชุดของพอยน์เตอร์
    • Command Line Argument Array

    </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> การจัดดำเนินการแฟ้มข้อมูล

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

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

    • เรคอร์ด
    • ยูเนียน
    • Enumeration Type

    </WRAP>|

    11

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

    • เรคอร์ด
    • ยูเนียน
    • Enumeration Type

    </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 วัน
    งานที่ตั้งชื่อไฟล์ไม่ตรงกับที่กำหนดในใบงาน จะไม่ได้รับการตรวจ

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

    • Windows
    • Linux
      • Ubuntu: install build-essential
      • Fedora: install “Development Tools”
      • Sublime-3 config for Linux (ติตตั้งด้วยคำสั่ง ./install.sh) download

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

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

    start.txt · Last modified: 2017/03/27 11:35 (external edit)