3 ms·
I appreciate the idea, and that's a good list of broad topics (I'm currently working off a similar one[1]). But I'm actually talking about sub-topics within ea
by eric_bullington 12y ago
I appreciate the idea, and that's a good list of broad topics (I'm currently working off a similar one[1]).
But I'm actually talking about sub-topics within each of those broad topics. If you take a look at page 59 of the ACM pdf I linked to, you'll see the level of detail I'm hoping for. As just one example among many, see the algorithmic section, core tier 1 of 2 (followed by the corresponding learning objectives):
• Simple numerical algorithms, such as computing the average of a list of numbers, finding the min, max,
and mode in a list, approximating the square root of a number, or finding the greatest common divisor
• Sequential and binary search algorithms
• Worst case quadratic sorting algorithms (selection, insertion)
• Worst or average case O(N log N) sorting algorithms (quicksort, heapsort, mergesort)
• Hash tables, including strategies for avoiding and resolving collisions
• Binary search trees
o Common operations on binary search trees such as select min, max, insert, delete, iterate over tree
• Graphs and graph algorithms
o Representations of graphs (e.g., adjacency list, adjacency matrix)
o Depth- and breadth-first traversals
Learning Outcomes:
[Core-Tier1]
1. Implement basic numerical algorithms. [Usage]
2. Implement simple search algorithms and explain the differences in their time complexities. [Assessment]
3. Be able to implement common quadratic and O(N log N) sorting algorithms. [Usage]
4. Describe the implementation of hash tables, including collision avoidance and resolution. [Familiarity]
5. Discuss the runtime and memory efficiency of principal algorithms for sorting, searching, and hashing.
[Familiarity]
6. Discuss factors other than computational efficiency that influence the choice of algorithms, such as
programming time, maintainability, and the use of application-specific patterns in the input data.
[Familiarity]
7. Explain how tree balance affects the efficiency of various binary search tree operations. [Familiarity]
8. Solve problems using fundamental graph algorithms, including depth-first and breadth-first search. [Usage]
[1] And yes, I started Grossman's course on PL. It is excellent, and really regret having to drop it, but I was totally overloaded with work at the time