News for hackers. Stuff that matters.
Re:List of University Courses for Learning Computer Science by eric_bullington on Friday January 09, 2015 @04:16PM (#8864569)
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

There are no comments on this comment yet.