CSCI 3320/8325
Data Structure and Algorithms



Prerequisites:

Satisfactory grades in CSCI 1620 and MATH 2030.

Objectives:

The main objective of this course is to obtain a thorough understanding of how computer systems can be used to solve large scale problems efficiently. To achieve this goal, several advanced data structures and basic techniques of algorithm design will be introduced and analyzed. The course covers several topics that include the revision of linear data structures, the introduction of non-linear data structures and their applications, sorting, searching and the main concepts of complexity theory.

Teaching Methodology:

The coverage will be primarily through lectures, with homework assignments and reading projects.

Grading:

Standard grading scheme will be used:

95 % and above    A+
90% - 94.9%        A
85% - 89.9%        B+
80% - 84.9%        B
75% - 79.9%        C+
70% - 74.9%        C
65% - 69.9%        D+
60% - 64.9%        D
Below 60%           F

The breakup is as follows:

• Two in-class exams (100 pts each)
• Final exam (150 pts)
• Quizzes (20 pts)  
• Programming assignments & Homework (200 pts) 
• Reading project (50 pts): Required for graduate students and optional for undergraduate students (can be used to improve overall grade percentage)

Credit Hours:

This course is worth three credit hours. The graduate section will not count towards any graduate degree in Computer Science. It may however count towards a graduate degree in other disciplines if approved by the appropriate graduate program committee.

Project Ideas:

Possible project ideas:

  • Advance graph algorithms

  • Data Structures for database applications

  • Generic algorithms

  • Data structures for solving transportation problems 

  • Advanced searching techniques 

  • Data mining 

  • Parallel algorithms 

  • Scheduling techniques 

Text Book:

Data Structures and Algorithm Analysis in C++, by Weiss. (Chapters 1-9 plus Sections 10.1 and 10.2)

References:

  • Fundamentals of Data Structures in Pascal, by Horowitz and Sahni.

  • Fundamentals of Computer Algorithms, by Horowitz and Sahni.

  • Introduction to Algorithms, by Cormen, Leiserson and Rivest.

  • Design and Analysis of Algorithms, by Aho, Ullman and Hopecraft.

  • Algorithms, by Robert Sedgwick.

  • Introduction to Graph Algorithms, by Ali and Sherwani.