never_can_tell
Senior Member
Cho nên mình mới nói dạy thế nào phải tùy vào người học là ai. Những sách bạn đưa là thuộc dạng đi sâu vào giải thuật rồi, cái khác không nói nhưng nếu như bạn đưa những thứ này vào dạy sinh viên năm nhất ở VN mình khẳng định hơn 90% là ko thể tiếp thu được. Vì sao mình dám nói thế là bởi nhìn vào đối tượng sách hướng tới, cụ thể mình xem prerequisites của cuốn "Introduction To Algorithms" bạn đưa thì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
![]()
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
![]()
QUT - Unit
This unit teaches you classical data structures and algorithms used in software development and the fundamental principles for analysing the time efficiency of algorithms, allowing you to distinguish software solutions that can process large amounts of data or perform complex calculations...www.qut.edu.auAlgorithms and Data Structures - my.UQ - The University of Queensland, Australia
Programs, majors and courses details for current students at The University of Queensland.my.uq.edu.au
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ì
"You should have some programming experience. In particular, you should understand recursive procedures and simple data structures such as arrays and linked list.
You should have some facility with proofs by mathematical induction ..."
Mình nói thật số lượng học sinh chuẩn bị vào ĐH hiểu rõ đệ quy cũng như có tư duy quy nạp theo như yêu cầu của sách ở VN là ko nhiều, ít ra ở thời của mình thì là như thế. Trường chuyên may ra còn khả dĩ, chứ trường trường chắc cả trăm ko nổi 1 code được 1 back-tracking solution khi đang là học sinh.
Mô hình hóa là cách biểu diễn vấn đề, sao lại cần phải nắm vững hết lý thuyết DSA mới làm được? Giống như 1 bài toán thực tế, có thể mô hình bằng sơ đồ, bằng phương trình v.v... Hay giờ cho 1 con sông chẳng hạn, cần dự đoán có lũ hay ko thì trong số vô vàn chỉ số như lượng mưa, sức gió, vận tốc dòng chảy abc xyz thì lấy chỉ số gì ra đo, đo ở chỗ nào, là bề mặt hay giữa, đo ở vị trí nào, đầu sông hay cuối sông. Logic nào để có phản ánh chính xác lũ? Mô hình hóa là dựa trên tư duy bình thường ở high level mà ko cần kiến thức thủy lực gì hết, ví dụ đo tôi sẽ đo ở nơi nhiều dòng chảy hội tụ bởi lưu lượng nước nơi đó là lớn nhất, chẳng hạn vậy.
Hay lấy ví dụ tin học cho dễ hiểu đi, bài toán xếp hậu chẳng hạn. 1 trong những cách mô hình hóa tự nhiên nhất là dùng 1 mảng 2 chiều để thể hiện. Nhưng sau 1 hồi thì nhận thấy trên 1 cột tối đa 1 hậu nên chỉ cần mảng 1 chiều là đủ thể hiện rồi. Những thứ như thế mình nghĩ chả cần học DSA cũng nhận ra.
Còn tại sao lại phải dạy mô hình hóa, là bởi khâu này thực ra rất quan trọng mà ở VN, hay ít ra cá nhân mình thấy rất quan trọng nhưng ở thời của mình nó hoàn toàn bị bỏ qua. Mô hình là luôn được cho sẵn ko bao giờ cần động não tại sao có mô hình đó.
Cái này bọn Tây coi trọng hơn rất nhiều. Như mình đang dạy cu 7t nhà mình lập trình với "Scratch" đây. Tiếng là lập trình nhưng ko hề có dòng code nào, toàn bộ là high level.
) không phải seeder chứ e tham gia khoá c++ với dsa bên đó, giờ là lập trình thi đấu để nuôi mộng bigtech thì thấy dạy ổn nhất trong đám dạy ở VN rồi, bài tập thì siêu khó nên e mới bảo phen thớt tham khảo chương trình rồi tự về biên soạn thêm