สวัสดีครับ หลังจากเรียนวิศวะซอฟต์แวร์ปี 1 เทอม 1 ผ่านไปแล้ว ก็เข้าสู่ปี 1 เทอม 2 เป็นที่เรียบร้อย วิชาเรียนเริ่มเข้มข้นขึ้น การเขียนโปรแกรมจะยากขึ้น มีวิชาใหม่ที่ไม่ได้เรียนตอนมัธยมปลาย บางวิชาดึงมาจากวิศวะไฟฟ้าและวิศวะคอมพิวเตอร์ เวลาว่างน้อยลง เวลาเรียนเพิ่มขึ้นพอสมควร แต่โดยรวมก็ถือว่าโอเค จันทร์ถึงศุกร์ เช้า-บ่ายทุกวัน

ก่อนขึ้นเทอมสอง รุ่นพี่ได้ขู่ผมไว้แบบนี้

รุ่นพี่ : น้อง พี่บอกเลย ตอนนี้มีเวลานอนก็นอนไปเลย เดี๋ยวขึ้นเทอมสองแล้วจะไม่ได้นอน
ผม : ทำไมครับ เรียนหนักเหรอ
รุ่นพี่ : เปล่า เล่นเกม
ผม :

ตอนแรกก็นึกว่าอำเล่น แต่พอได้เรียนจริงๆ แล้วบอกเลยว่าเวลานอนหายไปจริงๆ งานเยอะขึ้น มีควิซทุกสัปดาห์ สอบย่อยอีก โปรเจคอีก ไหนจะอนิเมะซีซั่นใหม่ ไหนจะเกม Steam ที่ดองไว้ ยิ่งช่วงสอบนี่แทบตาย อยากยืมขนมปังช่วยจำของโดราเอม่อน แต่มันไม่มีน่ะสิ เสียใจ

สำหรับเทอมนี้ การเขียนโปรแกรมจะได้เรียนวิธีการเขียนเชิงวัตถุ (OOP; Object-oriented programming) ด้วยภาษา C++ และมีโปรเจคเพียงตัวเดียวเท่านั้น ถึงจะมีแค่ตัวเดียว แต่จะเขียนโปรแกรมง่ายๆ เหมือนเทอมแรกไม่ได้แล้ว ซึ่งในวันนำเสนอผลงาน บอกเลยว่าแต่ละคนจัดเต็มจริงๆ จากเทอมแรกเป็นโปรแกรมง่ายๆ มีข้อผิดพลาดบ้างอะไรบ้าง แต่เทอมนี้โปรแกรมฉลาดขึ้น ใช้งานได้จริง โปรเจคของบางคนสามารถทำขายได้เลย

วิชาเรียนวิศวะซอฟต์แวร์ ปี 1 เทอม 2


ชื่อวิชา : Mathematics 2 (คณิตศาสตร์ 2)
ชื่อเล่น : Math (แมท) / แคล
วิชาบังคับก่อน : Mathematics 1
คำอธิบาย : วิชานี้ศึกษาแคลคูลัสเชิงปริพันธ์และการประยุกต์ใช้งาน โดยครอบคลุมเนื้อหาต่อไปนี้ ปฏิยานุพันธ์ การอินทิเกรท ทฤษฎีบทมูลฐานของแคลคูลัส เทคนิคการอินทิเกรทการประยุกต์ใช้งานของอินทิกรัล ระบบพิกัดเชิงขั้ว สมการพาราเมตริก เวกเตอร์ระบบพิกัดในปริภูมิสามมิติ อนุพันธ์และอินทิกรัลของฟังก์ชันของเวกเตอร์ อนุพันธ์ของฟังก์ชั่นหลายตัวแปร และ อินทิกรัลหลายชั้น
This course studies integral calculus and its applications. The topics studied include anti-derivatives, integration, the fundamental theorem of calculus, techniques of integration, applications of integrals, polar coordinate systems, parametric equations, vectors, coordinate systems in three-dimensional space, derivatives and integrals of vector functions, derivatives of functions of several variables, and multiple integrals.

Math2 ยังเป็นแคลคูลัสเหมือนเดิม เพิ่มเติมคือยากขึ้น โดยจะเน้นเรื่องของการ Integrate เป็นหลัก

ตอนมัธยมปลาย เราจะได้เรียนการอินทริเกตเบื้องต้นไปแล้ว แต่เราเรียนมหาลัย โดยเฉพาะสายคอมพิวเตอร์ที่ต้องใช้คณิตศาสตร์เข้ามาช่วย เราจะได้เทคนิคการอินทริเกตถึง 7 แบบ บางข้อยากมากๆ ถ้าอินทริเกตตรงๆ แต่ถ้าใช้เทคนิคที่ได้เรียน จะทำให้หาคำตอบได้ง่ายขึ้น

นอกจากเรียนทฤษฎีบทแคลคูลัสแล้ว ยังได้เรียนวิธีการนำแคลคูลัสไปประยุกต์ใช้กับธุรกิจ เศรษฐศาสตร์ เช่น หา Demand Supply อีกด้วย สนุกไม่แพ้กัน

สิ่งที่สำคัญที่สุดคืออาจารย์ตุ้ย ผู้สอนวิชา Math2 ผมขอไม่สปอย ต้องมาเจอด้วยตัวเองเท่านั้น


ชื่อวิชา : Fundamentals of Electrical Engineering (หลักมูลวิศวะกรรมไฟฟ้า)
ชื่อเล่น : ไฟฟ้า / Elec (อิเล็ก)
วิชาบังคับก่อน : ไม่มี
คำอธิบาย : วิชานี้ศึกษาหัวข้อพื้นฐานทางด้านวิศวกรรมไฟฟ้า โดยมีเนื้อหาดังนี้ แนวคิดพื้นฐานของ
วงจรไฟฟ้า วงจรความต้านทาน เทคนิคการวิเคราะห์แบบโหนดและลูป เทคนิคการวิเคราะห์แบบแยกส่วน ทฤษฎีบทของเธเวนินและนอร์ตัน ตัวเก็บประจุและตัวเหนี่ยวนํา วงจรทรานเชียนต์อันดับที่หนึ่งและสอง ตัวขยายสัญญาณและอุปกรณ์กระตุ้น อุปกรณ์โซลิดสเตทไดโอดและวงจรเรียงกระแสทรานซิสเตอร์ ไทริสเตอร์และตัวขยายสัญญาณเชิงดําเนินการ
This course covers fundamental topics in electrical engineering, including basic concepts of electric circuits, resistive circuits, nodal and loop analysis techniques, superposition, Thevenin’s and Norton’s Theorems, capacitors and inductors, first-order and second-order transient circuits, amplifiers and active devices, solid-state devices, diode and rectifiers, transistors, thyristors, and operational amplifiers.

ตามชื่อเลยครับ วิชานี้เป็นวิชาที่เรียนเกี่ยวกับไฟฟ้าทั้งหมด ตอนมัธยมปลายเราได้เรียนไฟฟ้าเบื้องต้นไปแล้วในวิชาฟิสิกส์ การหาวงจร RLC สูตรครอบจักรวาล V = I x R หรือแม้แต่วงจรแบบ Wheatstone bridge แต่เราจะเรียนลึกขึ้นอีกพอสมควร

ตอนม.ปลาย การคำนวนวงจรไฟฟ้านั้นง่ายเหลือเกิน เลขสวยงามมาก แต่เสียใจด้วย วิชานี้คอมโบคู่กับแคลคูลัสได้ เราต้องใช้แคลคูลัสเข้ามาช่วยในการคำนวนวงจรไฟฟ้า นอกจากนี้ยังมีการใช้จำนวนเชิงซ้อน (Complex number) อีกด้วย เลขจำพวก 2+3i มาครบหมด

ผมไม่ค่อยถนัดวิชานี้สักเท่าไร แต่ก็ผ่านมาได้ด้วย C (ไม่ใช่ D ละกัน)


ชื่อวิชา : Technical Writing (การเขียนภาษาทางเทคนิค)
ชื่อเล่น : อังกฤษ / Eng (อิ๊ง)
วิชาบังคับก่อน : Foundation English
คำอธิบาย : วิชานี้เป็นการเรียนรู้และฝึกฝนทักษะการเขียนภาษาอังกฤษ โดยมุ่งหมายให้นักศึกษาสามารถ
ประพันธ์เอกสารทางเทคนิคที่ชัดเจนและมีประสิทธิภาพ รวมถึงมีการใช้ภาษาที่ถูกต้องและสละสลวย นักศึกษาจะได้ฝึกฝนการประพันธ์เรียงความ รายงาน บทความเชิงเทคนิค รวมถึงคู่มือการใช้งาน
This course provides a study and practice of English writing skills, with the aim that the students can compose clear and effective technical writings with correct and appropriate usage of the language. The students will be trained to write technical essays, reports, articles, and manuals.

เทอมแรก เราเรียนภาษาอังกฤษพื้นฐาน เทอมนี้เราจะได้เรียนอะไรที่ไม่ใช่พื้นฐานแล้ว ปกติภาษาอังกฤษมี 4 ทักษะ คือ ฟัง พูด อ่าน เขียน ในเทอมนี้เน้นการเขียนเป็นพิเศษ ใน 1 คาบเรียน ต้องมีงานเขียนไม่ต่ำกว่า 2 หน้ากระดาษ A4 บางคนอาจสงสัยว่า โห เขียนยังไงให้ได้ขนาดนั้น ความจริงไมได้ยากขนาดนั้น ทุกสัปดาห์อาจารย์จะแนะนำเทคนิคการเขียนรูปแบบต่างๆ มีกรณีศึกษาให้ดู และท้ายคาบให้เวลา 1 ชั่วโมง เขียน Essay ประเด็นต่างๆ ตามที่อาจารย์เสนอมา บางทีก็เป็นเหตุการณ์ทางประวัติศาสตร์ บางทีก็เป็นเรื่องเด่นประเด็นร้อนในสังคม

ข้อดีคืออาจารย์เปิดรับความคิดเห็นทุกอย่าง ทั้งเห็นด้วยและไม่เห็นด้วย เพียงแต่เราต้องแสดงจุดยืนและเหตุผลว่าทำไมถึงคิดแบบนั้น สมมุติว่าเราอยากเขียนว่าการขโมยเป็นเรื่องที่ดี (ถ้าวัดจาก Common Sense การขโมยของมันจะไปดีได้ยังไง) เราก็สามารถเขียนได้ แค่อ้างอิงเหตุผลที่มีน้ำหนัก แสดงจุดยืนของเราให้ชัดเจน


ชื่อวิชา : Discrete Mathematics (คณิตศาสตร์ดิสครีต)
ชื่อเล่น : DM (ดีเอ็ม)
วิชาบังคับก่อน : ไม่มี
คำอธิบาย : วิชานี้ครอบคลุมความรู้พื้นฐานของคณิตศาสตร์ดิสครีต โดยมีหัวข้อดังนี้ ทฤษฎีเซตขั้นพื้นฐาน
ทฤษฎีและเทคนิคการนับคุณสมบัติของจํานวนเต็ม การอุปนัยเชิงคณิตศาสตร์ การนิยามแบบเวียนเกิด สมการเวียนเกิด ลําดับและอนุกรม ความสัมพันธ์ กราฟและ โครงสร้างต้นไม
This is an introductory course in discrete mathematics, covering the following topics: basic set theory, theory and techniques of counting, properties of integers, mathematical induction, recursive definitions, recurrent equations, sequences and summations, relations, graphs, and trees.

หลายคนเห็นชื่อวิชาคงสงสัยว่าคณิตศาสตร์ดิสครีตคืออะไร ภาษาไทยมีหลายชื่อมาก คณิตศาสตร์เต็มหน่วย พินทนคณิตศาสตร์ แต่ผมขอเรียกง่ายๆ ว่าดิสครีตแมทคือคณิตศาสตร์ไม่ต่อเนื่อง

ปกติคณิตศาสตร์ที่เราเรียนจะเป็นคณิตศาสตร์ต่อเนื่อง ศึกษาเกี่ยวกับตัวเลข การบวกลบ การแก้สมการ หรือแม้แต่คณิตศาสตร์ชั้นสูงอย่างแคลคูลัส แต่ Discrete Maths จะเป็นคณิตศาสตร์ที่ไม่ต่อเนื่อง คือค่าแต่ละค่าจะแตกต่างกันอย่างสิ้นเชิง ลองนึกถึงตรรกศาสตร์ที่เรียนตอนมัธยมปลาย มีแค่สองค่าเท่านั้นคือจริง (True) กับเท็จ (False) จะเห็นได้ว่าเราสามารถแยกได้เลยว่าไม่จริงก็เท็จ ไม่มีเกือบจริง เกือบเท็จอยู่ตรงกลางระหว่างสองค่า

Discrete Math เป็นคณิตศาสตร์ที่สำคัญสุดๆ สำหรับการเรียนสายคอมพิวเตอร์ในระดับมหาวิทยาลัย เพราะต่อจากนี้เราจะเน้นเรื่องของอัลกอริทึมและ Big O Notation มากกว่าตัวภาษา ซึ่งวิชานี้จะช่วยให้เราเขียนโค้ดได้เทพขึ้นอีกเยอะ แล้วจะรู้ว่าโปรแกรมมิ่ง + คณิตศาสตร์ = เทพ


ชื่อวิชา : Digital Circuit and Logic Design (การออกแบบวงจรดิจิตอลและวงจรตรรก)
ชื่อเล่น : DC (ดีซี) / Digital (ดิจิตอล)
วิชาบังคับก่อน : ไม่มี
คำอธิบาย : เนื้อหาวิชานี้ประกอบด้วย ทฤษฎีเบื้องต้นของวงจรสวิตชิ่ง พีชคณิตบูลีน ตารางความจริง การลดรูป สมการบูลีนโดยใช้แผนที่ของคาร์โนห์และวิธีของควิน-แม็คคลัสคี แผนภาพเวนน์ลอจิกเกท ฟลิปฟล็อป วงจรนับ วงจรเรจิสเตอร์แบบเลื่อน และการออกแบบวงจรไร้ความจําและวงจรมีความจํา
This course covers the following topics: basic theory of switching circuit, Boolean algebra, truth table, Boolean equation reduction by Karnaugh mapping and Quine–McCluskey method, Venn diagram, logic gates, flip-flops, counters, shift registers, and combinational and sequential circuit design.

วิชานี้เราจะได้เรียนลึกลงไปถึงที่มาของคอมพิวเตอร์ หลายคนอาจเคยได้ยินว่าคอมพิวเตอร์มีแค่ 0 กับ 1 เท่านั้น ทำไมต้องสองเลขนี้ด้วย และสองเลขนี้มาได้ยังไง เราจะได้เรียน Logic Gate ซึ่งจะใช้ความรู้ตรรกศาสตร์ที่เราได้เรียนทั้งหมด บางคนที่ชอบบ่นว่าท่องจำไปทำไม จริงและจริงได้จริง จริงและเท็จได้เท็จ ถ้าได้เรียนวิชานี้จะต้องขอบคุณอาจารย์คณิตศาสตร์ม.ปลายและวิชา Introduction to Logic ที่เรียนตอนปี 1 เทอม 1

ในช่วงสัปดาห์แรกๆ จะเป็นเรื่องของเลขฐาน เคยสงสัยมั้ยว่าทำไมมีเลขฐานเยอะแยะเต็มไปหมด ฐาน 2 ฐาน 8 ฐาน 16 มีไว้ทำไม เกี่ยวข้องกับคอมพิวเตอร์ยังไง ในช่วงหลังๆ จะเป็นเรื่องของวงจร Logic Gate ต่างๆ AND OR NOT ไม่พอ ยังมี EXCLUSIVE OR เพิ่มมาอีก และในสัปดาห์ท้ายๆ จะได้รู้ว่าเมื่อนำวงจรพวกนี้มาต่อกัน สามารถนำไปสร้างเป็นหน่วยเก็บข้อมูลอย่าง RAM หรือหน่วยประมวลผลอย่าง CPU ได้ด้วย

อาจารย์ผู้สอนวิชานี้เก่งมากๆ ถามอะไรตอบได้ เราจะได้เรียนอย่างเข้มข้นสุดๆ เพื่อไม่ให้เราลืม อาจารย์เลยจัดสอบ Quiz ทุกคาบก่อนเริ่มเรียนตั้งแต่สัปดาห์แรกเลยทีเดียว ทำให้รุ่นพี่คนนึงในคณะถึงกับลั่นว่า “กูจะลาออก!” เรื่องนี้เป็นตำนานประจำ SE รุ่น 8 ถ้าอยากรู้รายละเอียดเพิ่มเติม ลองถามรุ่นพี่ได้


ชื่อวิชา : Digital Circuit Laboratory (ปฏิบัติการวงจรดิจิตอล)
ชื่อเล่น : DC Lab (ดีซีแล็บ)
วิชาบังคับก่อน : ไม่มี
คำอธิบาย : การศึกษาเชิงปฏิบัติการที่มีเนื้อหาสัมพันธ์กับวิชา 13016204 การออกแบบวงจรดิจิตอลและวงจรตรรก
Practical study related to 13016204 DIGITAL CIRCUIT AND LOGIC DESIGN

“Building digital logic circuits make you have huge respect for the guys who design CPU circuits…” — มิตรสหายท่านหนึ่ง

เราเรียน Digital Circuit ภาคทฤษฎี บางทีอาจจะไม่เห็นภาพ ไม่เข้าใจว่าเกทแต่ละประเภทเอาไว้ทำอะไร เราจะเรียน xxx ไปเพื่ออะไรกัน เรียนแต่ทฤษฎีอาจจะไม่เข้าใจ เลยต้องมีการเรียนภาคปฎิบัติเพิ่มเติม

ในชั่วโมงแล็บ อาจารย์จะให้เราต่อแผงวงจรของจริง ใช้ชิปซีรีัส์ IC74 มาต่อเกทตามที่โจทย์กำหนด ใครไม่เคยทดลองแล็บไฟฟ้าตอนมัธยมปลายก็จะได้ลองของจริงเลย บางคนบอก โห ยากจัง อาจารย์เข้าใจจุดนี้ดี เลยให้ทำเป็นคู่ สองหัวดีกว่าหัวเดียว จะแบ่งหน้าที่ยังไงก็ตามสบายเลย คนนึงคิดคำนวน อีกคนต่อวงจรก็ได้ (แต่เวลาสอบ สอบเดี่ยวนะครับ ฝึกต่อไว้ก็ดี)

ตอนเรียนทฤษฎี มันจะถูกต้อง 100% ถ้าเราไม่ได้คำนวนผิด แต่ตอนทำแล็บ เราจะรู้ว่าบางครั้งบอร์ดไม่แน่น สายไฟหลวม ต่อสายไฟสลับด้าน ลืมจ่ายไฟ หรือแม้กระทั่งลืมเปิดสวิตซ์ก็มี ก็ต้องแก้ปัญหากันไป ตอนทำแล็บไม่เท่าไร ถ้าเกิดขึ้นตอนสอบมันจะไม่สนุกเลย บางครั้งเราคำนวนถูกแล้ว แต่สายไฟหลวม ทำให้ผลลัพธ์ไม่เป็นไปตามที่เราต้องการ ซึ่งจะเสียเวลามากๆ ต้องระวังให้ดี


ชื่อวิชา : Object-Oriented Concepts and Programming (แนวคิดและการเขียนโปรแกรมเชิงวัตถุ)
ชื่อเล่น : C++ (ซีพลัสพลัส)
วิชาบังคับก่อน : C Programming
คำอธิบาย : วิชานี้ศึกษาหลักการพื้นฐานของแนวคิดและวิธีเชิงวัตถุ และเรียนรู้การเขียนโปรแกรมเชิงวัตถุด้วยภาษา C++ หัวข้อที่ศึกษาประกอบด้วย อ็อบเจคต์ คลาส การซ่อนองค์ประกอบภายใน การสืบทอด การสืบทอดจากหลายคลาส โพลีมอร์ฟิสซึม คลาสนามธรรม สมาชิกในคลาสแบบสถิต การสร้างและการทําลายอ็อบเจคต์ เนมสเปส การโอเวอร์โหลดฟังก์ชัน การทดแทนฟังก์ชันการจัดการข้อยกเว้น เทมเพลตคลาส และ คอนเทนเนอร์คลาส รวมทั้งศึกษาเทคนิคเบื้องต้นของการตรวจสอบความถูกต้องและแก้ไขจุดบกพร่องของโปรแกรมเชิงวัตถุ
This course introduces object-oriented concepts and methodology and studies object-oriented programming using C++. Topics covered include objects, classes, encapsulation, inheritance, multiple inheritance, polymorphism, abstract classes, static class members, object construction and destruction, namespaces, function overloading, function overriding, exception handling, template classes, and container classes. This course also covers basic techniques for testing and debugging object-oriented programs.

เทอมที่แล้วเราได้เรียนการเขียนโปรแกรมภาษา C และ Python สำหรับเทอมนี้จะเน้นเรื่องของการเขียนโปรแกรมเชิงวัตถุ (OOP) ด้วยภาษา C++ (ส่วนภาษา Java จะเรียนตอนปี 2 เทอม 1 ในวิชา Advance Object-Oriented Programming) OOP เป็นวิธีการเขียนโปรแกรมอีกรูปแบบหนึ่ง ที่มองโปรแกรมที่เราเขียนเป็นวัตถุ (Object) โดยจะช่วยลดการเขียนโค้ดที่ซ้ำซ้อนลงไปได้มาก

ภาษา C++ จะมีความคล้ายกับภาษา C แต่ลูกเล่นเยอะกว่า และยากกว่า โดยในรอบนี้เขาถือว่ามีความรู้การเขียนโปรแกรมพื้นฐานแล้ว ดังนั้นเรื่องพื้นฐานอย่างเช่น Loops จะสอนแค่สัปดาห์แรกเท่านั้น หลังจากนั้นจะเป็นการเรียนเกี่ยวกับ OOP และฟีเจอร์ระดับสูงของภาษา C++

ตอนปี 1 เทอม 1 วิชา Python อาจารย์จะแนะนำ 3 เสาหลักของ OOP (Encapsulation, Inheritance, Polymorphism) แบบเบื้องต้นไปแล้ว ในวิชานี้เราจะเข้าใจคอนเสปพวกนี้อย่างลึกซึ้งมากขึ้น แล้วจะรู้ว่า OOP ทำให้เราเขียนโปรแกรมขนาดใหญ่ได้ง่ายขึ้นเยอะ


ชื่อวิชา : Object-Oriented Programming Laboratory
ชื่อเล่น : C++ Lab (ซีพลัสพลัส แล็บ)
วิชาบังคับก่อน : C Programming
คำอธิบาย : การศึกษาเชิงปฏิบัติการที่มีเนื้อหาสัมพันธ์กับวิชา 13016209 แนวคิดและการเขียนโปรแกรมเชิงวัตถุ
Practical study related to 13016209 Object-Oriented Concepts and Programming

การเขียนโปรแกรม ถ้าเราไม่เคยฝึกเขียนของจริงก็ไม่มีประโยชน์ ดังนั้นแล็บจึงเป็นสิ่งสำคัญที่ขาดไม่ได้

แล็บ C++ จะเหมือน C เกือบทุกอย่าง เพียงแต่โปรแกรมเราจะมีขนาดใหญ่ขึ้น ซับซ้อนขึ้น สิ่งเดียวที่แตกต่างคือมีโจทย์เสริมปราบเซียนมาให้ลองทำด้วย สำหรับใครที่ชอบความท้าทาย ชอบการแก้ไขปัญหา โจทย์เสริมเหล่านี้จะทำให้เราปวดหัวเล่นๆ ฝึกสมอง ซึ่งบางทีน่าทำมากกว่าโจทย์ธรรมดาเสียอีก บางทีวิธีแก้โจทย์เสริมมีมากกว่า 1 วิธี แลกเปลี่ยนวิธีทำกับเพื่อนก็สนุกไปอีกแบบ ได้เห็นว่าเพื่อนมีอัลกอลิทึมแปลกๆ เจ๋งๆ ซึ่งบางทีเราก็คิดไม่ถึง อารมณ์แบบว่าคิดได้ไงวะ เจ๋งสาส อารมณ์ประมาณนี้


วิชาเรียนในเทอมนี้ จะมีสิ่งที่เรียกว่า วิชาบังคับก่อน (Prerequisite) พูดง่ายๆ คือต้องเรียนวิชาที่กำหนดให้ผ่านก่อน ถึงจะลงทะเบียนเรียนวิชานี้ได้ ถ้าใครดรอปไปก่อนหรือติด F ในวิชาก่อนหน้า จะไม่สามารถลงทะเบียนเรียนต่อได้ ดังนั้นตั้งใจเรียนไว้ก่อนจะดีกว่า

ขอจบการรีวิวเพียงแค่นี้ ถ้าใครมีคำถาม สามารถถามได้ที่คอมเมนต์ด้านล่าง หรือ https://coregame-th.com/contact สำหรับหลังไมค์ครับ