From charlesreid1

Computer Science: the science of problem-solving with computers (computational devices, computational methods)

Study Notes

See CS study plan repo for more detailed notes:

We're focusing on a few different topics:

  • Ramping up level of fluency of Java and Python, developing working knowledge of/familiarity with 5-10 languages (
  • Core software engineering/computer science theory
  • Mathematics and numerical computing
  • Machine learning


Computer Science


CS list of topics:

  • StacksQueues
    • Python - implementing array-based stack/queue/deque data type - StacksQueues/Python
    • Java - using built-in stack/queue ADTs, implementing array-based stack/queue/deque type - StacksQueues/Java
    • C - Skiena covers the use of a C linked list to implement a stack/queue in C... StacksQueues/C
    • Priority Queues are special queues where the items are maintained in a shorted order.
  • Dictionaries, a.k.a. Maps
    • Python - dictionaries are built-in types in Python. JSON-like structures, key-value pairs.
    • Java - using built-in Map type from Java Collections library allows mapping arbitrary types to other types
    • C - Skiena covers the use of C to create a dictionary as well, by using a linked list to implement the interface of a dictionary.
  • Binary Trees
    • C - again, Skiena covers a C implementation of a binary tree using a linked list type of structure.



Following the content of Numerical Recipes - algorithmic analysis, &c.

Numerics topics corresponding to particular chapters:

  • Linear algebra
  • Interpolation and Extrapolation
  • Root Finding


See also: