เคล็ดลับ
This course follows a typical computer science degree from the first program to machine learning. It starts with programming fundamentals และ discrete mathematics, then builds up: object-oriented design, data structures and algorithms, computer architecture, operating systems, databases and networks. Later parts cover algorithm design, the theory of computation and compilers, software engineering, and AI and machine learning.
Two habits matter more than any language. First, write and run code every week: reading a solution is not the same as producing one. Second, reason about cost. A university answer must say how the running time grows with the input, written as Big-O, and why the algorithm is correct, not only that it worked on one test.
Discrete maths can feel separate from programming. It is not. การพิสูจน์โดยการเหนี่ยวนำ is how you show a recursive function is right, and graphs are behind maps, networks and compilers.
-
1
พื้นฐานการเขียนโปรแกรม
- 1.1 หลักสูตรนี้คืออะไร และการใช้หลักสูตรนี้
- 1.1 ค่า ประเภท และการรับ/ส่งข้อมูลเข้า-ออก
- 1.2 การเลือก: การเลือกเส้นทาง
- 1.3 การทำซ้ำ: ทำอีกครั้ง
- 1.4 ฟังก์ชัน: ตั้งชื่องานครั้งเดียว
- 1.5 โครงสร้างข้อมูล: ลิสต์, ไดร์กชันนารี, ทูเปิล, เซ็ต
- 1.6 ไฟล์และความผิดพลาด
- 1.7 การแยกส่วน การทดสอบ และการแก้ไขข้อผิดพลาด
กำลังโหลด…
-
2
Discrete Mathematics
- 2.1 ตรรกะและการพิสูจน์
- 2.2 เซต ฟังก์ชันและความสัมพันธ์
- 2.3 การอุปถัมภ์และการเรียกซ้ำ
- 2.4 การนับและคอมบิเนทอริกส์
- 2.5 กราฟและต้นไม้
- 2.6 ความน่าจะเป็นแบบไม่ต่อเนื่อง
กำลังโหลด…
-
3
พื้นฐานของระบบคอมพิวเตอร์
- 3.1 เลขฐานสองและการเข้ารหัสข้อมูล
- 3.2 เกตตรรกะและองค์ประกอบดิจิทัลพื้นฐาน
- 3.3 ภาพรวมของหน่วยประมวลผลและหน่วยความจำ
- 3.4 คำสั่งเครื่อง
- 3.5 อินเทอร์เฟซของระบบปฏิบัติการ
- 3.6 เส้นทางในการคอมไพล์และรันโปรแกรม
กำลังโหลด…
-
4
การเขียนโปรแกรมเชิงวัตถุ
- 4.1 ออบเจกต์และคลาส
- 4.2 การห่อหุ้มข้อมูล (Encapsulation)
- 4.3 การประกอบและการสืบทอด
- 4.4 อินเทอร์เฟซและความหลากหลายทางพอลิมอร์ฟิซึม
- 4.5 ข้อยกเว้นและการจัดการข้อผิดพลาด
- 4.6 การทดสอบและคุณภาพของการออกแบบ
กำลังโหลด…
-
5
โครงสร้างข้อมูลและอัลกอริทึม
- 5.1 Asymptotic analysis
- 5.2 รายการ, สแตก และคิว
- 5.3 การแฮช (Hashing)
- 5.4 ต้นไม้และฮีป
- 5.5 กราฟและการสำรวจเส้นทาง
- 5.6 การจัดเรียง (Sorting)
- 5.7 การค้นหา (Searching)
กำลังโหลด…
-
6
สถาปัตยกรรมคอมพิวเตอร์
- 6.1 สถาปัตยกรรมชุดคำสั่ง
- 6.2 เส้นทางข้อมูลและการควบคุม
- 6.3 การ ?
- 6.4 ลำดับชั้นของหน่วยความจำ
- 6.5 อินพุต/เอาต์พุต
- 6.6 ความขนานและการประสิทธิภาพ
กำลังโหลด…
-
7
ระบบปฏิบัติการ
- 7.1 กระบวนการและเธรด
- 7.2 การจัดตาราง
- 7.3 การซิงโครไนซ์
- 7.4 หน่วยความจำเสมือน
- 7.5 ระบบไฟล์
- 7.6 การป้องกันและความปลอดภัย
กำลังโหลด…
-
8
ฐานข้อมูล
- 8.1 การสร้างโมเดลเชิงสัมพันธ์
- 8.2 พีชคณิตเชิงสัมพันธ์และ SQL
- 8.3 Normalisation
- 8.4 ดัชนีและแผนการสอบถาม
- 8.5 ธุรกรรมและการทำงานพร้อมกัน
- 8.6 ความปลอดภัยและการกำกับดูแลข้อมูล
กำลังโหลด…
-
9
เครือข่ายคอมพิวเตอร์
- 9.1 การวางชั้นและสถาปัตยกรรม
- 9.2 เลเยอร์ลิงก์และ IP
- 9.3 การส่งต่อข้อมูล
- 9.4 เลเยอร์ส่งต่อ (TCP/UDP)
- 9.5 โปรโตคอลระดับแอปพลิเคชัน
- 9.6 ความปลอดภัยของเครือข่าย
- 9.7 พื้นฐานของระบบแบบกระจาย
กำลังโหลด…
-
10
การออกแบบและวิเคราะห์อัลกอริทึม
- 10.1 สมการผลรวมและเครื่องมือวิเคราะห์
- 10.2 แบ่งแยกและพิชิต
- 10.3 Greedy algorithms
- 10.4 โปรแกรมพลวัต
- 10.5 การเพิ่มประสิทธิภาพกราฟ
- 10.6 การลดรูปและความซับซ้อนแบบ NP
กำลังโหลด…
-
11
ทฤษฎีเครื่องจักรและตัวแปลภาษา
- 11.1 เครื่องอัตโนมัติและภาษาปกติ
- 11.2 ภาษาแบบไม่จำกัดบริบทและทฤษฎีการวิเคราะห์โครงสร้าง
- 11.3 ความสามารถในการคำนวณ
- 11.4 Lexical analysis
- 11.5 การแยกองค์ประกอบ
- 11.6 การวิเคราะห์ความหมายและการสร้างโค้ด
กำลังโหลด…
-
12
วิศวกรรมซอฟต์แวร์
- 12.1 ข้อกำหนด
- 12.2 สถาปัตยกรรมและการออกแบบ
- 12.3 HCI และการเข้าถึงได้
- 12.4 การควบคุมเวอร์ชันและการทำงานเป็นทีม
- 12.5 การทดสอบและการบูรณาการอย่างต่อเนื่อง
- 12.6 ความปลอดภัยและจริยธรรมวิชาชีพ
- 12.7 โปรเจกต์ทีม
กำลังโหลด…
-
13
ปัญญาประดิษฐ์และเรียนรู้ของเครื่อง
- 13.1 ค้นหา
- 13.2 ความรู้และการให้เหตุผล
- 13.3 โมเดลความน่าจะเป็น
- 13.4 การถดถอยและการจำแนกประเภท
- 13.5 การปรับให้เหมาะสมและการเรียนรู้
- 13.6 การประเมินผลและการรั่วไหล
- 13.7 ความยุติธรรมและข้อจำกัด
กำลังโหลด…