====== 204111 วิทยาการคอมพิวเตอร์เบื้องต้น ====== ====== Fundamentals of Computer Science ====== ==== 2014 S1 ==== ===== ข่าวประกาศ ===== ===== การวัดและประเมินผล ===== * A - F ===== ลักษณะกระบวนวิชา ===== * บรรยาย และปฏิบัติการ ===== วัตถุประสงค์กระบวนวิชา ===== นักศึกษาสามารถ - อธิบายเกี่ยวกับอัลกอริทึมและการแก้ปัญหาการทำงานของคอมพิวเตอร์ ตลอดทั้งแนวคิดของภาษาโปรแกรม - ออกแบบและพัฒนาอัลกอริทึม และเขียนโปรแกรมขั้นต้นได้ ===== เวลาเรียน ===== **Section 001:** * **Lec:** Mo 14:30 - 16:30 (room CSB201) * **Lab:** Th 14:30 - 16:30 (room CSB303) * **Instructor:** อ. ดร. รัศมีทิพย์ วิตา * Office: CSB107 * Office hours: MoTh 16.30-18.00 * Assignment Checklist: http://goo.gl/aCyJya **Section 002:** * **Lec:** Tu 9:30 - 11:30 (room CSB207) * **Lab:** Fr 9:30 - 11:30 (room CSB303) * **Instructor:** อ. กิตติพิชญ์ คุปตะวาณิช * Office: CSB107 * Office hours: MoTh 16:30 – 18:30, TuWeFr 13:30 – 16:30 * Assignment Checklist: http://goo.gl/EN5tcN **Section 003:** * **Lec:** Tu 09:30 - 11:30 (room CSB210) * **Lab:** Fr 09:30 - 11:30 (room CSB308) * **Instructor:** อ. ดร. อารีรัตน์ ตรงรัศมีทอง * Office: CSB107 * Office hours: Th 13.30-16.30 * Assignment Checklist: http://goo.gl/HMuvNo **Facebook Group:** http://www.facebook.com/groups/14S1.204111 ===== วันสอบ ===== * **สอบย่อยครั้งที่ 1:** วันพุธที่ 1 ตุลาคม 2557 เวลา 13:30 - 15:30 น. * **สอบกลางภาค :** วันอาทิตย์ที่ 12 ตุลาคม 2557 เวลา 12:00 - 15:00 น. * **สอบปลายภาค :** วันศุกร์ที่ 12 ธันวาคม 2557 เวลา 15:30 - 18:30 น. ===== หลักเกณฑ์การให้คะแนน ===== * คะแนนเข้าชั้นเรียน **5%** * สอบย่อย **10%** * ปฎิบัติการและการบ้าน **20%** * สอบกลางภาค **30%** * สอบปลายภาค **35%** **//การ__ลอก__การบ้าน แบบฝึกหัดหรืองานที่ได้รับมอบหมาย ถือเป็น__การทุจริต__//** ===== เนื้อหาวิชาและแผนการสอน ===== {{:w01_lab_0a_outline204111_2014_s1_2x3.pdf|Course Syllabus}} ====Schedule==== ^ Week ^^ Lecture ^ Lab ^ Readings ^ | 01 |14 Aug - 15 Aug | //no class// |- Getting Started {{:2014:w01_lab_1_getting_started_v2_2x2.pdf|pdf}}\\ - Simple I/O |Lab:[[#เอกสารเพิ่มเติม|[2]]]\\ Ch1.1 | | 02 |21 Aug - 22 Aug | //no class// |- Concept and properties of algorithms {{:2014:w02_lab_algorithm_part_i_2x2.pdf|pdf}} \\ - Syntax and semantics of a higher-level languages| | | 03 |25 Aug - 29 Aug |- Pseudo code descriptions of algorithms {{:2014:w03_lec_1_algorithm_part_ii_2x2.pdf|pdf}} \\ - Variable, types, expression and assignment I {{:2014:w03_lec_2_variables_assignment_i_edit_2x2.pdf|pdf}} |- Variable, types, expression and assignment II {{:2014:w03_lab_variables_assignment_ii_v6_2x2.pdf|pdf}}| | | 04 |1 Sep - 5 Sep |- Math for CS: Numbers {{:2014:w04_lec_numbers_v2_2x2.pdf|pdf}} |- Conditional Control Structures I {{:2014:w04_lab_1_algorithm_part_iii_2x2.pdf|pdf}} {{:2014:w04_lab_2_conditional_control_statement_i_2x2.pdf|pdf}} \\ - Case Study: Finding Max, Min and More {{:2014:w04_lab_3_minmax_2x2.pdf|pdf}} |Lec:[[#เอกสารเพิ่มเติม|[1]]]\\ Ch1 | | 05 |8 Sep - 12 Sep |- Math for CS: Boolean Algebra {{:2014:w05_lec_boolean_algebra_v3_2x2.pdf|pdf}} |- Conditional Control Structures II {{:2014:w05_lab_conditional_control_statement_ii_v3_2x2.pdf|pdf}}|Lec:[[#เอกสารเพิ่มเติม|[1]]]\\ Ch2 | | 06 |15 Sep - 19 Sep |- Bitwise Operation {{:2014:w06_lec_bitwise_operations_2x2.pdf|pdf}}\\ - Conditional Control Structure III {{:2014:w06_lec_conditional_control_statement_iii_2x2.pdf|pdf}}\\ - C Coding Style {{:2014:w05_lab_204111_c_coding_style_v3_2x2.pdf|pdf}} |- Conditional Control Structures IV\\ - Problem Solving Practice: {{:2014:lecassgn_03_problemsolving.pdf|pdf}}| | | 07 |22 Sep - 26 Sep |- Data Representation I {{:2014:w07_lec_data_representation_part_i_v5_2x2.pdf|pdf}}|- Iterative Control Structures I {{:2014::w07_lab_iterative_control_statements_i_v3_2x2.pdf|pdf}}|Lec:[[#เอกสารเพิ่มเติม|[4]]]\\ Ch2.1-2.3 | | 08 |29 Sep - 3 Oct |- Exam Review \\ - Boolean Algebra Exercise {{:2014::boolean_exercise_1_in-class_no_key.pdf|I}} {{:2014:boolean_exercise_2_tutor_no_key.pdf|II}}\\ - Answer Key for in Class Exercise {{:2014::boolean_exercise_1_in-class_key.pdf|key I}}\\ - Solution for Lec02 Assignment {{:2014:lecassgn_02_booleanalgebra_key.pdf|soln}}\\ - Answer Key for Tutoring Session {{:2014:boolean_exercise_2_tutor_1_.pdf|key II}} |- Exam Review | | | Midterm Exam **12 Oct 12.00-15.00** (Midterm exam period 6-12 Oct 2014) ||||| | 09 |13 Oct - 17 Oct |- Data Representation II {{:2014::w09_lec_data_representation_part_ii_v6_2x2.pdf|pdf}} |- Iterative Control Structures II {{:2014:w09_lab_iterative_control_statements_ii_v3_2x2.pdf|pdf}} | | | 10 |20 Oct - 24 Oct |- Basic Machine Organization {{:2014:w10_lec_basic_machine_organization_v2_2x2.pdf|pdf}}\\ - The Von Neumann model of computation|- Iterative Control Structures III {{:2014:w10_lab_iterative_control_statements_iii_v3_2x2.pdf|pdf}} | | | 11 |27 Oct - 31 Oct |- Machine Instruction Cycle {{:2014::w11_lec_machine_instruction_cycle_v2_2x2.pdf|pdf}}|- 1D array {{:2014::w11_lab_1darray_v2_2x2.pdf|pdf}} | | | 12 |3 Nov - 7 Nov |- Function and Parameter Passing I {{:2014:w12_lec_function_i_v2_2x2.pdf|pdf}}|- Function and Parameter Passing II {{:2014:w12_lab_1_function_ii_2x2.pdf|pdf}}\\ - I/O Redirection {{:2014:w12_lab_2_io_redirection_2x2.pdf|pdf}}| | | 13 |10 Nov - 14 Nov |- Problem solving process {{:2014:w13_lec_1_problem_solving_2x2.pdf|pdf}}\\ - String Functions {{:2014:w13_lec_2_string_function_v2_2x2.pdf|pdf}} |- 2D array {{:2014::w13_lab_2darray_v2_2x2.pdf|pdf}}\\ - Function and Parameter Passing III | | | 14 |17 Nov - 21 Nov |- Algorithm: sorting and searching {{:2014:w14_lec_sorting_and_searching_v2_2x2.pdf|pdf}} |- Function and Parameter Passing IV | | | 15 |24 Nov - 28 Nov |- Exam Review {{:2014:w15_practice_1.pdf|pdf}} |- Exam Review\\ - Notes on 2D Arrays {{:2014::w15_notes_on_2d_array_2x2.pdf|pdf}} | | | Final Exam **12 Dec 15.30-18.30** (Final exam period 1-16 Dec 2014) ||||| ===== การส่งงานผ่านเว็บไซต์ (เฉพาะการบ้านที่กําหนด) ===== [[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 ที่บรรทัดบนสุด ในรูปแบบดังนี้ /* ชื่อ นามสกุล * 5XXXXXXXX * Lab YY * Problem Z * 204111 Sec 00A */ * ไฟล์งานที่ส่งเป็นกระดาษ ให้เขียนที่หัวกระดาษ**__ด้านขวา__**ดังนี้ |< 100% >| | **ชื่อ นามสกุล ลำดับที่ ##**\\ **5XXXXXXXX**\\ **Lab (หรือ Lec) YY**\\ **Problem Z**\\ **204111 Sec 00A**| ==== กำหนดส่งงาน (Online)==== * ไม่รับงานส่งสายหลังจากวันที่ที่ระบุในวงเล็บ (เกิน 3 วันจากกำหนดส่ง) |<100%>| ^ Assignment ^ Assignment Sheet ^ File Naming Format ^ Due Date ^^^ Globbing\\ (สำหรับ TA) ^ ^ ::: ^ ::: ^ ::: ^ 001 ^ 002 ^ 003 ^:::^ |Lab01_1 |{{:labassgn_01_helloworld.pdf|Lab01}} | Lab01_1_5XXXXXXXX.c |@#F0DCF0:20 Aug\\ (23 Aug) | @#FCD9BC:21 Aug\\ (24 Aug) | @#DAE7F6:21 Aug\\ (24 Aug)| [Ll]ab01_1_5????????.c | |Lab02_1b |{{:labassgn_02_algorithm_i.pdf|Lab02}} | Lab02_1b_5XXXXXXXX.c |@#F0DCF0:27 Aug\\ (30 Aug) | @#FCD9BC:28 Aug\\ (31 Aug) | @#DAE7F6:28 Aug\\ (31 Aug)| Lab02_1b_5????????.c | |Lab03_1 |{{:labassgn_03_variable_datatype.pdf|Lab03}}| Lab03_1_5XXXXXXXX.c |@#F0DCF0:3 Sep\\ (6 Sep) | @#FCD9BC:4 Sep\\ (7 Sep) | @#DAE7F6:4 Sep\\ (7 Sep)| Lab03_1_5????????.c | |Lab03_2b |:::| Lab03_2b_5XXXXXXXX.c |:::|:::|:::| Lab03_2b_5????????.c | |Lab04_1 | {{:labassgn_04_selection_i.pdf|Lab04}}| Lab04_1_5XXXXXXXX.c |@#F0DCF0:10 Sep\\ (13 Sep) | @#FCD9BC:11 Sep\\ (14 Sep) | @#DAE7F6:11 Sep\\ (14 Sep)| Lab04_1_5????????.c | |Lab04_2 |:::| Lab04_2_5XXXXXXXX.c |:::|:::|:::| Lab04_2_5????????.c | |Lab04_3b |:::| Lab04_3b_5XXXXXXXX.c |:::|:::|:::| Lab04_3b_5????????.c | |Lab05_1a |{{::labassgn_05_selection_ii.pdf|Lab05 }} | ทำในกระดาษขนาด A4 |@#F0DCF0:18 Sep | @#FCD9BC:19 Sep | @#DAE7F6:19 Sep| ทำในกระดาษขนาด A4 | |Lab05_2a |::: | ทำในกระดาษขนาด A4 | ::: | ::: | ::: | ทำในกระดาษขนาด A4 | |Lab05_1b |::: | Lab05_1b_5XXXXXXXX.c |@#F0DCF0:20 Sep\\ (23 Sep) | @#FCD9BC:21 Sep\\ (24 Sep) | @#DAE7F6:21 Sep\\ (24 Sep)| Lab05_1b_5????????.c | |Lab05_2b |:::| Lab05_2b_5XXXXXXXX.c |:::|:::|:::| Lab05_2b_5????????.c | |Lab06_1a |{{::labassgn_06_repetition_i.pdf|Lab06}} | ทำในกระดาษขนาด A4 |@#F0DCF0:2 Oct | @#FCD9BC:3 Oct | @#DAE7F6:3 Oct| ทำในกระดาษขนาด A4 | |Lab06_2a |::: | ทำในกระดาษขนาด A4 | ::: | ::: | ::: | ทำในกระดาษขนาด A4 | |Lab06_3a |::: | ทำในกระดาษขนาด A4 | ::: | ::: | ::: | ทำในกระดาษขนาด A4 | |Lab06_1b |::: | Lab06_1b_5XXXXXXXX.c |@#F0DCF0:4 Oct\\ (7 Oct) | @#FCD9BC:5 Oct\\ (8 Oct) | @#DAE7F6:5 Oct\\ (8 Oct)| Lab06_2b_5????????.c | |Lab06_2b |:::| Lab06_2b_5XXXXXXXX.c |:::|:::|:::| Lab06_2b_5????????.c | |Lab06_3b |:::| Lab06_3b_5XXXXXXXX.c |:::|:::|:::| Lab06_3b_5????????.c | |Lab07_1 |{{::labassgn_07_repetition_ii.pdf|Lab07}} | Lab07_1_5XXXXXXXX.c |@#F0DCF0:22 Oct\\ (25 Oct) | @#FCD9BC:23 Oct\\ (26 Oct) | @#DAE7F6:23 Oct\\ (26 Oct)| Lab07_1_5????????.c | |Lab07_2 |:::| Lab07_2_5XXXXXXXX.c |:::|:::|:::| Lab07_2_5????????.c | |Lab07_3 |:::| Lab07_3_5XXXXXXXX.c |:::|:::|:::| Lab07_3_5????????.c | |Lab07_4 |:::| Lab07_4_5XXXXXXXX.c |:::|:::|:::| Lab07_4_5????????.c | |Lab08_1 |{{::labassgn_08_repetition_iii_v2.pdf|Lab08}} | Lab08_1_5XXXXXXXX.c |@#F0DCF0:6 Nov\\ (9 Nov) | @#FCD9BC:1 Nov\\ (4 Nov) | @#DAE7F6:1 Nov\\ (4 Nov)| Lab08_1_5????????.c | |Lab08_2 |:::| Lab08_2_5XXXXXXXX.c |:::|:::|:::| Lab08_2_5????????.c | |Lab08_3 |:::| Lab08_3_5XXXXXXXX.c |:::|:::|:::| Lab08_3_5????????.c | |Lab08_4 |:::| Lab08_4_5XXXXXXXX.c |:::|:::|:::| Lab08_4_5????????.c | |Extra Credit |:::| Lab08_EX1_5XXXXXXXX.c |:::|:::|:::| Lab08_EX1_5????????.c | |Lab09_1 |{{:labassgn_09_array.pdf|Lab09}}| Lab09_1_5XXXXXXXX.c |@#F0DCF0: 6 Nov\\ (9 Nov) | @#FCD9BC: 7 Nov\\ (10 Nov) | @#DAE7F6: 7 Nov\\ (10 Nov)| Lab09_1_5????????.c | |Lab09_2 |:::| Lab09_2_5XXXXXXXX.c |:::|:::|:::| Lab09_2_5????????.c | |Lab09_3 |:::| Lab09_3_5XXXXXXXX.c |:::|:::|:::| Lab09_3_5????????.c | |Lab09_4 |:::| Lab09_4_5XXXXXXXX.c |:::|:::|:::| Lab09_4_5????????.c | |Lab10_1 |{{:labassgn_10_function_i.pdf|Lab10}}| Lab10_1_5XXXXXXXX.c |@#F0DCF0: 13 Nov\\ (16 Nov) | @#FCD9BC: 14 Nov\\ (17 Nov) | @#DAE7F6: 14 Nov\\ (17 Nov)| Lab10_1_5????????.c | |Lab10_2 |:::| Lab10_2_5XXXXXXXX.c |:::|:::|:::| Lab10_2_5????????.c | |Lab10_3 |:::| Lab10_3_5XXXXXXXX.c |:::|:::|:::| Lab10_3_5????????.c | |Lab11_1 | {{::labassgn_11_array_ii_v2.pdf|Lab11}}| Lab11_1_5XXXXXXXX.c |@#F0DCF0: 21 Nov\\ (24 Nov) | @#FCD9BC: 22 Nov\\ (25 Nov) | @#DAE7F6: 22 Nov\\ (25 Nov)| Lab11_1_5????????.c | |Lab11_2 |:::| Lab11_2_5XXXXXXXX.c |:::|:::|:::| Lab11_2_5????????.c | |Lab11_3 |:::| Lab11_3_5XXXXXXXX.c |:::|:::|:::| Lab11_3_5????????.c | ===== IDE ===== IDE (Integrated Development Environment) หลักที่ใช้ในภาคเรียนนี้ คือ [[http://www.codeblock.org|Code::Blocks]] version 13.12 * Download * http://www.codeblocks.org/downloads/26 * ใช้ไฟล์ชื่อ [[http://www.codeblocks.org/downloads/26|codeblocks-13.12mingw-setup.exe]] สำหรับ Windows * หรือโหลดจาก server ของภาควิชาที่ [[http://www.cs.science.cmu.ac.th/course/204111/IDE/codeblocks-13.12mingw-setup.exe|codeblocks-13.12mingw-setup.exe ]] * Portable Version http://www.cs.science.cmu.ac.th/course/204111/IDE/codeblocks-13.12-nosetup.zip * แตกไฟล์แล้ว run จาก folder * OS อื่นๆ ให้เลือกจาก file list ในหน้า download * Installation * [[https://sites.google.com/site/kanokpolunderscore/com_pro/c_language/c_codeblock/installcodeblock| ขั้นตอนในการติดตั้ง]] * Disabling Auto Code Completion * {{:code_block_-_disable_completion.png?direct&400|}} ===== Software อื่นๆ ===== * Free Diagram Drawing Tools * [[http://www.draw.io|draw.io]] (Web Application) * [[https://www.lucidchart.com/|Lucid Chart]] (Web Application) * [[http://www.yworks.com/en/products_yed_about.html|yED]] (Windows, Mac OS X, Linux, java) * [[http://dia-installer.de/|Dia Diagram Editor]] (Windows, Mac OS X, Linux) ===== เอกสารเพิ่มเติม ===== [1] //[[http://bookboon.com/uk/student/it/gentle-introduction-to-mathematics-for-computer|Mathematics for Computer Scientists]]// by Janacek and Close \\ [2] //[[http://www.iups.org/media/meeting_minutes/C.pdf|The C Programming Language (ANSI C Version)]]// 2nd Edition by Ritchie and Kernighan \\ [3] //[[https://www.google.co.th/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=a+first+book+of+ansi+c|A First Book of ANSI C]]//, 4th Edition by Gary J. Bronson \\ [4] //[[http://csapp.cs.cmu.edu/|Computer Systems: A Programmer's Perspective]]// 2nd Edition by Bryan and O'Hallaron ===== ภาคการศึกษาอื่นๆ ===== [[http://www.cs.science.cmu.ac.th/course/204111/2013S1/|2013 Semester I]]