Muhammad Qasim Pasta

personal website

Data Structures and Algorithms (Fall 2017)

Course Objectives:

This course has two main objectives: to make students proficient in the use of common data structures and to introduce students to functional programming. This is a programming intensive course.

Data Structures are at the heart of all efficient software. While transparent to the user, the choice of data structure plays a crucial role in the adoption of software. In addition, the study and design of data structures pose an interesting intellectual challenge.

Specifically, this course aims to:

  • impart proficiency in basic data structures and related operations
  • introduce higher level data structures
  • develop critical judgment regarding the choice of data structures for a given situation
  • develop skills to implement basic data structures using any high-level language

Course Learning Outcome:

On successful completion of this course, a student will:

  1. perform basic operations on elementary data structures: list, tree, stack, queue.
  2. perform basic operations on higher level data structures: trees, and graph
  3. choose an efficient data structure for a given problem
  4. reason about the trade-off between data structure efficiency and programmer effort
  5. implement the above data structures and supporting operations in any high-level language
  6. implement a moderately complex project in any high-level language

Poster Exhibition