====== 204111 การเขียนโปรแกรมเบื้องต้น ====== ====== Fundamentals of Programming ====== ==== 2016 S1 ==== ===== ข่าวประกาศ ===== TODO - ให้นักศึกษา Download และ install Cygwin Pack * http://TBA - เข้าไปสมัคร [[https://signup-elearning.cmu.ac.th/signup/|CMU e-learning by Google apps for education]] โดยใช้ email @cmu.ac.th ของตนเอง * กดเข้าร่วม class 204111 โดยใส่รหัส hksro91 * [[http://ramjoti2000.blogspot.com/2016/08/cmu-google-classroom.html|รายละเอียดวิธิีการสมัคร]] ===== วัตถุประสงค์กระบวนวิชา ===== นักศึกษาสามารถ - อธิบายเกี่ยวกับอัลกอริทึมและการแก้ปัญหาการทำงานของคอมพิวเตอร์ ตลอดทั้งแนวคิดของภาษาโปรแกรม - ออกแบบและพัฒนาอัลกอริทึม และเขียนโปรแกรมขั้นต้นได้ ===== เวลาเรียน ===== **Section 001:** * **Lec:** Mo 14:30 - 16:30 (room CSB201) * **Lab:** Th 14:30 - 16:30 (room CSB303) * **Instructor:** อ. ดร. อารีรัตน์ ตรงรัศมีทอง * Office: CSB107 * Office hours: TBA * Assignment Checklist: https://goo.gl/cVFUmr **Section 002:** * **Lec:** Tu 9:30 - 11:30 (room CSB203) * **Lab:** Fr 9:30 - 11:30 (room CSB303) * **Instructor:** อ. ดร. รัศมีทิพย์ วิตา * Office: CSB107 * Office hours: TBA * Assignment Checklist: https://goo.gl/SddQYb **Section 003:** * **Lec:** Tu 09:30 - 11:30 (room CSB210) * **Lab:** Fr 09:30 - 11:30 (room CSB308) * **Instructor:** อ. กิตติพิชญ์ คุปตะวาณิช * Office: CSB107 * Office hours: TBA * Assignment Checklist: https://goo.gl/R4cOqw **Facebook Group:** http://www.facebook.com/groups/16S1.204111 ===== วันสอบ ===== * **สอบย่อยครั้งที่ 1:** วันที่ 14 กันยายน 2559 เวลา 13:30 - 15:00 น. * **สอบปฏิบัติการครั้งที่ 1:** วันที่ 21 กันยายน 2559 เวลา 14:30 - 16:30 น. * **สอบกลางภาค :** วันที่ 8 ตุลาคม 2559 เวลา 08:00 - 11:00 น. * **สอบปฏิบัติการครั้งที่ 2:** วันที่ 19 ตุลาคม 2559 เวลา 13:30 - 15:30 น. * **สอบปฏิบัติการครั้งที่ 3:** วันที่ 9 พฤศจิกายน 2559 เวลา 13:30 - 15:30 น. * **สอบปลายภาค :** วันที่ 8 ธันวาคม 2559 เวลา 15:30 - 18:30 น. ===== หลักเกณฑ์การให้คะแนน =====
  • คะแนนเข้าชั้นเรียน, ปฏิบัติการ, และการบ้าน
  • 25%
  • สอบย่อย (Quiz)
  • 10%
  • สอบปฏิบัติการ
  • 10%
  • สอบกลางภาค
  • 25%
  • สอบปลายภาค
  • 30%
    **//การ__ลอก__การบ้าน แบบฝึกหัดหรืองานที่ได้รับมอบหมาย ถือเป็น__การทุจริต__// โดย__ผู้ลอก__จะ__ไม่ได้__รับการพิจารณาให้__คะแนน__ในงานนั้น __และผู้ให้ลอก__ จะได้รับ__คะแนนติดลบ__เท่ากับน้ำหนักงานนั้น** ===== เนื้อหาวิชาและแผนการสอน ===== |< 100% 1.5em 9em 32% 32% >| ^ **Week** ^^ **Lecture** ^ **Lab** ^ **Readings** ^ | 01 | 08-Aug - 12-Aug |- Intro to Computer Science \\ - History of Computing |- Computational Thinking\\ - Visual Programming |__Lec__: - | |:::|:::|:::|:::|__Lab__: {{:2015:204101_w02-lab_-code-dot-org.pdf|Intro to Code.org}}| | 02 | 15-Aug - 19-Aug |- Math for CS: Numbers |- Programming with Python\\ - Types, Literals, Variables, Operators, and Expressions |__Lec__: [[#เอกสารเพิ่มเติม | [2]]] Ch1 | |:::|:::|:::|:::|__Lab__: [[#เอกสารเพิ่มเติม | [3]]] Ch1 & Ch2| | 03 | 22-Aug - 26-Aug |- Problem Solving Processes \\ - Functions Part I |- Functions Part II \\ - Input/ output Redirection |__Lec__: [[#เอกสารเพิ่มเติม | [1]]] Ch 3 & 6, [[#เอกสารเพิ่มเติม | [3]]] Ch 3 | |:::|:::|:::|:::|__Lab__: [[#เอกสารเพิ่มเติม | [1]]] Ch 3 & 6, [[#เอกสารเพิ่มเติม | [3]]] Ch 3 | | 04 | 29-Aug - 02-Sep |- Math for CS: Boolean Algebra | - Conditionals Part I \\ - Case Study: Min, Max and More |__Lec__: | |:::|:::|:::|:::|__Lab__: {{:2015:flowgorithm_manual.pdf|Flowgorithm}} | | 05 | 05-Sep - 09-Sep |- Conditionals Part II\\ - Syntax, Semantic, Testing and Debugging |- Boolean Algebra and Logic Gates \\ - Python Style Guide | | | 06 | 12-Sep - 16-Sep |- Iterations Part I |- Iterations Part II\\ - Input/ output Redirection (cont'd) | | | 07 | 19-Sep - 23-Sep |- Iterations Part III |- Iteration Part IV\\ - Errors and Exceptions | | | 08 | 26-Sep - 30-Sep |- Iterations Part V |- //Programming & Algorithm Practice// | | Midterm Exam **8 Oct 08.00 - 11.00** (Midterm exam period 03 - 09 Oct) ||||| | 09 | 10-Oct - 14-Oct |- Strings | - Strings | | | 10 | 17-Oct - 21-Oct |- One-Dimensional Lists and Tuples |- One-Dimensional Lists and Tuples\\ - Sieve of Eratosthenes| | | 11 | 24-Oct - 28-Oct |- Math for CS: Counting |- Math for CS: Counting | | | 12 | 31-Oct - 04-Nov |- Two-Dimensional Lists |- Two-Dimensional Lists\\ - File IO | | | 13 | 07-Nov - 11-Nov |- Sorting and Searching |- Sorting and Searching | | | 14 | 14-Nov - 18-Nov |- Sets and Dictionaries\\ - Intro to Python Libraries | - Sets and Dictionaries\\ - Intro to Python Libraries | | | 15 | 21-Nov - 25-Nov |- //Programming & Algorithm Practice// |- //Programming & Algorithm Practice// | | | Final Exam **8 Dec 15.30 - 18.30** (Final exam period 28 Nov - 15 Dec) ||||| ===== การส่งงานผ่านเว็บไซต์ (เฉพาะการบ้านที่กําหนด) ===== [[http://hw.cs.science.cmu.ac.th/CS_HW/p204111.html]] หรือที่เว็บไซต์ของภาควิชา http://www.cs.science.cmu.ac.th->คลิกหัวข้อเว็บเพจส่งการบ้านโดยให้คลิก Link เพื่อ Login ตามรหัสวิชา และตอนเรียน (Section) ที่ลงทะเบียนเรียน ** จะมีการแจก User name และรหัสผ่าน ในชั่วโมงปฏิบัติการ** **ให้นักศึกษาจดบันทึก User name และรหัสผ่านให้ดี อย่าทําหาย** หากส่งงานช้ากว่ากำหนด จะคิดคะแนน **80%** จากคะแนนเต็ม และไม่อนุญาตให้ส่งงานช้าเกิน **3** วัน \\ งานที่ตั้งชื่อไฟล์ไม่ตรงกับที่กำหนดในใบงาน **จะไม่ได้รับการตรวจ** * ไฟล์งานทุกไฟล์ที่ส่ง online จะต้องมีการแทรก comment ที่บรรทัดบนสุด ในรูปแบบดังนี้ #!/usr/bin/env python3 # ชื่อ นามสกุล # 5XXXXXXXX # Lab YY # Problem Z # 204111 Sec 00A * ไฟล์งานที่ส่งเป็นกระดาษ ให้เขียนที่หัวกระดาษ**__ด้านขวา__**ดังนี้ |< 100% >| | **ชื่อ นามสกุล ลำดับที่ ##**\\ **5XXXXXXXX**\\ **Lab (หรือ Lec) YY**\\ **Problem Z**\\ **204111 Sec 00A**| ==== กำหนดส่งงาน ==== * ไม่รับงานส่งสายหลังจากวันที่ที่ระบุในวงเล็บ (เกิน 3 วันจากกำหนดส่ง) |< - - 9em 15em 6em 6em 6em>| ^ Assignment ^ Problem ^ File Naming Format ^ Due Date ^^^ ^ ::: ^ ::: ^ ::: ^ 001 ^ 002 ^ 003 ^ ===== IDE ===== IDE (Integrated Development Environment) หลักที่ใช้ในภาคเรียนนี้ คือ IDLE (Python 3.5 Built-in IDE จาก python.org) * Windows * install [[http://bit.ly/2aVZa3U|software bundle ของรายวิชา]] //(recommended)// [[111_bundle_install | วิธีติดตั้ง]] * หรือสามารถติดตั้งเอง [[http://www.python.org/downloads/windows | python.org]] * OSX * install [[http://bit.ly/2bNmgN5|software bundle ของรายวิชา]] //(recommended)// * หรือสามารถติดตั้งเอง [[https://www.python.org/downloads/mac-osx/ | python.org]] * Ubuntu: * install [[http://bit.ly/2b2Rccc|software bundle ของรายวิชา]] //(recommended)// sudo apt-get install python3 sudo apt-get install idle3 ===== Software อื่นๆ ===== * IDE * [[http://www.iep-project.org | IEP]] (cross-platform) * [[https://wingware.com/downloads/wingide-101 | Wing 101]] (windows) * [[https://www.jetbrains.com/pycharm/ | Pycharm]] (cross-platform) * [[https://www.visualstudio.com/en-us/products/vs-2015-product-editions.aspx | Visual Studio 2015]] (windows) * Text Editor * [[http://www.sublimetext.com/3 | Sublime Text 3]] //recommended// (cross-platform) * [[https://notepad-plus-plus.org/ | Notepad++]] (windows) * [[https://atom.io | Atom]] (cross-platform) * [[http://lighttable.com/| Light Table]] (cross-platform) * Visual Programming * [[http://www.code.org|Code.org]] * [[http://www.flowgorithm.org/|Flowgorithm]] * Free Diagram Drawing Tools * [[https://www.lucidchart.com/|Lucid Chart]] (Web Application) * [[http://www.yworks.com/en/products_yed_about.html|yED]] (Windows, Mac OS X, Linux, java) ===== เอกสารเพิ่มเติม ===== [1] //[[http://www.greenteapress.com/thinkpython/|Think Python: How to Think Like a Computer Scientist]]// by Allen B. Downey \\ [2] //[[http://bookboon.com/uk/student/it/gentle-introduction-to-mathematics-for-computer|Mathematics for Computer Scientists]]// by Janacek and Close \\ [3] //[[http://oho.ipst.ac.th/python-book/|หนังสือเรียนภาษาไพทอน]]// สถาบันส่งเสริมการสอนวิทยาศาสตร์และเทคโนโลยี \\ [4] //[[http://docs.python.org/3/reference/index.html |The Python Language Reference]]// from python.org \\ [5] //[[http://docs.python.org/3.0/library/index.html |The Python Standard Library]]// from python.org \\ [6] //[[http://docs.python.org/3/reference/index.html |The Python Tutorial]]// from python.org ===== ภาคการศึกษาอื่นๆ ===== * [[http://www.cs.science.cmu.ac.th/course/204111/doku.php?id=2016_semester_i|2016 Semester I]] * [[http://www.cs.science.cmu.ac.th/course/204111/doku.php?id=2015_semester_i|2015 Semester I]] * [[http://www.cs.science.cmu.ac.th/course/204111/doku.php?id=2014_semester_i|2014 Semester I]] * [[http://www.cs.science.cmu.ac.th/course/204111/2013S1/|2013 Semester I]]