Data Structures and Algorithms - INT 2043
K54Đ
Semester II, 2011
Announcements:
- There will be no programming assignments. Marks given for lab exercises will instead contribute to 20-30% of the final result.
- Midterm exam will be on April 9 (NOT April 11).
- (7/3/2011). Do sự khác biệt về chương trình học giữa hai ngành Công nghệ thông tin và Điện tử viễn thông. Nội dung của khóa học này được thiết kế đặc biệt cho ngành Điện tử viễn thông, không phù hợp yêu cầu của ngành Công nghệ thông tin. Các sinh viên ngành Công nghệ thông tin tham gia khóa này chỉ có thể học dự thính chứ không được lấy tín chỉ.
- Welcome! Lectures starts on February 14. Labs start next week. Information on lab sections will be posted here as soon as it is available.
Classes
Lectures: Mon 2-3, 107-G2
Lecturer: Trần Thị Minh Châu (Office: 309 E3)
Teaching Assistant: Tạ Việt Cường
Labs:
Thu 3-5, 201-G2, Instructor: Ngô Thị Duyên (duyenntATvnu.edu.vn)
Sat 3-5, 201-G2, Instructor: Tạ Việt Cường (vcuong_ctinATyahoo.com)
Objectives:
The main goal of this course is to introduce the basic data structures and algorithms. This course will also help students to develop skills in the design and analysis of algorithms and data structures.
Although the course examples are given in C++, this is not a course in C++. Students are expected to be able to program in C/C++ for their assignments and laboratory exercises.
Outcomes:
At the end of the course, students should be able to:
- understand the basic data structures and algorithms.
- analyse the complexities of software.
- select appropriate data structures and algorithms for applications at hand.
Resources
- Đinh Mạnh Tường. Cấu trúc dữ liệu và giải thuật.
- [AIC] Robert Sedgewick, Algorithms in C++, 3rd edition
- [DSAJ] Michael T. Goodrich and Roberto Tamassia. Data structures and Algorithms in Java (4th edition).
- Trần Minh Châu, Lê Sỹ Vinh, Hồ Sỹ Đàm, Giáo trình lập trình căn bản C++ (draft version)
- C++ quick reference and tutorial: Cplusplus.com (highly recommended!)
Course Description:
The following list includes the main topics covered in the course:
- Analysis of algorithms
- Recursion
- Stacks, queues and linked lists
- Trees, search orders
- Priority queue and heaps
- Binary search trees, AVL trees
- Hashing
- Sorting: quicksort, mergesort
- Graph traversal: breadth and depth first
- Shortest path, minimum spanning trees
- Fast string matching
- Dynamic programming
Assessment (tentative):
- Final exam: 50%, closed-book, written test
- Midterm exam: 20%, closed-book, written test
- Weekly lab exercises / homework: 30%, arbitrarily selected submissions will contribute to the mark.
Note:
- Plagiarism will result in immediate failure of the course!
- Late submissions of assignments (without valid excuse) will not be accepted.
- Lab work should be shown to the lab instructor during that week or the week after, i.e. only one week late at the latest.
ALL work must be electronically submitted to the course website (detailed instruction will be given later)
- Homework is given after each topic.
Students should submit their solutions in hand-written form at the beginning of the following lecture.
Schedule:
Week | Lecture | Readings/Notes | Homework | Lab | Assignments |
1 | Introduction 4up C++ Review 4up | Programming style guide | Hw01 | | |
2 | Algorithm Analysis 4up |
DSAJ Ch.4 Optional Experimental setup
Sample: vector.cpp |
Hw02
|
Lab01 |
|
3 |
Recursion
(4up)
|
DSAJ Ch.3 |
Hw03 |
Lab02 | |
4 |
Linked lists
(4up)
|
DSAJ Ch.3 |
Hw04 |
Lab03 | |
6 |
Stacks & queues
(4up)
|
DSAJ Ch.5 |
Hw05 |
Lab04 | |
7 |
Trees
(4up)
|
DSAJ Ch.7 |
Hw06 |
Lab05 | |
8 |
Binary Search Trees
(4up)
|
DSAJ Ch.10 |
Hw07 |
Lab05 (continue) | |
9 |
Midterm exam
|
|
|
| |
10 |
Sorting
(4up)
C++ Templates
|
DSAJ Ch.11 |
Hw08 |
Lab06 | |
11 |
Maps, Dictionaries, Hashing
(4up)
Sample code: map.cpp, multimap.cpp
|
DSAJ Ch.9 |
Hw09 |
Lab06(continued) | |
12 |
No lecture
|
|
|
| |
13 |
Graphs
(4up)
|
DSAJ Ch.13 |
Hw10: R-13.1,2,3,7,8,10. (DSAJ, Ch.13, p.864-867) |
Lab07 | |
14 |
Graphs (cont.)
|
DSAJ Ch.13 |
Hw10: R-13.12,14. (DSAJ, p.867) |
Lab07 | |
15 |
Graphs (cont.) Review
|
DSAJ Ch.13 |
No homework |
No lab | |