DPR 212 - Data Structures & Algorithms

Course Description

This course focuses on problem analysis, algorithm design and refinement, and computer programming. Complex data structures such as stacks, heaps, and trees as well as sorting and searching techniques are examined. Software engineering methods and structured style as well as object-oriented programming are emphasized. Upon successful completion of this course, students should be able to: Develop programs using good programming style and object-oriented programming techniques to implement algorithms and data structures. Use simple and advanced data types including linked lists, stacks, queues, trees, heaps and sets. Analyze the efficiency of various algorithms for looping, recursion, sorting, and searching. Use abstract data types, containers and class templates, encapsulation, inheritance, and polymorphism. Evaluate simple systems concepts such as input/output buffers, parameter passing mechanisms, and memory management. Use documentation or a knowledge base to resolve techical issues. Apply the software development process to design, write, test, and debug computer programs using an object-oriented language.

Credit Hours: 4
Lecture Hours: 3
Lab Hours: 2

Course Prerequisites: MAT 135 or MAT 152 and DPR 204 or DPR 210