thanhdonguyen01
Member
Chương trình ổn hay ko luôn phụ thuộc vào đối tượng người học là ai. Nó có thể có lý với người này nhưng lại ko có lý với người khác. Mà mấy thằng cu lên ĐH cũng có this có that. Cho nên bước đầu tiên là phải test trình độ của bọn nó, cái gì đã tốt và cái gì đang thiếu.
Cái đầu tiên nên dạy theo mình là tư duy mô hình hóa vấn đề và giải quyết ở high level, là thứ bọn Tây nó rất chú trọng nhưng ở VN thì gần như là ko dạy.
Ví dụ dạy học sinh cách suy ra kết quả của bài toán bằng cách tổng hợp kết quả của những bài toán tương tự nhỏ hơn. Có tư duy đấy rồi bọn nó tự suy ra quy hoạch động.
Hay như discrete structure mình được học ở Tây thì những thứ như graph, topology, circle v.v... bạn đề cập dù có trong nội dung môn học đấy nhưng lại ko phải mục tiêu chính của môn học này. Mục tiêu cơ bản của môn đấy là tại sao lại nghĩ tới việc lấy graph làm model cho problem để đưa ra solution, chẳng hạn thế.
Nhìn dưới góc độ đó thì Dijkstra có thể tự suy ra cách implement từ BFS. Hay bài toán xếp hậu chẳng hạn, nếu modeling problem bằng cách coi mỗi state của bàn cờ là 1 đỉnh, mỗi lần đặt thêm 1 quân hậu là 1 cạnh, thì problem này hoàn toàn có thể giải bằng BFS.
Chứ nếu như ko có tư duy ấy, thì Dijkstra là 1 bài, Dijkstra thay đổi 1 tí kiểu như tìm đường đi ngắn nhất nhưng phải qua ít nhất 4 đỉnh chẳng hạn có khi thành bài mới. Xếp hậu là 1 bài mà mã đi tuần là 1 bài khác, trong khi nếu đã có tư duy thì kể cả có là 1 quân quái thai nhảy zigzag thì vẫn là nó, vẫn implement bằng BFS thôi. Ngay như trong cái list bạn đưa mấy cái thuật toán sinh để mà chạy được thì cũng vẫn ... BFS. Mọi thứ vẫn chỉ là thằng A, chỉ đơn giản 1 cái là A quay phải, 1 cái là A quay trái hay A trồng cây chuối, ví dụ thế.
Mình nghĩ có tư duy ở high level rồi thì mới dạy đến kỹ thuật cụ thể vì như thế ko cần dạy nhiều mà sau đấy người học có thể tự học tự nâng cao trình độ. Cho nên, nếu dạy cho người mới mình sẽ dạy như sau.
1) Tư duy quy nạp
2) Lý thuyết đồ thị và cách mô hình hóa
3) Các thể loại mô hình hóa khác.
Bước tiếp theo là dạy đến các cách biểu diễn phổ biến của các thể loại trên trong tin học (có thể biểu diễn bằng Array, List v.v...) cũng như cách implement các thuật toán cơ bản.
Cuối cùng mới dạy kỹ thuật cụ thể, đầu tiên chắc là đệ quy.
Sau đó có thể là 2 con trỏ, tìm kiếm nhị phân v.v...
Cuối cùng mới tới đánh giá độ phức tạp. Bởi đơn giản nếu ko đưa được ra solution thì lấy gì mà đánh giá. Đánh giá và tối ưu theo cá nhân mình nên đứng cuối.
Tối ưu có thể dạy cuối
Nhưng đánh giá độ phức tạp nó là nằm trong phần đầu của DSA, chính trong chương trình của các trường (lớn) của nước ngoài.
Analysis of Algorithms
![algs4.cs.princeton.edu](/proxy.php?image=https%3A%2F%2Falgs4.cs.princeton.edu%2Fapple-touch-icon.png&hash=ce3fd500d07a161e3253979c98d372fa&return_error=1)
![ocw.mit.edu](/proxy.php?image=https%3A%2F%2Focw.mit.edu%2Fcourses%2F6-006-introduction-to-algorithms-spring-2020%2F5a62336c0a97b276d6141b0b7f070b5b_6-006s20.png&hash=c998553d90f4a5843fc347a813320467&return_error=1)
Lecture Notes | Introduction to Algorithms | Electrical Engineering and Computer Science | MIT OpenCourseWare
Full lecture and recitation notes for 6.006 Introduction to Algorithms.
ocw.mit.edu
Introduction To Algorithms
This title covers a broad range of algorithms in depth, yet makes their design and analysis accessible to all levels of readers. Each chapter is relatively self-contained and can be used as a unit of study. The algorithms are described in English and in a pseudocode designed to be readable by...
books.google.com.vn
![www.qut.edu.au](/proxy.php?image=https%3A%2F%2Fwww.qut.edu.au%2F__data%2Fassets%2Fimage%2F0007%2F909781%2Fqut-logo-og-1200.jpg&hash=4fc48a5070cc2524857d0a13b801a60e&return_error=1)
Unit
This unit teaches you the fundamental principles used to assess the efficiency of software algorithms, allowing you to distinguish solutions that can process large amounts of data or perform complex calculations effectively from those that run unacceptably slowly or not at all. In this unit you...
www.qut.edu.au
Algorithms and Data Structures - my.UQ - The University of Queensland, Australia
Programs, majors and courses details for current students at The University of Queensland.
Mà cái mô hình hoá vấn đề để giải 1 bài toán to là sau khi nắm vững hết lý thuyết DSA hết rồi mới cho giải quyết chứ không biết tí gì DSA thì phân tích bài toán kiểu gì
Last edited: