Skip to content

Files

Latest commit

 

History

History

curriculum

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Interview Prep Curriculum

This is meant to shore up computer science fundamentals for the self taught programmer.

0. Resources

1. Time and space complexity: Big O Notation

Courses and Reading

  • Read "Analysis" section of Practical Algorithms and Data Structures

constant, logarithmic, linear, log linear, quadratic, cubic, exponential

graph of algo performance

  • Review time complexity of anagram solutions

  • (todo) Complete "Introduction to Big O Notation" from Computer Science Fundamentals with Javascript

  • (todo) Complete "Asymptotic notation" section of Algorithms course

2. Data Structures I

Stacks

  • "Stack 'Em Up With Stacks" section of Udemy course (stack implementation)

  • Read "Stacks" section of Practical Algorithms and Data Structures

Abstract Data Type of a Stack:

- Stack() creates a new, empty stack
- push(item) adds the given item to the top of the stack and returns nothing
- pop() removes and returns the top item from the stack
- peek() returns the top item from the stack but doesn’t remove it (the stack isn’t modified)
- is_empty() returns a boolean representing whether the stack is empty
- size() returns the number of items on the stack as an integer

Queues

  • Read "Queues" section of Practical Algorithms and Data Structures

  • "The Queue" and "Underwater Queue Weaving" section of Udemy course (queue implementation)

Abstract Data Type of a Queue:

- Queue() creates a new queue that is empty. It needs no parameters and returns an empty queue.
- enqueue(item) adds a new item to the rear of the queue. It needs the item and returns nothing.
- dequeue() removes the front item from the queue. It needs no parameters and returns the item. The queue is modified.
- is_empty() tests to see whether the queue is empty. It needs no parameters and returns a boolean value.
- size() returns the number of items in the queue. It needs no parameters and returns an integer.

Deques

  • Read "Deques" section of Practical Algorithms and Data Structures

New items can be added at either the front or the rear. Likewise, existing items can be removed from either end. In a sense, this hybrid linear structure provides all the capabilities of stacks and queues in a single data structure.

Lists

  • Read "Lists" section of Practical Algorithms and Data Structures

When discussing the list abstract data type, we consider a list to be a collection of items where each item holds a relative position with respect to the others.

The members of a list are commonly refered to as nodes. When each node holds a reference to the next node in the list, we call this a singly linked list. When each node holds a reference to both the next and previous nodes in the list, we call this a doubly linked list.

Linked list traversal refers to the process of systematically visiting each node in a linked list.

3. Recursion

4. Searching and Sorting

5. Data Structures II

Trees

Graphs

Hash Map

6. Dynamic Programming