# Data Structures & Algorithms

Effective Date:
Course
Discontinued
No
Course Code
CSIS 3475
Descriptive
Data Structures & Algorithms
Department
Computing Studies & Information Systems
Faculty
Credits
3.00
Start Date
End Term
201830
PLAR
Yes
Semester Length
75 hours
Contact Hours
Number of Contact Hours: (per week for each descriptor) Lecture: 2 Hours per week Seminar/Lab: 2 Hours per week Self-directed Lab: 1 Hour per week Total: 5 Hours per week
Method Of Instruction
Lecture
Seminar
Methods Of Instruction

Lecture, seminar, demonstration, and hands-on exercises in the lab

Course Description
The purpose of this course is to provide the students with solid foundations in the basic concepts of programming: data structures and algorithms. The main objective of the course is to teach the students how to select and design data structures and algorithms that are appropriate for problems that they might encounter. This course offers the students a mixture of theoretical knowledge and practical experience. The instructor will select a programming language such as C++/C# or Java to implement the solutions to the programming problems.
Course Content

1)       Algorithm Analysis

2)       Lists, Stacks, and Queues

3)       Trees

4)       Hashing

5)       Priority Queues

6)       Sorting

7)       Recursion

8)       Graph Algorithms

9)       Algorithm Design Techniques

10)   Advanced Data Structures and Implementation

Learning Outcomes

The student will be able to:

1)       discuss the fundamentals of algorithmic complexities;

2)       carry out elementary analysis of algorithm;

3)       determine the space and time complexity of an algorithm;

4)       select the appropriate abstract data types such as queues, stacks for a small but realistic problem;

5)       demonstrate more in-depth applications of other data types such as trees and graphs;

6)       design and implement different programs using appropriate data structures through the use of programming languages (such as C++ or C# or Java) at the discretion of the instructor;

7)       apply problem solving approaches such as “divide and conquer” in designing algorithms;

8)       be familiar with some of the fundamental sorting techniques.

Means of Assessment

Assignments (3-5)            25-40%
Tests/MidTerm                 30-45%
Final Examination             20-30%

Total                                 100%

Textbook Materials

Data Structures and Algorithm Analysis in C++, Mark Allen Weiss (Addison Wesley) Latest Edition or at the discretion of the instructor.

Prerequisites
Corequisites

None

Equivalencies

None

Which Prerequisite

None