Data Structure & Algorithm

Course Notes to

DATA STRUCTURE AND ALGORITHM

Dr. Dao NamAnh

OBJECTIVE

Data Structures and Algorithms are fundamental to programming and to understanding computation. The purpose of this module is to provide students with a coherent introduction to techniques for using data structures and some basic algorithms, and with the tools for applying these techniques to computational problems. Teaching and learning methods include lectures and reading material which describe techniques for analyzing algorithms and applications of data structures, and a problem sheet which gives students an opportunity to practice problem solving.

PREREQUISITES

Prrogramming language C/C++ or Java

COURSE OUTLINE

Introduction to Data Structures and Analysis of Algorithms

Bài giảng Khóa học

CẤU TRÚC DỮ LIỆU VÀ THUẬT GIẢI

Ts. Đào NamAnh

MỤC ĐÍCH

Môn học cấu trúc dữ liệu và giải thuật cung cấp cho sinh viên một khối lượng lớn các kiến thức cơ bản về các kiểu dữ liệu trừu tượng và các phép toán trên kiểu dữ liệu đó. Khóa học này tập trung vào việc nghiên cứu các kiểu dữ liệu có cấu trúc có kích thước không đổi hoặc thay đổi trong ngôn ngữ lập trình. Ngoài ra còn giới thiệu các giải thuật chung quanh các cấu trúc dữ liệu này như cách tổ chức, thực hiện các phép toán tìm kiếm, sắp xếp thứ tự nội, sắp xếp thứ tự ngoại.

ĐIỀU KIỆN

Kỹ thuật lập trình trên ngôn ngữ C/C++ hoặc Java

NỘI DUNG MÔN HỌC

Giới thiệu về Cấu trúc dữ liệu và Thuật giải


GRADING

A combination of discussions and short tests (30%),

Project Presentation (70%).

Project defense at 13:00 Saturday, 13/04/2013 in room K203.

RECOMMENDED TEXTS


ĐÁNH GIÁ

Các bài kiểm tra ngắn (30%),

Bảo vệ Đồ án(70%).

Điểm bảo về đề tài xem tại đây

Bảo vệ 13:00 thứ Bảy ngày 13/4/2013 tại K203.

TÀI LIỆU THAM KHẢO

Required

    • Algorithm in C, Third Edition by Robert Sedgewick, Addison-Wesley, 1998
    • Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne, 2011
    • Giải thuật và lập trình, Lê Minh Hoàng, Đại Học Sư Phạm, 2002
    • Cấu trúc dữ liệu và giải thuật, Đinh Mạnh Tường.

Recommended

    • Data Structures and Algorithm Analysis in Java 2nd (or 3rd) Edition, by Mark Alan Weiss, Addison-Wesley.
    • Data structures and algorithms with object oriented design patterns in Java by Bruno Press, Wiley, 1999.
    • Data Structures and Algorithm Analysis by Clifford Shaffer, Prentice-Hall, 1996.
    • This book has good coverage of data structures and algorithm analysis in C++. It has excellent descriptions of a number of data structures.
    • Data Structures, Algorithms, and Applications in Java by Sartaj Sahni, McGraw-Hill, 1998.
    • Data Structures and Algorithms by Alfred Aho, John Hopcroft, and Jeffrey Ullman, Addison-Wesley, 1983.
    • This is one of the all-time classics, written in Pascal.
    • Fundamentals of Data Structures in C++ by Ellis Horowitz, Sartaj Sahni, and Dinesh Mehta, 2006.
    • Update of another classic.
    • Abstract Data Types by Nell Dale and Henry Walker, D.C. Heath and Company, 1996.
    • A high-level view of data structures and algorithms, with no programming language specified. A very worthwhile and modern text with an alternative viewpoint.

INTERESTING LINKS

CÁC TRANG WEB HỮU ÍCH

Data Structure and Algorithm

    • The NIST dictionary of algorithms and data structures.
    • FreeTechBooks' list of on-line data structures and algorithm books.
    • Softpanorama’s old but wide ranging link page for data structures and algorithms.
    • Algosort’s link page to algorithm pages.
    • The Standard Template Library (STL) contains implementations of many of the algorithms and data structures studied in class (e.g., merging, quicksort, heaps, and red-black trees), as well as several more primitive, and extremely useful data structures. Silicon Graphics' STL page
    • LEDA is a library of data types and algorithms for combinatorial computing, implemented in C++.
    • Demo of sorting algorithms

C and C++

Java