|
Dec 26, 2024
|
|
|
|
CSCI 2082 - Data Structures and Algorithms Credits: 3 Hours/Week: Lecture 3 Lab None Course Description: This course builds on the foundation provided by the CSCI 1081 , CSCI 1082 sequence to introduce the fundamental concepts of data structures and the algorithms that proceed from them. Topics include generic programming, recursion, the underlying philosophy of object-oriented programming, fundamental data structures (including stacks, queues, linked lists, and trees) and the basics of algorithmic analysis. MnTC Goals None
Prerequisite(s): CSCI 1082 with a grade of C or higher. Corequisite(s): None Recommendation: None
Major Content
- Fundamental computing algorithms, e.g O(N log N) sorting algorithms; tree-processing algorithms
- Asymptotic algorithm complexity analysis
- Recursion: The concept of recursion, recursive mathematical functions, simple recursive procedures, divide-and-conquer strategies, recursive backtracking, implementation of recursion
- Algorithmic strategies, e.g. Brute-force algorithms; greedy algorithms; divide-and conquer; backtracking; branch-and-bound; heuristics; pattern matching and string/text algorithms; numerical approximation algorithms
- Generic programming and the use and creation of template data structures
- Fundamental data structures, e.g. Stacks, queues, linked lists, trees
- Fundamental computing algorithms, e.g simple searching and sorting algorithms (linear and binary search, selection, bubble, and insertion sort)
Learning Outcomes At the end of this course students will be able to:
- apply object-oriented principles to the development and use of algorithms and data-structures.
- calculate time and space complexity of data structures and algorithms and be able to use these complexities to choose the most appropriate for a given problem environment.
- create and use templated (generic) classes and methods.
- demonstrate knowledge of algorithms associated with different data structures.
- demonstrate knowledge of recursion by describing common applications and by effectively using it to solve problems.
- use appropriate algorithms to solve common computing problems.
- use fundamental data structures such as stacks, queues, linked-lists, and trees to represent data and meet application requirements.
Competency 1 (1-6) None Competency 2 (7-10) None Courses and Registration
Add to Portfolio (opens a new window)
|
|