Cấu trúc dữ liệu và giải thuật

INT 2203 2. Học kì I, 2015

Giáo viên: Trần Thị Minh Châu, chauttmAT vnu.edu.vn, văn phòng: 315 E3. Vũ Huy Hiển, hienvuhuyAT gmail.com.

Thông báo

Tài liệu

  • [GT] Đinh Mạnh Tường. Cấu trúc dữ liệu và thuật toán, NXB Đại học Quốc gia Hà Nội (mượn thư viện)
  • Kevin Wayne, Robert Sedgewick, Algorithms, 4th Ed.
  • Java SE 8 Specification (để tra cứu về các thư viện trong Java)
  • Giáo trình Lập trình hướng đối tượng (mượn ở thư viện), bản thảo 2013 để tự học Java. (sẽ có bản mới cập nhật nội dung với Java 8)
  • Bài tập lập trình Java cơ bản. (cập nhật 1/9/2015) trích dịch từ Kevin Wayne, Robert Sedgewick, Introduction to Programming in Java.

    Lưu ý:

  • Trừ khi đề bài cho phép một cách tường minh, việc sao chép bài của người khác sẽ dẫn đến cấm thi .
  • Bài nộp muộn sẽ không được tính
  • Cần làm các bài tập tại nhà để chuẩn bị cho bài kiểm tra trên lớp và giờ thực hành vào tuần sau. Giờ thực hành được dành để sinh viên hỏi bài và giáo viên chấm bài tập của tuần trước

    Đánh giá:

  • Thi cuối kì (viết): 60%
  • Điểm thành phần (lập trình: bài tập hàng tuần và thi tuần 13): 40%

    Lịch học:

    Tuần Bài giảng / Tài liệu đọc Bài tập về nhà Thực hành
    1: 31/8-4/9
    Tự học Chương 1. IntroJava. BT1: Cài Java 8 ở máy cá nhân theo hướng dẫn tại đây.
    Thực hành theo chương 1 tài liệu đọc. Bài tập mục 1.8 IntroJava.
    Bài nào khó quá có thể tham khảo tại đây. Nhưng bạn hãy cố học từ đó để các bài sau tự làm được nhé.
    -
    2: 7-11/9
  • 1. Giới thiệu môn học
  • Chương 2,3,4. IntroJava.
  • Thư viện và chương trình
  • Tạo kiểu dữ liệu
  • Cài và học sử dụng IntelliJ
    BT2: Bài tập chương 2,3,4 IntroJava. Không phải làm hết, bỏ qua các bài dễ/chán, học lời giải mẫu của bài khó.
    Kiểm tra BT1
    3: 14-18/9
    2. Bài toán Union-Find
    (video, tiếng Việt, demo, code)
    Học Git + Bitbucket.
    BT3 Bitbucket repository tên ctdlgt-bt03
    Kiểm tra BT2, demo 01 bài "xa" nhất mà bạn tự làm được
    4: 21-25/9
    3. Phân tích thuật toán
    (video, tiếng Việt, demo, code)
    BT4 Bitbucket repository tên ctdlgt-bt04 Kiểm tra BT3
    5: 28-30/9
    4. Stack và Queue
    (video, tiếng Việt, demo, code)
    BT5 Bitbucket repository tên ctdlgt-bt05 Kiểm tra BT4 (ít nhất là bài 2a)
    6: 5-9/10
    4a. Danh sách liên kết
    (code)
    Làm tiếp phần queue trong BT5 Kiểm tra BT5
    7: 12-16/10
  • LinkedList. Bài demo
  • Đệ quy
  • BT6 Bitbucket repository tên ctdlgt-bt06 Kiểm tra BT5
    8: 19-23/10
  • 5. Selection sort và Insertion sort
    (video, tiếng Việt, demo, code)
  • 6. Mergesort
    (video, tiếng Việt, demo, code)
  • BT7 Bài kiểm tra (GV chọn một bài tập lập trình tương tự một trong các bài trong các bài BT3-BT6, nộp cuối giờ)
    9: 26-30/10
  • Mergesort (tiếp)
  • 7. Quicksort
    (video, tiếng Việt, demo, code)
  • BT8 Bài kiểm tra (GV chọn một bài tập lập trình tương tự một trong các bài trong các bài BT7, nộp cuối giờ)
    10: 2-6/11
  • 8. Priority Queue (cây nhị phân đầy đủ, heap)
    (video, tiếng Việt, demo, code)
  • BT9
    11: 9-13/11
  • 9. Elementary Symbol Tables (map)
    (video, tiếng Việt, demo, code)
  • 9. Binary Search Trees (cây tìm kiếm nhị phân)
    (video, tiếng Việt, demo, code)
  • BT10 Kiểm tra BT9
    12: 16-20/11
  • 10. Balanced Search Trees (2-3 trees)
    (video, tiếng việt (chưa có), demo, code)
  • 11. Hash tables (bảng băm)
    (video, tiếng Việt, demo, code)
  • Ôn thi giữa kì (thi lập trình tại giờ thực hành)
  • Sort: insertion, selection, quicksort
  • Random shuffle
  • Dùng linked list để làm bag, queue, stack.
  • Cây nhị phân tìm kiếm, search, insert, inorder traverse
  • 13: 23-27/11
  • 12. Undirected Graphs (Đồ thị vô hướng, DFS, BFS.)
    (video, tiếng Việt, demo, code)
  • BT11 Thi giữa kì tại phòng máy
    14: 31/11-4/12
  • 13. Directed Graphs (Đồ thị có hướng, DFS, BFS.)
    (video, tiếng Việt, demo, code)
  • 14.MST (Cây bao trùm nhỏ nhất)
    (video, tiếng Việt (đang dịch), demo, code)
  • BT12
    15: 7-11/12
    Cây bao trùm (tiếp) 15.Shortest paths (Đường đi ngắn nhất)
    (video, tiếng Việt, demo, code)
    Ôn tập
    Nghỉ thực hành