Number: | CS216 |

Name: | Data Structures & Algorithms |

Description: | This course introduces students to basic data structures and their applications such as: linear structures (arrays, lists, stacks, queues) and non-linear structures (trees, graphs); sequential and linked storage representation methods; sorting and searching algorithms; and techniques of algorithmic analysis. This course covers measuring algorithmic complexity (O-Notation); searching and sorting algorithms and their complexity; tree and graph algorithms and their complexity; classes of algorithms, such as divide-and-conquer, backtracking, greedy, probabilistic, etc. and computational complexity; the classes P and NP. |

Credit(s): | 3 |

Offered (DAY schedule): | |

Instructor Permission Required: | N |

Pre-Requisite(s): | |

CS218 or CS225 |

Understand how to analyze algorithms | |

"Be able to apply the following basic data structures (among others) to solve problems: Stacks, Queues, Lists, and Trees. | |

"Understand how merge, quick, bucket, and radix sorts work. | |

"Be able to apply the greedy method, divide-and-conquer, and dynamic programming to algorithm design. |

Term | Year | Title | ISBN | Author | Edition | Publisher | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|

S | 2016 | DATA STRUCTURES+ALGORITHMS IN JAVA | LAFORE | 2ND 03 | PEARSON | ||||||||

F | 2014 | DATA STRUCTURES+ALGORITHMS IN JAVA | LAFORE | 2ND 03 | |||||||||

F | 2013 | DATA STRUCTURES+ALGORITHMS IN JAVA | LAFORE | 2ND 03 | |||||||||

S | 2012 | Data Structures Using C++ | 0324782012 | Malik | 2 | Cengage Learning | |||||||

F | 2010 | ALGORITHM DESIGN | 0-471-38365-1 | GOODRICH | WILEY | ||||||||

S | 2008 | ALGORITHM DESIGN | GOODRICH | WILEY | |||||||||

S | 2006 | ALGORITHM DESIGN | GOODRICH | 2 | |||||||||

S | 2003 | Algorithm Design | 0-471-38365-1 | Goodrich | 1 | Wiley |