Course Description
Introduction
A data structure is a way of organizing and storing data so that it can be processed efficiently by a computer program. The CSIEB0100 Data Structures course is therefore about the organization, storage and effective processing of data for computer programs.
The objectives of this course can be summarized as follows.
- Understand the concept of abstract data types(ADT) for data modeling.
- Study different types of data structures and the algorithms that operate on them.
- Learn how to choose appropriate data structures and algorithms for problem solving.
- Learn to evaluate the cost/performance of data structures and algorithms.
- Learn how to design new data structures and algorithms if necessary.
This is a lecture-oriented course with associated lab course CSIE@0700. It is strongly recommended that you take both courses at the same time. The sample code will be presented in C++. It is therefore a prerequisite of this class to be familiar with the C++ programming language. We will use the free Code::Blocks IDE in class. You may choose any C++ compiler/IDE you like.
Regular Topics
The topics to be covered in the lecture are listed as follows (**: topics to be covered depending on the time and progress):
- Data structures and abstract data types
- C++ review and algorithms
- Arrays and strings
- Stacks and queues
- Linked lists (single and doubly linked)
- Trees (basic facts, binary trees, search, heap)
- Graphs (basic facts, representations, shortest paths, spanning trees)
- Internal sorting (insertion sort, quick sort, merge sort, heap sort, radix sort)
- External sorting
- Hashing and maps (dictionary structures)
- Priority queues**
- Efficient search structures**
- Advanced data structures**
Special Topic(s)
Based on current practices and emerging trends, we will select one or two special topics to provide a brief overview (if time permits, of course).
This semester, the special topic we plan to talk about is data structures and AI (Artificial Intelligence):
- Relationship between DSA(Data Structures and Algorithms) and AIML(Artificial Intelligence and Machine Learning)
- Commonly used DSA for AIML
- How AIML can improve DSA
- It’s all about data!
Visit the syllabus page for detail information about the lecture schedule.
Administrative Information
Grading Policy: (may change if necessary and yes, it is 105%!!)
-
Homework/Programming Assignments 35%
-
Midterm Exam 35%
-
Final Exam 35%
Online Class Information: (if necessary)