Apr 30, 2026  
2026-2027 Undergraduate Catalog 
    
2026-2027 Undergraduate Catalog
Add to Catalog (opens a new window)

CSCI 312 - Data Structures and Algorithms


3 Credits
This course is a continuation of object-oriented programming that investigates advanced topics in technically oriented programming. Algorithmic analysis using computational complexity and big-O notation will be applied to classic data structures, including but not limited to arrays, vectors, linked lists, stacks, queues, trees, binary trees, binary search trees, and graphs. The computational complexity of classic searching and sorting algorithms will also be investigated.
Prerequisite(s): CSCI 232 , CSCI 234 , or CSCI 239  
Course Learning Outcomes:
1. Utilize sorting algorithms to order objects contained within linear data structures.
2. Utilize algorithms to search for objects within linear and non-linear data structures.
3. Implement a solution that utilizes the appropriate data structures that meets the goals of a specific program.
4. Analyze the strengths and weaknesses of linear data structures including arrays, vectors, linked lists, Stacks, and Queues.
5. Compare and contrast the use of Trees, Binary Search Trees, and Graphs.
6. Discuss the asymptotic complexity of a retrieval and insertion operation on a given data structure utilizing Big-O notation.
7. Utilize tools and methodologies that integrate security best practices throughout the software development life cycle to mitigate risks, reduce attack surfaces, and increase the quality of software development efforts.



Add to Catalog (opens a new window)