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 ภายใน 23:59 วันที่ 16 มีนาคมครับ
  • [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 ไม่อนุญาตให้ใช้ string.h ในข้อ Lab07_2
  • [Feb 12] Week 6's homework is online
  • [Feb 09] การบ้านทุกงานที่ clone จาก GitHub ให้ push ขึ้น repo ด้วยครับเมื่อทำเสร็จแล้ว ไม่อย่างนั้นเสีย 20% นะครับ
  • [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 วันที่ 20 เป็น 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

    Week Lab Lec
    01

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

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

    หลักการออกแบบโปรแกรมที่ดี

    02

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

    • การแปลงผังงานโปรแกรมเป็นชุดคำสั่งภาษาซีและคำสั่งในการรับ/ แสดงผลอย่างง่าย
    12 ม.ค. 15 ม.ค.

    ภาพรวมการเขียนโปรแกรมภาษาซี

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

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

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

    gcc common errors and warnings

    19 ม.ค. 22 ม.ค.
    04

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

    26 ม.ค. 29 ม.ค.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    • ตัวแปรชุดของพอยน์เตอร์
    • Command Line Argument Array
    23 ก.พ. 26 ม.ค.

    Algorithm and Programming Practice

    Exam Review

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

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

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

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

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

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

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

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

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

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

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

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

    • เรคอร์ด
    • ยูเนียน
    • Enumeration Type
    22 มี.ค. 25 มี.ค.

    โครงสร้างข้อมูล - เรคอร์ดและ ตัวแปรชุดของเรคอร์ด

    12

    โครงสร้างข้อมูล - เรคอร์ดและ ตัวแปรชุดของเรคอร์ด

    29 มี.ค. 1 เม.ย.

    โครงสร้างข้อมูล - โครงสร้างแบบลิสต์

    13

    โครงสร้างข้อมูล - โครงสร้างแบบลิสต์

    5 เม.ย. 8 เม.ย.

    โครงสร้างข้อมูล - โครงสร้างแบบลิสต์ และการเวียนเกิด

    14

    โครงสร้างข้อมูล - โครงสร้างแบบลิสต์ และการเวียนเกิด

    19 เม.ย. 22 เม.ย.

    การดำเนินการแฟ้มข้อมูลด้วยการเข้าถึงแบบสุ่ม

    15

    Algorithm and Programming Practice

    26 เม.ย. 29 เม.ย.

    Algorithm and Programming Practice

    Exam Review

    สอบข้อเขียนปลายภาค วันอาทิตย์ที่ 8 พฤษภาคม เวลา 12:00 - 15:00 น.

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

    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 ให้เขียนที่หัวกระดาษด้านขวาดังนี้
    ชื่อ นามสกุล ลำดับที่ ##
    5XXXXXXXX
    Lab (หรือ Lec) YY
    Problem Z
    204112 Sec 00A

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

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

    Assignment Assignment Sheet File Naming Format Due Date Globbing
    (สำหรับ TA)
    Lab01_1 Lab01 Lab01_1_5XXXXXXXX.c TBA
    (TBA)
    Lab01_1_5????????.c
    Lab01_2 Lab01_2_5XXXXXXXX.c Lab01_2_5????????.c
    HW01_1 HW01 HW01_1_5XXXXXXXX.c TBA
    (TBA)
    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 17:35 by admin112