CS1332 provides an overview of basic data structures and algorithms on those structures. Searching, Sorting, linear, non-linear and randomized structures are covered. Students are expected to understand these structures and algorithms, to implement them in a programming language – but not to prove properties about them.
- Develop more skills in individual Java programming
- Work with common data structures used in software development by coding their low-level implementation
- Arrays, ArrayLists,
- LinkedLists (Singular, Doubly, Circular)
- Stacks, Queues, Deques, Priority Queues
- Various Trees: Binary, Binary Search, AVL, Splay, Heaps, 2-4 Trees, etc…
- Hash Maps/Tables; External Chaining and Various Probing Techniques
- Graphs and their Associated Algorithms
- Become familiar with common algorithms on these data structures
- Sorting Algorithms: Bubble, Insertion, Selection, Cocktail Shaker, Merge, Quick, Radix etc...
- Pattern Matching Algorithms: Brute force, Boyer-Moore, KMP, Rabin-Karp
- Graph Algorithms: Dijkstra’s Shortest Path and multiple MSTs
- Memoization & Dynamic Programming Approaches
- Work with Big-O notation, allowing good choices about the appropriate data structure and algorithm to use for a particular programming problem
- Improve one's ability to test and debug programs
- Homework 01 - Lists, Stacks, Queues
- Homework 02 - Tree Structures
- Homework 03 - Hashing
- Homework 04 - Sorting
- Homework 05 - Pattern Matching
- Homework 06 - Graph Algorithms
treewalker error: File -> Settings -> Tools -> Checkstyle -> Set "Checktyle version" to 8.14