Added clang, gdb, valgrind.

This commit is contained in:
John Washam 2016-06-10 16:23:26 -07:00
parent 5785455dfb
commit 9df2f03705

View File

@ -61,6 +61,11 @@ Some videos are available only by enrolling in a Coursera or EdX class. It is fr
* - C * - C
* - K&R C book (ANSI C) * - K&R C book (ANSI C)
* - Clang: https://www.youtube.com/watch?v=U3zCxnj2w8M
* - GDB:
- https://www.youtube.com/watch?v=USPvePv1uzE
- https://www.youtube.com/watch?v=y5JmQItfFck
- Valgrind: https://www.youtube.com/watch?v=fvTsFjDuag8
- C++ - C++
* - basics * - basics
* - pointers * - pointers
@ -136,16 +141,23 @@ Then test it out on a computer to make sure it's not buggy from syntax.
Arrays Arrays
* - Description: * - Description:
- Arrays: https://www.coursera.org/learn/data-structures/lecture/OsBSF/arrays - Arrays: https://www.coursera.org/learn/data-structures/lecture/OsBSF/arrays
- Arrays: https://www.lynda.com/Developer-Programming-Foundations-tutorials/Basic-arrays/149042/177104-4.html
- Multi-dim: https://www.lynda.com/Developer-Programming-Foundations-tutorials/Multidimensional-arrays/149042/177105-4.html
- Dynamic Arrays: https://www.coursera.org/learn/data-structures/lecture/EwbnV/dynamic-arrays - Dynamic Arrays: https://www.coursera.org/learn/data-structures/lecture/EwbnV/dynamic-arrays
- Resizing arrays: https://class.coursera.org/algs4partI-010/lecture/19 - Jagged: https://www.lynda.com/Developer-Programming-Foundations-tutorials/Jagged-arrays/149042/177106-4.html
- Implement: - Resizing arrays:
- https://class.coursera.org/algs4partI-010/lecture/19
- https://www.lynda.com/Developer-Programming-Foundations-tutorials/Resizable-arrays/149042/177108-4.html
- Implement a vector (mutable array with automatic resizing):
* - Practice coding using arrays and pointers, and pointer math to jump to an index instead of using indexing. * - Practice coding using arrays and pointers, and pointer math to jump to an index instead of using indexing.
* - new raw data array with allocated memory (can allocate int array under the hood, just not use its features) * - new raw data array with allocated memory
- can allocate int array under the hood, just not use its features
- start with 16, or if starting number is greater, use power of 2 - 16, 32, 64, 128
* - size() - number of items * - size() - number of items
* - capacity() - number of items it can hold * - capacity() - number of items it can hold
* - is_empty() * - is_empty()
- at(index) - returns item at given index - at(index) - returns item at given index, blows up if index out of bounds
- append(item) - or push(item) - append(item) - or push(item) - check size of element 2^
- insert(index, item) - insert(index, item)
- prepend(item) - can use insert above at index 0 - prepend(item) - can use insert above at index 0
- delete(index) - delete(index)
@ -159,8 +171,8 @@ Arrays
- O(n) to insert/remove elsewhere - O(n) to insert/remove elsewhere
- Space - Space
- contiguous in memory, so proximity helps performance - contiguous in memory, so proximity helps performance
- space needed = size of object * number of items to store - space needed = (array capacity, which is >= n) * size of item
linked lists Linked lists
- singly-linked - singly-linked
* - Description: https://www.coursera.org/learn/data-structures/lecture/kHhgK/singly-linked-lists * - Description: https://www.coursera.org/learn/data-structures/lecture/kHhgK/singly-linked-lists
* - Lynda.com: * - Lynda.com:
@ -188,14 +200,13 @@ linked lists
- doubly-linked list - doubly-linked list
- Description: https://www.coursera.org/learn/data-structures/lecture/jpGKD/doubly-linked-lists - Description: https://www.coursera.org/learn/data-structures/lecture/jpGKD/doubly-linked-lists
- reverse a singly-linked list - reverse a singly-linked list
stacks Stacks
- see: https://class.coursera.org/algs4partI-010/lecture - see: https://class.coursera.org/algs4partI-010/lecture
- https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks - https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks
queues Queues
- see: https://class.coursera.org/algs4partI-010/lecture - see: https://class.coursera.org/algs4partI-010/lecture
- https://www.coursera.org/learn/data-structures/lecture/EShpq/queues - https://www.coursera.org/learn/data-structures/lecture/EShpq/queues
Vectors Heaps
heaps
- https://www.coursera.org/learn/data-structures/lecture/GRV2q/binary-trees - https://www.coursera.org/learn/data-structures/lecture/GRV2q/binary-trees
- min heap - min heap
- max heap - max heap
@ -207,14 +218,14 @@ Priority Queue
Disjoint Sets: Disjoint Sets:
- https://www.coursera.org/learn/data-structures/lecture/JssSY/overview - https://www.coursera.org/learn/data-structures/lecture/JssSY/overview
- https://www.coursera.org/learn/data-structures/lecture/Mxu0w/trees - https://www.coursera.org/learn/data-structures/lecture/Mxu0w/trees
hashtables Hash tables
- https://www.youtube.com/watch?v=C4Kc8xzcA68 - https://www.youtube.com/watch?v=C4Kc8xzcA68
- https://class.coursera.org/algs4partI-010/lecture/52 - https://class.coursera.org/algs4partI-010/lecture/52
- https://www.coursera.org/learn/data-structures/home/week/3 - https://www.coursera.org/learn/data-structures/home/week/3
- see: https://class.coursera.org/algs4partI-010/lecture - see: https://class.coursera.org/algs4partI-010/lecture
- https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/m7UuP/core-hash-tables - https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/m7UuP/core-hash-tables
- test: implement with only arrays - test: implement with only arrays
tries Tries
- https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/08Xyf/core-introduction-to-tries - https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/08Xyf/core-introduction-to-tries
Circular buffer/FIFO: Circular buffer/FIFO:
- https://en.wikipedia.org/wiki/Circular_buffer - https://en.wikipedia.org/wiki/Circular_buffer
@ -231,14 +242,18 @@ Bit operations
https://www.youtube.com/watch?v=JAMLuxdHH8o https://www.youtube.com/watch?v=JAMLuxdHH8o
Error Checking: Error Checking:
https://www.youtube.com/watch?v=wbH2VxzmoZk https://www.youtube.com/watch?v=wbH2VxzmoZk
binary search Binary search
Sorting Sorting
- no bubble sort - it's terrible - stability in sorting algorithms:
- at least one n*log(n) sorting algorithm, preferably two (say, quicksort and merge sort) - http://stackoverflow.com/questions/1517793/stability-in-sorting-algorithms
- Which algorithms can be used on lists? Which on arrays? Which on both? Is Quicksort stable? - http://www.geeksforgeeks.org/stability-in-sorting-algorithms/
- algos: - Which algorithms can be used on linked lists? Which on arrays? Which on both? Is Quicksort stable?
- Implement & know best case/worst case, average complexity of each:
- mergesort - mergesort
- quicksort - quicksort
- insertion sort
- selection sort
- no bubble sort - it's terrible at O(n^2)
Caches Caches
- LRU cache - LRU cache
Trees Trees
@ -293,6 +308,8 @@ open-ended problems
- manipulate strings - manipulate strings
- manipulate patterns - manipulate patterns
design patterns: design patterns:
- description:
- https://www.lynda.com/Developer-Programming-Foundations-tutorials/Foundations-Programming-Design-Patterns/135365-2.html
- strategy - strategy
- singleton - singleton
- adapter - adapter