Giới thiệu

CHÀO MỪNG CÁC BẠN SINH VIÊN ĐẾN VỚI MÔN HỌC

THUẬT TOÁN ỨNG DỤNG

(APPLICATION OF ALGORITHMS)

1- Tên môn học: Thuật toán ứng dụng

2- Bộ môn phụ trách môn học: Bộ môn Tin học & KTTT

3- Mã số môn học: CSE426

4- Số tín chỉ: 3 tín chỉ

5- Giảng viên:

TS. Lê Nguyễn Tuấn Thành, Bộ môn Công nghệ Phần mềm (email: thanhlnt [at] tlu [dot] edu [dot] vn)

6- Mô tả môn học:

+ Giúp cho sinh viên hiểu được quy trình ứng dụng thuật toán vào phát triển phần mềm trong thực tế

+ Các chủ đề cơ bản:

    • Các thuật toán tham lam và tìm kiếm vét cạn (Exhaustive search and greedy algorithms)

    • Chia để trị (divide-and-conquer)

    • Quy hoạch động (dynamic programming)

    • Sắp xếp (sorting)

    • Các thuật toán đồ thị cơ bản với BFS, DFS và ứng dụng

+ Các chủ đề nâng cao:

    • Các thuật toán đồ thị nâng cao

    • Các thuật toán Dijkstra, Prim, tập rời rạc (Disjoint-Set)

    • Đống nhị phân (Binary Heap)

    • Các thuật toán về xử lý chuỗi

+ Thực hành: môn học này tập trung vào thực hành, số lượng bài tập được tổ chức như sau

7- Mục đích:

Nâng cao kỹ năng thực hành của sinh viên trong việc giải quyết các vấn đề phần mềm (75% của khóa học)

Nhấn mạnh vào quy trình: phân tích – thiết kế – cài đặt và tối ưu thuật toán trong tiến trình phát triển phần mềm thực tế: từ vấn đề đến giải pháp

8- Yêu cầu với sinh viên:

Dự lớp đầy đủ (100% ở phòng máy tính – Samsung Lab)

Ngôn ngữ lập trình: C/C++/Java

Môi trường lập trình:

Không sử dụng thư viện STL để giải quyết bài tập (assignments)

Tham gia thảo luận, thực hành làm các bài tập

Kiểm tra và thi

9- Phân bổ thời gian:

Tổng số: 48 bài học (8 tuần, mỗi tuần 6 bài học)

Lý thuyết (theory): 24 bài học

Thực hành (practice): 24 bài học

Bài tập về nhà (homework): 20 bài

10- Phương pháp dạy:

Thuyết trình, có minh họa.

Nêu vấn đề, thảo luận tại lớp.

Học viên tự nghiên cứu, làm bài tập.

Thực hành trên các hệ thống đánh giá tự động (SPOJ, Themis...)

11- Tổ chức đánh giá môn học