các bài toán tối ưu tổ hợp. Sinh viên cũng có sẽ có khả năng phân tích hiệu quả của các cấu trúc dữ liệu và thuật toán giải các bài toán khác nhau.
Objectives The course provides students with basic knowledges of the data structures and algorithms needed for developing algorithms and constructing softwares for real-life problems.
After completing this module, students are able to implement and use basic data structures such as stacks, queues, lists, trees and hash tables. Students have the ability to design and implement programs that use data structures to construct complex information systems. Students understand and implement basic search and sorting algorithms such as quick sorting, heap sorting, hash tables and basic algorithms on graphs. Students will be equipped with techniques to build basic algorithms such as recursion and division to solve combinatorial problems. Students have the ability to analyze complexity in asymptotic notations for basic data structure and algorithm settings.
Nội dung: Khái niệm về cấu trúc dữ liệu và thuật toán; các mẫu thiết kế thuật toán đệ quy, đệ
quy có nhớ, đề quy quay lui, chia để trị, tham lam, quy hoạch động; các cấu trúc dữ liệu về danh sách liên kết, ngăn xếp, hàng đợi, cây, cây nhị phân; các thuật toán sắp xếp chèn, sắp xếp lựa chọn, sắp xếp nổi bọt, sắp xếp trộn, sắp xếp nhanh, sắp xếp vun đống; tìm kiếm nhị phân, cây nhị phân tìm kiếm, bảng băm, thuật tốn tìm kiếm xâu mẫu. Cấu trúc dữ liệu biểu diễn đồ thị, thuật tốn tìm kiếm theo chiều rộng, tìm kiếm theo chiều sâu, thuật tốn tìm cây khung nhỏ nhất, đường đi ngắn nhất.
Contents: Definition of data structures and algorithms; algorithm paradigms with recursive, backtracking, divide and conquer, greedy, dynamic programming; list, stack, queue, trees, binary trees; sorting algorithms with insertion sort, selection sort, bubble sort, merge sort, quick sort, heap sort; binary search, binary search trees, hash tables, string matching algorithms; data structures for graphs, breadth-first search, depth-first search, algorithms for shortest path, minimum spanning tree.
IT3040 Kỹ thuật lập trình (Programming technique)
- Khối lượng (Credits): 2(2-0-1-4) - Học phần tiên quyết (Prerequisite): IT1110
- Học phần học trước (Pre-courses): (IT3011/IT3010), IT3100 - Học phần song hành (Corequisite Courses): Không (None)
Mục tiêu: Học phần Kỹ thuật lập trình trang bị cho sinh viên những kỹ thuật cơ bản nhất mà
một lập trình viên chuyên nghiệp cần phải nắm vững để viết mã nguồn hiệu quả. Các kiến thức giảng dạy góp phần quan trọng giúp sinh viên phát triển được các ứng dụng phần mềm chất lượng cao trong thực tế. Học phần này trang bị cho sinh viên các kỹ thuật lập trình quan trọng như quản lý bộ nhớ, hàm, kỹ thuật đệ quy, kỹ thuật sử dụng các cấu trúc dữ liệu để giải quyết vấn đề, kỹ thuật viết mã nguồn hiệu quả, kỹ thuật lập trình phịng ngừa, kỹ thuật gỡ rối, tinh chỉnh mã nguồn, phong cách lập trình. Học phần có các buổi thực hành nhằm rèn luyện và nâng cao kỹ năng lập trình của sinh viên.
Objectives: The Programming Engineering module equips students with the most basic techniques that a professional programmer needs to master in order to efficiently write code. Teaching knowledge plays an important role in helping students develop high-quality applications in practice.
This module equips students with important programming techniques such as memory management, functions, recursive techniques, techniques to use data structures to solve problems and effectively write code, preventive programming techniques, debugging techniques, source code refinement, programming style. The course has practical sessions to help students improve their programming skills.