
Tổng quan môn học
•Số tiết: 30 lý thuyết + 15 thực hành (3 tín chỉ)
•Môn học cung cấp các kiến thức cơ bản về:
−Các cấu trúc dữ liệu, tức là phương pháp tổ chức dữ liệu
trong bộ nhớ máy tính.
−Phân tích thuật toán (giải thuật), tức là ước lượng thời gian
chạy của các thuật toán.
•Thực hành dùng ngôn ngữ lập trình C++ và môi trường phát
triển Dev-C++.
−Vì môn Nhập môn lập trình (học trước môn này) chưa giảng
dạy một số kiến thức C++ cần thiết, môn học này sẽ có một
buổi giới thiệu bổ sung các kiến thức lập trình đó.
2

Đánh giá môn học
•Điểm quá trình: 50%
−Chuyên cần: 20% (điểm danh)
−Bài tập lập trình: 40% (giao trong các buổi thực hành)
−Kiểm tra giữa kỳ: 40% (tự luận, 35 phút, 2-3 câu hỏi, không dùng
tài liệu)
•Điểm thi kết thúc học phần: 50%
−Trắc nghiệm trên phần mềm iTest
−60 phút, 40 câu hỏi, không dùng tài liệu
•Điều kiện dự thi kết thúc học phần:
−Không vắng mặt quá 20% x 30 = 6 tiết LT = 3 buổi LT
−Không vắng mặt quá 20% x 15 = 3 tiết TH = 1 buổi TH
−Có tham dự bài kiểm tra giữa kỳ và đạt 4 điểm trở lên
4

Nội dung môn học
•Nội dung chính:
−Bổ sung kiến thức lập trình C++
−Phân tích thuật toán
−Vector, danh sách liên kết, ngăn xếp, hàng đợi
−Cây nhị phân tìm kiếm, cây AVL
−Bảng băm
−Hàng đợi ưu tiên
−Sắp xếp
•Vì thời lượng môn học có hạn, một số nội dung không được đưa
vào giảng dạy, bao gồm đồ thị (có trong môn Toán rời rạc) và các
kỹ thuật thiết kế thuật toán (có trong môn Thuật toán ứng dụng).
5



