Computer Science 101: Master the Theory Behind Programming
Kurt Anderson, Computer Scientist, MultiMedia Designer


1. Introduction
4:48 
2. 11 Time Complexity Introduction
2:12 
3. 12 Math Refresher: Logarithmic Functions
11:07 
4. 13 Math Refresher: Factorial Functions
3:19 
5. 14 Math Refresher: Algebraic Expressions
2:47 
6. 15 Nnotation
18:55 
7. 16 Big O Notation
12:58 
8. 17 Real World BigO Example
9:51 
9. 21 How is Data Stored
8:38 
10. 22 Fixed Array Introduction
5:09 
11. 23 Fixed Array Run Times
12:23 
12. 24 Binary Search Algorithm (Fixed Array Sorted Search)
9:59 
13. 25 Circular Arrays
8:00 
14. 26 Dynamic Arrays
15:51 
15. 27 Array Review
7:57 
16. 28 Array Real World Examples
5:42 
17. 31 Nodes
4:19 
18. 32 Linked List
13:36 
19. 33 Linked List Run Times
14:59 
20. 34 Doubly Linked Lists
8:07 
21. 35 Tail Pointer
5:14 
22. 36 Linked List Review
3:31 
23. 37 Linked List Real World Examples
3:00 
24. 41 Stacks
9:41 
25. 42 Stack Example
11:05 
26. 43 Queues
8:48 
27. 44 Queue Examples
9:42 
28. 45 Queue and Stack Run Times
6:03 
29. 46 Stack and Queues Real World Examples
7:01 
30. 51 Sorting Algorithm Introdcution
1:40 
31. 52 Bubble Sort
10:12 
32. 53 Selection Sort
9:49 
33. 54 Insertion Sort
9:03 
34. 55 Quick Sort
14:38 
35. 56 Quick Sort Run Times
10:31 
36. 57 Merge Sort
11:57 
37. 58 Merge Sort Run Times
7:39 
38. 59 Stable vs Nonstable
6:34 
39. 510 Sorting Algorithm Real World Examples
4:01 
40. 61 Basics of Trees
7:37 
41. 62 Binary Search Tree
8:34 
42. 63 BST Run Times
7:36 
43. 64 Tree Traversals
13:04 
44. 65 Tree Real World Examples
4:29 
45. Timing  Project Prep
6:47

About This Class
Master the Theory to Becoming a Good Programmer!
If you're looking to learn the theory that makes great programmers, you've come to the right place! This is perfect for anyone interested in learning the fundamentals to Computer Science Theory.
No Previous Experience Necessary!
Computer science and technology are often thought of as things only for "analytical minds". I believe however that technology and it's theory are for everyone. So I designed this course to teach each topic in a variety of easy to digest ways. Through these multiple reinforcing steps, I believe anyone can follow along and succeed!
Why is the Theory of Programming Important?
Understanding Computer Science theory is what sets the Great programmers from the average ones. Programming theory is something that transcends a single programming language. It gives you skills and techniques you can apply to any programming language you touch. Learning the theory behind programming is just as important, if not more important than learning a singular programming language like Java or C++.
Programming is all about problem solving. Analyzing a problem, and being able to figure out a way that a computer can help with that problem. Computer Science is the practice of this analysis process. It goes over the techniques and knowledge necessary to design efficient and sustainable code.
In this lesson we will be covering:

Binary Number System

N Notation

Big O Notation

How to Analyze a Program

Arrays and their Advantages

Nodes and their Importance

Linked Lists and their Advantages and Implementations

Stacks implemented with Arrays and Linked Lists

Queues Implemented with Arrays and Linked Lists

Various Sorting Algorithms and Their Comparisions

Trees and Binary Search Trees

And Much Much More!