Hỏi tài liệu giải thuật, cơ sở dữ liệu của đại học bách khoa hcm/đại học khtn

Chào cả nhà.
Chả là mình đang tự học các môn giải thuật và cơ sở dữ liệu mà không có bộ tài liệu chuẩn của các giảng viên đến từ các trường đại học bách khoa hoặc khoa học tự nhiên tp.hcm. Chẳng hay các bạn/em sinh viên đang học ở các trường trên còn giữ các bộ tài liệu slide bài giảng hoặc bộ đề ôn thi 2 môn đó thì có thể share lại cho mình được không ạ? Nếu có tài liệu mềm thì càng tốt, các bạn share giùm mình qua email [email protected] với. Còn tài liệu cứng thì mình có thể mua lại cũng được. Cảm ơn các bạn đã đọc qua và rất mong các bạn giúp đỡ mình. =)))))

Em sang KHTN Q.5 có quầy sách của trường cạnh cổng chính mua cuốn của thầy Trần Hạnh Nhi, còn csdl thì cuốn mới xuất bản của cô Đồng Thị Bích Thủy, về đọc vui thôi, vì muốn hiểu phải đi học trên lớp có slide hay hơn sách, phải biết con trỏ chứ đọc vô list, heap-sort, cây đỏ đen, phép chia, phép trừ em không tưởng tượng ra được nó chạy sao đâu. OOP, CSDL thì tự đọc sách được, giải thuật thì nên đi học đều. Thanks !

2 Likes

Cảm ơn anh nhiều vì em là dân ngoại đạo chứ không phải là sinh viên khoa cntt nên em chỉ có cách tự học thôi ạ. Dù sao cũng cảm ơn anh rất nhiều về thông tin trên =))))

Bạn nên đọc trực tiếp sách tiếng Anh nếu có thể. Sách tiếng Anh được viết bởi những gs nổi tiếng, được sử dụng trong nhiều trường đại học top của thế giới. Nguồn sách tiếng Anh cũng phong phú và cập nhật hơn, Anh ngữ cũng diễn đạt rõ ràng, dễ hiểu hơn . Trừ khi tiếng Anh không tốt thì bạn mới nên đọc sách tiếng Việt.
Sách về thuật toán và cấu trúc dữ liệu có quyển Algorithms của Sedgewick ở đây:
http://algs4.cs.princeton.edu/home/
Sách về cơ sở dữ liệu thì mình tìm free text được cuốn này:
https://opentextbc.ca/dbdesign01/

3 Likes

Cảm ơn anh nhiều. Em cũng thử đọc sách bằng tiếng Anh rồi mà rất khó hiểu do họ dùng các thuật ngữ chuyên ngành chứ không phải tiếng anh phổ thông. Nhưng em sẽ cố gắng đọc cho bằng được vậy vì sách tiếng việt nhiều khi đọc cũng không hiểu và không có hình ảnh minh họa sinh động như sách tiếng anh nên đọc rất mau nản =)))

1 Like

btw, sách algorithm của Sedgewick em cũng từng download về rồi nhưng là bản pdf rất khó đọc. Còn link anh gửi sắp xếp các chương và chuyên mục vào menu bên trái nên rất tiện theo dõi. Cảm ơn anh @Do_Thanh nhiều nhé! :smiley:

1 Like

Thấy em cũng siêng đọc thì chịu khó đọc CTDL & GT :
Algorithm in C - R.Sedgewick, Data_Structures_and_Algorithm_Analysis_in_C_-_Mark_Allen_Weiss.
Môn CTDL, Đồ Thị là 2 môn khó hiểu, khó cài đặt, học xong thì làm web, làm game cũng ít đụng tới GT khó vậy, mà do học rồi nên đọc tài liệu mấy môn kia dễ hiểu hơn.

1 Like

Sách thì sớm muộn gì cũng phải đọc r nếu muốn giỏi. Nếu mới bắt đầu đọc tài liệu học thuật mà tiếng Anh không khá lắm thì 1 cuốn như Algorithms mất cỡ 3 -4 tháng ( hồi tr mình cũng vậy ). Nhưng cái gì mới bắt đầu cũng khó, sau sẽ dễ dần đi khi bạn quen với từ vựng. Từ vựng chuyên ngành thường chỉ có 1 nghĩa nên đọc tài liệu nhiều dần sẽ quen, khi đó thì ok.

Có 1 cách khác nếu bắt đầu vất vả quá thì bạn nên kiếm slide lecture trên mạng + youtube về thuật toán đó. Trên slide các gs đã tóm gọn lại những ý chính cần quan tâm, vấn đề là slide tóm lược nên người học rồi đọc lại sẽ rất nhanh, nhưng với người mới bắt đầu sẽ có những chỗ k hiểu vì sao, cũng k có ai giải thích ( Trong sách thì tác giả giải thích rất cặn kẽ rồi, vì thế mà nó dày ( cỡ 1000 trang ) ). Lúc này bạn lên youtube search video về mô hình mà khái niệm đó hoạt động, sẽ dễ hình dung hơn. Cách này là bổ sung cho việc đọc sách, nhưng không loại trừ nó, vì trong sách sẽ không chỉ nói đến các ý chính mà còn đi sâu vào chi tiết nữa.
Đây là link slide của cuốn Algorithms: https://drive.google.com/open?id=0B6x9E5gYIdwub3ZsaGJIQ0Q0X00
Đây là 1 trang web diễn giải các thuật toán 1 cách trực quan, của các gs khoa khoa học máy tính của NUS ( Đại học Quốc gia Singapore ) thiết lập cho mục đích giáo dục : https://visualgo.net/en

P/s: Well, đúng là nếu chỉ làm web với minigame thì chẳng cần mấy đến cấu trúc dữ liệu & thuật toán, toán rời rạc, giải tích, đại số tuyến tính hay biểu thức chính quy thật. Cơ mà mấy thứ đó nó k phải cái có thể thay đổi xoành xoạch như công nghệ, ng ta đã dùng nó từ những ngày đầu tiên của khoa học máy tính, cách đây 70 - 80 năm, hay sớm nhất cũng 30 -40 năm rồi. Nó là cốt lõi của khoa học máy tính, mà nếu bạn đào sâu vào các hệ thống lớn, phức tạp, buộc bạn phải lập trình 1 cách tối ưu ( chẳng hạn như code của google, facebook, bloomberg không thể cứ gặp lỗi lại bới ra sửa được, vì hệ thống lớn nên việc phát hiện lỗi là khó và phức tạp, sửa lỗi cũng gây ảnh hưởng nặng bởi 1 dòng code không chỉ đứng riêng 1 mình nó mà còn liên quan đến những phần khác trong hệ thống sử dụng dòng code ấy nữa, cũng không thể để hệ thống chạy chậm rì hay kém bảo mật được, nên để giảm thiểu tối đa lỗi và đạt hiệu suất tối đa thì người ta phải tối ưu code ngay từ đầu, các công ty công nghệ lớn tự phát triển sản phẩm của mình thay vì gia công phần mềm như Việt Nam, họ có quy trình viết code rất nghiêm ngặt ), hay phát triển các công nghệ cao về Computer Vision, Machine Learning, xử lý ngôn ngữ, thì việc giỏi toán học & toán rời rạc là bắt buộc. Vấn đề ở đây là nếu bạn chỉ viết những ứng dụng rất nhỏ thôi thì chẳng có gì, nhưng nếu bạn tham gia vào việc phát triển công nghệ lõi thì đây là việc bắt buộc. Đòi hỏi chất lượng cao thì mức thu nhập của nhân lực đáp ứng chất lượng ấy cũng cao tương ứng, và với những người mình biết thì thu nhập của họ thường không dưới 100k$/năm.

4 Likes

Bao giờ thì học giải thuật mn, e đang học c cơ bản trên đại học

Bạn vui lòng hỏi giáo vụ hoặc lên khoa để biết thêm chi tiết. Mà câu này lạc đề rồi.

1 Like

bác không hiểu câu hỏi rồi, ý em là nên học giải thuật vào thời điểm nào, học xong lập trình cơ bản hay là giờ có thể học em biết năm sau kiểu j chẳng phải đk học nhưng muốn tham khảo trước

Học càng sớm càng tốt, có thể nói nó là thứ theo bạn suốt đời.

  1. Introduction to Algorithms
  2. The Art of Programming

Nhắc đến cơ sở dữ liệu và giải thuật chỉ cần đọc (1) là đủ. (2) nếu muốn tạo ra giải thuật mới.

1 Like

Theo thứ tự học phần của trường dạy KTLT -> HĐT(OOP) -> CTDL &GT, LTĐT . Học xong lập trình cơ bản rồi thì phải nắm Con Trỏ, đệ quy để biết cách duyệt Heap Sort, duyệt cây, thuật toán tìm đường, duyệt đồ thị (hiểu cách giải thuật). Nếu đã học qua OOP thì khả năng cài đặt, debug thuật toán tốt hơn (debug giải thuật chạy).

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?