COE2SI4: Data Structures, Algorithms, and Discrete Mathematics

Calendar

Introduction to abstraction of procedures and data. Algorithms, recursive and iterative implementations, analysis of computational complexity. Abstract data types. Arrays and structures, pointers to arrays. Polynomial and sparse matrix abstract data types. Stacks, queues, and lists. Trees, hashing, sorting, and searching. Graphs and paths. Basic set theory, Boolean algebra, combinatorics, elements of discrete probability theory.

Objectives

Understanding of the ideas of abstraction of procedures and data and analysis of computational complexity. Handling of the fundamental data types such as arrays, structures, arrays of structures, lists, stacks, queues, trees and graphs. Getting experience in using abstract data types on a computer. Learning basic concepts of discrete mathematics, elements of combinatorics, and discrete probability theory.

Course Loading

three 1-hour lectures per week, one 2-hour tutorial per week

Assessment

Assignments - 15%

Midterm - 35%

Final Exam - 50%

Textbook