1. Trang chủ
  2. » Tất cả

Ctt101 – cấu trúc dữ liệu giải thuật copy of (cdio) de cuong ctdl gt v5 0

7 1 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Ctt101 – cấu trúc dữ liệu giải thuật copy of (cdio) de cuong ctdl gt v5 0
Trường học Trường Đại học Khoa Học Tự Nhiên, ĐHQG-HCM
Chuyên ngành Cấu trúc dữ liệu và Giải thuật
Thể loại đề cương môn học
Định dạng
Số trang 7
Dung lượng 239,08 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trường Đại học Khoa Học Tự Nhiên, ĐHQG HCM Khoa Công Nghệ Thông Tin Đề cương môn học Cấu trúc dữ liệu và Giải thuật Trang 1/7 ĐỀ CƯƠNG MÔN HỌC CTT101 – Cấu trúc dữ liệu & Giải thuật 1 THÔNG TIN CHUNG[.]

Trang 1

ĐỀ CƯƠNG MÔN HỌC

CTT101 – Cấu trúc dữ liệu & Giải thuật

1 THÔNG TIN CHUNG

Tên môn học (tiếng Việt): Cấu trúc dữ liệu và Giải thuật

Tên môn học (tiếng Anh): Data structures and Algorithms

Thuộc khối kiến thức: Cơ sở ngành

Số tiết lý thuyết: 45

Số tiết thực hành: 30

Số tiết tự học: 60 Các môn học tiên quyết:

Các môn học trước:

Không

Kỹ thuật lập trình

2 MÔ TẢ MÔN HỌC (COURSE DESCRIPTION)

Nội dung của môn học gồm 2 phần: CTDL và Giải thuật

Với nội dung CTDL, môn học trình bày tất cả các cấu trúc dữ liệu cơ bản, cần thiết nhất mà người lập trình viên phải nắm vững để vận dụng trong quá trình viết ứng dụng, như: danh sách liên kết, ngăn xếp, hàng đợi, hàng đợi ưu tiên, cây nhị phân tìm kiếm (BST, AVL, Red-Black, AA), B-cây, bảng băm Với nội dung Giải thuật, ngoài những giải thuật đi kèm với từng CTDL nêu trên, môn học còn trình bày các giải thuật cần thiết khác như: sắp xếp, tìm kiếm, tìm kiếm chuỗi (KMP, Rabin Karp), giải thuật nén (Run-Length, Huffman, LZW)

Sinh viên sẽ học lập trình bằng C/C++, bao gồm: làm thế nào để ước lượng, chọn lựa, và sử dụng các thư viện để cài đặt các giải thuật và cấu trúc dữ liệu khác nhau Môn học cung cấp các kỹ thuật phân tích giải thuật cơ bản; phân tích gần đúng độ phức tạp của giải thuật; ký hiệu O, Theta và big-Omega; ôn lại và thực hiện sâu hơn kỹ thuật đệ qui; các giải thuật hiệu quả cho những cấu trúc dữ liệu rời rạc như: cây, danh sách liên kết, bảng băm,… Bên cạnh đó, sinh viên sẽ học cách cài đặt hiệu quả các giải thuật; cũng như làm thế nào để vận dụng các kỹ thuật như: chia để trị, đệ qui quay lui,…

Trang 2

3 MỤC TIÊU MÔN HỌC (COURSE GOALS)

Sinh viên học xong môn học này có khả năng :

Mục tiêu Mô tả (mức tổng quát ) CĐR CDIO

của chương trình

G1 Hiểu và sử dụng được các cấu trúc dữ liệu, bao gồm: khái niệm,

các tính chất, ưu điểm, hạn chế, tình huống sử dụng và các giải thuật liên quan của từng cấu trúc dữ liệu cụ thể

1.1.1 1.3.1

G2 Phân tích và xây dựng được cấu trúc dữ liệu mới (trên cơ sở kết

hợp, thay đổi các cấu trúc dữ liệu đã học) để phù hợp với yêu cầu thực tế của một phần mềm

1.3.1 2.1 2.2 2.3.1 2.4.1 2.4.3 4.1.4 4.1.5 G3 Cài đặt được các CTDL và giải thuật cơ bản đã được trình bày

trong phần nội dung môn học bằng C/C++

1.2.1 1.3.1 G4 Phân tích được ưu điểm và hạn chế của các cấu trúc dữ liệu

khác nhau, từ đó chọn lựa ra được cấu trúc dữ liệu và giải thuật

phù hợp cho một ứng dụng cụ thể

1.3.1

G5 Đọc hiểu tài liệu tham khảo tiếng Việt, tiếng Anh được cung

cấp sẵn

4.4.3

G6 Tổ chức làm việc nhóm, phân công công việc, kỹ năng trình

bày và báo cáo

4.2 4.3.1 4.3.2 3.1 3.3.1 3.3.2 2.3.1 2.3.4

Trang 3

4 CHUẨN ĐẦU RA MÔN HỌC

Chuẩn

đầu ra

Mô tả (Mức chi tiết - hành động) Mức độ (I/T/U)

G1.1 Áp dụng được kiến thức khoa học cơ bản trong môn học Sử

dụng một số kiến thức toán để tính toán độ phức tạp của giải

thuật, hay cài đặt giải thuật

T, U

G1.2 Hiểu và sử dụng được các cấu trúc dữ liệu, bao gồm: khái niệm,

các tính chất, ưu điểm, hạn chế, tình huống sử dụng và các giải

thuật liên quan của từng cấu trúc dữ liệu cụ thể

I, T, U

G2.1 Áp dụng được các kiến thức nghề nghiệp, nghiệp vụ (nói chung

trong xã hội) vào các chủ đề trong môn học Có vận dụng các

bài toán thực tế vào việc cài đặt những ứng dụng minh họa

CTDL

I, T, U

G2.2 Suy nghĩ và giải quyết vấn đề Có thể tự định nghĩa cấu trúc dữ

liệu mới (trên cơ sở kết hợp, thay đổi các cấu trúc dữ liệu đã

học) để phù hợp với yêu cầu thực tế của một phần mềm

I, T, U

G2.3 Phân tích và xây dựng được cấu trúc dữ liệu mới (trên cơ sở kết

hợp, thay đổi các cấu trúc dữ liệu đã học) để phù hợp với yêu

cầu thực tế của một phần mềm

T, U

G3.1 Cài đặt được các cấu trúc dữ liệu và thuật toán bằng C/C++ I, T, U

G4.1 Phân tích được ưu điểm và hạn chế của các cấu trúc dữ liệu

khác nhau, từ đó chọn lựa ra được cấu trúc dữ liệu và giải thuật

phù hợp cho một ứng dụng cụ thể

T, U

G5.1 Hiểu chính xác các thuật ngữ tiếng Anh của môn học Giải thích

và diễn đạt được các thuật ngữ tiếng Anh chuyên ngành của

môn học Phát âm đúng các thuật ngữ, sử dụng chính xác theo

ngữ cảnh

I, T, U

G5.2 Đọc và hiểu được các tài liệu tham khảo bằng tiếng Anh do GV

cung cấp

I, T

G6.1 Kỹ năng viết và nói, kỹ năng trình bày (tiếng Việt) liên quan đến

các chủ đề của môn học

U

Trang 4

G6.2 SV sẽ làm seminar, bài tập nhóm và thuyết trình theo nhóm U

G6.3 Nhận biết và vận dụng được các kiến thức văn hóa, đạo đức

nghề nghiệp, trách nhiệm và các khía cạnh luật lệ liên quan đến

các chủ đề trong môn học Ý thức tuân thủ bản quyền, tài liệu

tham khảo Ý thức tự làm, trung thực trong báo cáo kết quả Ý

thức tuân thủ kế hoạch làm việc đã đặt ra

T, U

G6.4 Thảo luận, tranh luận, phản biện, phê phán trên cơ sở lý luận

khoa học Thảo luận qua các seminar

U

G6.5 Làm việc nhóm, tổ chức và quản lý Làm việc nhóm trong khi

học ở lớp hay bài tập nhóm hay seminar

U

5 KẾ HOẠCH GIẢNG DẠY LÝ THUYẾT

Tuần Tên chủ đề Chuẩn

đầu ra

Hoạt động dạy/

Hoạt động học (gợi ý) và Hoạt động đánh giá

1 Chương 1 Tính chi

phí của thuật toán

Chương 2 Các

thuật toán sắp xếp

(Sorting

Algorithms)

G5.1 G5.2 G2.1 G1.1 G3.1

- Tính chi phí của thuật toán

- Big-O, Big-, Big-

- Ôn lại Quick Sort

- Heap sort

- Radix sort

Tự ôn tập các thuật toán: Selection sort, Bubble sort, Merge sort

2 Chương 3 Các

thuật toán tìm kiếm

(Searching

Algorithms)

G5.1 G5.2 G6.1 G6.2 G1.1 G2.2 G6.5 G3.1

- Ôn lại Sequential search

- Ôn lại Binary search

- Brute Force

- Rabin Karp

- KMP

Bài tập nhóm (N1) tại lớp

Bài tập CC1-Moodle

3 Ôn tập & rèn luyện G6.3

G2.2 G3.1

- Đệ qui

- Các kiến thức của chương

1 và chương 2

Bài tập CC2 – tại lớp

Bài tập CN1 - Moodle

4 Chương 4 Các khái

niệm cơ bản

G5.1 G5.2 G1.2

- Kiểu dữ liệu (Data Type)

- Kiểu dữ liệu cơ bản (Basic Data Type)

Tự đọc tài liệu: DSLK, stack,

Trang 5

G4.1 - Kiểu dữ liệu có cấu trúc

(Structured Data Type)

- Kiểu dữ liệu trừu tượng (ADT – Abstract Data Type)

- Cấu trúc dữ liệu (Data structure)

- Đánh giá Cấu trúc dữ liệu

queue

5 Chương 5 Các cấu

trúc dữ liệu

G5.1 G5.2 G6.4 G6.5 G3.1 G1.2

- Ôn lại Danh sách liên kết

- Ôn lại Stack, Queue

- Hàng đợi ưu tiên (Priority Queue)

Bài tập nhóm (N2) tại lớp

Tự đọc tài liệu: khái niệm cơ bản về cấu trúc cây

Bài tập CC3-Moodle

6 Chương 5 Các cấu

trúc dữ liệu

G5.1 G5.2 G6.3 G2.2 G3.1 G1.2 G2.3

- Cây nhị phân tìm kiếm (Binary Search Tree)

- Cây AVL

Tự đọc tài liệu: cây đỏ-đen (Red-Black tree)

Bài tập CN2 - Moodle

7 Chương 5 Các cấu

trúc dữ liệu

G5.1 G5.2 G2.2 G1.2

- B-cây

- Ôn tập cây đỏ-đen

Bài tập CC4 – tại lớp

Tự đọc tài liệu: cây AA (AA tree)

8 Chương 5 Các cấu

trúc dữ liệu

G6.3 G2.2 G6.4 G6.5 G3.1 G1.2

- Bảng băm – Hash Table

- Ôn tập cây AA

- Ôn tập các kiến thức của chương 4

Bài tập nhóm (N3) tại lớp

Bài tập CN3 - Moodle

9 Kiểm tra giữa kỳ G2.2

G3.1

10 Chương 6 Các

thuật toán nén dữ

liệu

G3.1 - Nén Run-Length Encoding

- Nén Huffman tĩnh

11 Chương 6 Các

thuật toán nén dữ

liệu

G2.1 G6.3 G2.2 G6.4 G6.5

- Nén LZW

- Ôn tập các thuật toán nén

Bài tập nhóm (N4) tại lớp

Bài tập CN4 - Moodle

Trang 6

G3.1 G4.1

12 Ôn tập & rèn luyện G6.1

G6.2

Tổng hợp các kiến thức của môn học

Bài tập nhóm (N5) tại lớp

Bài tập CC5-Moodle

# Kiểm tra cuối kỳ G2.2

G1.2 G2.3 G4.1

6 KẾ HOẠCH GIẢNG DẠY THỰC HÀNH (nếu có)

Các bài tập thực hành bao gồm:

- CC1, CC3, CC5

- CN1, CN2, CN3, CN4, CN5

Kế hoạch thực hành được thể hiện cụ thể trong phần [5] ở trên

7 ĐÁNH GIÁ

Mã Tên Mô tả (gợi ý)

Các chuẩn đầu ra được đánh giá

Tỉ lệ (%)

CC1

CC3

CC5

Bài tập chuyên cần thực hiện qua hệ thống Moodle

Max 120 phút làm bài, có thể là lập trình và/hoặc trắc nghiệm hiểu bài Tiêu chí:

- Đầy đủ

- Đúng

- Đúng hạn

G6.1 G6.2 G6.3 G1.1 G2.2 G3.1 G1.2

4% 4% 4%

CC2

CC4

Bài tập chuyên cần thực

hiện tại lớp

Max 20 phút làm bài, ưu tiên câu hỏi trắc nghiệm hay tự luận ngắn Tiêu chí:

- Đầy đủ

- Đúng

4% 4%

tập lập trình Làm tại lớp

G6.1 G6.2 G2.2

4%/bài

Trang 7

Max 30 phút làm bài Có thể trình bày kết quả

G6.4 G6.5 G2.3 G4.1

CN1

CN2

CN3

CN4

Bài tập lập trình tổng hợp, bao gồm kiến thức của 1 hay nhiều chương

Bài làm và nộp qua Moodle, làm riêng theo từng cá nhân Thời gian làm bài max 1 tuần

L2.1 G6.3 G2.2 G3.1 G1.2 G2.3 G4.1

5%/bài

KTGK Kiểm tra giữa kỳ Thực hành tại phòng lab G1.1

G2.2 G3.1

10%

G1.2 G2.3 G4.1

30%

8 TÀI NGUYÊN MÔN HỌC

Tài liệu tham khảo

a Mark Allen Weiss, Data structures and Algorithm Analysis in C (Second Edition),

Addison-Wesley, 1991

b Thomas H.Cormen, Charles E Leiserson, Ronald L Rivest, Introduction to Algorithms, The

MIT Press and McGraw-Hill Book Company, 1990

c Dương Anh Đức, Trần Hạnh Nhi – Cấu trúc dữ liệu, Trường ĐH KHTN – ĐHQG Tp HCM

d Đinh Mạnh Tường, Cấu trúc dữ liệu & Thuật toán, Nhà xuất bản khoa học và kỹ thuật, 2000

Tài nguyên khác

Phần mềm hay công cụ hỗ trợ thực hành:

a Ngôn ngữ lập trình: C++, viết ở chế độ console hay GUI (tùy chọn)

b Công cụ lập trình: có thể sử dụng Visual Studio 6 trở lên, đề nghị Visual Studio 2012

9 CÁC QUY ĐỊNH CHUNG

 Sinh viên không được tính điểm chuyên cần nếu thiếu quá 50% số bài kiểm tra chuyên cần

 Sinh viên cần tuân thủ nghiêm túc các nội quy và quy định của Khoa và Trường

 Đối với bất kỳ sự gian lận nào trong quá trình làm bài tập hay bài thi, sinh viên phải chịu mọi hình thức kỷ luật của Khoa/Trường và bị 0 điểm cho môn học này

- HẾT -

Ngày đăng: 25/03/2023, 07:20

🧩 Sản phẩm bạn có thể quan tâm

w