Computer Science 101: Master the Theory Behind Programming
4.5 (2,311 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
12,044 students enrolled

Computer Science 101: Master the Theory Behind Programming

Computer Science 101: Learn Computer Science to become a better Programmer and Software Engineer.
Bestseller
4.5 (2,311 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
12,044 students enrolled
Created by Kurt Anderson
Last updated 5/2020
English
English [Auto], French [Auto], 1 more
  • Italian [Auto]
Current price: $31.99 Original price: $49.99 Discount: 36% off
2 days left at this price!
30-Day Money-Back Guarantee
This course includes
  • 8.5 hours on-demand video
  • 20 articles
  • 1 downloadable resource
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Understand the Fundamental Theories of Algorithm Analysis
  • Be able to Compare Various Algorithms
  • Understand When to use Different Data Structures and Algorithms
  • Understand the Fundamentals of Computer Science theory
  • Understand the Core Sorting Algorithms
Course content
Expand all 83 lectures 09:11:28
+ Introduction
4 lectures 24:42

Welcome to the Computer Science Course! I am really excited for you to get started. We will just go over a little bit about the course and then jump right in to it. 

Preview 01:08
Binary Deca Number Conversion
08:15

Some notes on the Binary Number System in Computer Science.

Binary Number System Notes
03:36

Let's cement our knowledge of the Binary Number System with a couple questions! 

Binary Number System Quiz
3 questions
+ Analyzing Algorithms
12 lectures 01:16:18
All Notes
00:06

Let's jump in to one of the core concepts of Computer Science. The analysis of Time Complexity! 

Introduction to Time-Complexity
02:12

Let's go over the log function and how it's important to computer science. 

Math Refresher: Logarithmic Functions
11:07

Let's go over factorials and how they related to computer science. 

Math Refresher: Factorial Functions
03:19

Let's go over algebraic expressions and how they relate to computer science. 

Math Refresher: Algebraic Expressions
02:41

Some notes on the refresher course and how it ties in to computer science. 

Math Refresher Notes
03:04

Let's begin our analysis with one of Computer Science's fundamental concepts, n-notation.

n-notation Introduction
10:19

Let's go more in-depth into n-notation for computer science.

n-notation Scaling
11:31

Let's go over an example in n-notation. This will apply some concrete numbers to this computer science concept.

n-notation Example
04:18

In Computer Science, n-Notation is usually combined with the important Big O Notation.

Big O Notation
12:58

Let's go over some notes on n-Notation. 

n-Notation Notes
04:51

Let's put together everything we have learned and test our comprehension! 

Big O Notation Quiz
3 questions

Let's take this concept and look at a real world example to help reinforce it a little bit better. 

Big O Real-World Example
09:51
+ Arrays
11 lectures 01:30:41

Let's take a step back and look at how data is stored in computer's. This study will help us understand different computer science data structures like arrays, linked lists, and so on. 

How is Data Stored?
08:38

Learn about our first data structure in Computer Science, the fixed array.

Preview 05:09

Learn about the computer science run times of different operations associated with arrays.

Fixed Array Run Times
12:23

Learn about the binary search algorithm, and how it applies to a sorted fixed array in computer science.

Binary Search Algorithm (Fixed Array Sorted Search)
09:59

Here is a good summary to reinforce the main concepts about an array! 

Fixed Array Notes
01:49

Let's take a look at and extension of the computer science array data structure, the circular array. With just a small change, we can improve some of the run times, and make this data structure even more flexible. 

Circular Arrays
08:00

Let's look at another improvement we can add to arrays, the ability to scale with the data. We will also look at the most efficient way to do this, making the insertion still amortized O(1) time. 

Dynamic Arrays
15:51

Learn the math behind why in some computer science problems we can approximate O(n) -> O(1)

O(1) Approximation
12:07

Let's reinforce what we have learned with a quick review using text. 

Circular and Dynamic Array Notes
03:06

Let's bring all of these computer science array patterns together with a single video. 

Array Review
07:57

Lets look at some applications for the array, and how it's used in the real world. This will help cement what exactly an array is and when you might use one. 

Array Real World Examples
05:42

Let's cement our learning with a quiz! 

Array Quiz
4 questions
+ Linked Lists
9 lectures 57:40

Let's discuss a key computer science element to hold data. The node. These are very versatile data structures which can be used to create trees and linked lists. 

Nodes
04:19

Through combining nodes, we have the ability to form a different data structure, the linked list. This computer science data structure gives us the ability to link data from multiple places! 

Singly Linked List
13:36
Linked List Run Times
14:59

Let's take a step back and reinforce the singly linked lists and how they help with different computer science operations. 

Singly-Linked List Notes
01:57

These are very similar to singly linked lists. They give us a little bit more flexibility and some time improvements, which are always great in the computer science field!  

Doubly Linked Lists
08:07

These help improve our access time to the back of a linked list. This allows constant time to both the back and front of the list, giving us a lot more application with them in Computer Science. 

Tail Pointers
05:14

Let's take a step back and look at these improvements and how they are important to Computer Science. 

Doubly-Linked List and Tail Pointer Notes
02:56

Let's go over some Linked List real world examples in Computer Science. 

Linked List Real World Examples
03:00

Let's go over everything together at once. Now you should have a good understanding of the Computer Science linked list data structure. 

Linked List Review
03:31

Let's make sure we know the main points of a linked list! 

Linked Lists
3 questions
+ Stacks and Queues
9 lectures 01:01:56

Now that we have a couple of data structures under our belt, we can begin to combine them to make new data structures. This constant improvement is something that is common in Computer Science. 

Stacks
09:41

Lets take a look at some examples of stacks and how we might parse through them. These types of questions are common on Computer Science tests. 

Stack Examples
11:05

Let's reinforce all of the ideas behind stacks and how they are applied in the computer science curriculum. 

Stack Notes
01:59

Let's take a look at the Stack's brother, the queue. The big difference is where insertion and removal happen. Both of these data structures have wide applications within computer science. 

Queues
08:48

Let's take a look at a few examples and how these queues are built. This will also give you an idea of their usefulness within Computer Science. 

Queue Examples
09:42

Let's tie it all together with a quick summary of what we have learned and how it applies to computer science. 

Queue Notes
02:03

Let's take a look at the run times of both of these operations and how we might build them to give us the best run times. In computer science it is essential to get these fast run times. 

Queue and Stack Run Times
06:03

Let's go over some real world examples of Stacks and Queues in Computer Science. 

Stack and Queue Real World Examples
07:01

Let's test our knowledge with a stacks and queues quiz. 

Stacks and Queues Quiz
3 questions

Let's go over one of the trickier problems in the last quiz! 

Stacks and Queues Quiz Explanation
05:33
+ Sorting Algorithms
16 lectures 01:38:08

Let's discuss one of the most important aspects of computer science, sorting. 

Introduction to Sorting Algorithms
01:40

The first sort we will cover is the bubble sort. This is typically the first sorting algorithm to be introduced in the computer science ciriculum. The reason for this is because of it's simplicity and how easy it is to analyze why it's bad. 

Bubble Sort
10:12

Let's break Bubble sort down just a little bit more and how it ties in to computer science. 

Bubble Sort Notes
02:02

Selection sort is the next logical step, as it performs pretty similar to that of bubble sort with a slight change. A sorted and unsorted region. This new addition makes it the next logical step in the computer science curriculum.  

Selection Sort
09:49

Let's summarize what we have learned about selection sort and how it applies to computer science. 

Selection Sort Notes
02:12

Let's go over some of the key concepts of Bubble and Selection Sort. 

Bubble Sort and Selection Sort Quiz
4 questions

The next step on our journey is insertion sort. It is very similar to selection sort, but adds a little bit more ingenuity. This is the next logical step and gives us the the last piece of the puzzle to start building more advanced algorithms. This is why computer science classes typically cover this sorting algorithm here. 

Insertion Sort
09:03

Let's summarize what we have learned about insertion sort and how it ties to computer science. 

Insertion Sort Notes
02:00

Let's start getting in to the faster computer science sorting algorithms. Quick sort implements a divide and conquer method to begin dividing up the work in more efficient manners. 

Quick Sort
14:38

Let's take a look at the run time for quick sort and how it we are able to derive this run time. 

Quick Sort Run Time
10:31

Let's summarize what we have learned about quick sort and how it applies to computer science. 

Quick Sort Notes
02:04

Let's do some test problems on Insertion and Quick Sort

Insertion Sort and Quick Sort Quiz
2 questions

Now let's move to one of our fastest sorting algorithms. Although quick sort is technically faster, merge sort has a consistent speed which makes it more reliable. This and quick sort are frequently used within computer science.  

Merge Sort
11:57

Let's take a look at the run times this sort offers us and how with our computer science knowledge we can figure these run times out. 

Merge Sort Run Times
07:39

Let's summarize what we have learned about merge sort and how it applies to computer science. 

Merge Sort Notes
01:21

Let's discuss a topic that is important to sorting algorithms stability. This is an important part to consider when discussing these algorithms with respect to computer science. 

Stable vs NonStable
06:34

Let's summarize stability and how it applies to computer science. 

Stable Vs NonStable Notes
02:23

Let's reinforce the key concepts of Merge Sort and Stability. 

Merge Sort and Stability Quiz
3 questions
Sorting Algorithm Real World Examples
04:01
+ Trees
6 lectures 44:15

Let's discuss another important aspect of computer science, the basics of trees. 

Trees
07:37

We can use trees to build another important aspect of computer science, the BST or the binary search tree. 

Binary Search Trees
08:34

Le'ts look at the run times of these neat computer science data structures. 

Binary Search Tree Run Times
07:36
Tree Notes
02:55

Let's reinforce some of the important ideas about Trees. 

Tree Quiz
3 questions

Another important aspect of trees and computer science, the tree traversals. 

Tree Traversals
13:04

Let's take a look at some real world applications of trees in Computer Science. 

Tree Real World Examples
04:29
+ Heaps
4 lectures 24:09

Learn about heaps and how they are different from trees in computer science. 

Heaps Introduction
04:07
Heap Analysis
11:34

Learn about some of the applications of heaps. 

Heaps Real World Examples
06:58
Heap Notes
01:30
+ Graphs
7 lectures 42:55

We will learn the basics of graphs and how graphs are different than charts in computer science.

Introduction to Graphs
03:17

We will learn about directed, undirected and weighed graphs in computer science.

Basic Types of Graphs
10:28
Graph Terminology
11:40
Graph Terminology Summary
01:02

Learn how to use a depth first search, which is not only important for graphs, but many other computer science topics.

Depth First Search
06:36

Learn about how to use Breadth First Search with graphs in Computer Science

Breadth First Search
06:40

Learn about the run times of BFS and DFS in Computer Science.

BFS and DFS Run Times
03:12
+ Conclusion
1 lecture 01:07

Thanks everyone for joining me in this computer science course! 

Thank You!
01:07
Requirements
  • A Willingness to Learn New Topics!
  • No Prior Experience or Knowledge is Needed!
Description

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 course 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 apart Great programmers from 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. 

So if you want to begin setting yourself apart from the average programmers, this is the course for you! 

Enroll Now and you'll Learn: 

  • 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! 

My Guarantee

I am so confident you will enjoy this course, I offer a 100% 30-day money-back guarantee through Udemy. If you are not happy with your purchase, I have no problem with giving your money back! 

Are You Ready to Get Started? 

I will be waiting for you inside the course! 

Remember, this is an online course, so you can take it at your own pace. Are you busy right now? That's okay. Enroll today, and take the course at your own pace.

Thanks so much for your interest in this Computer Science 101 Course! 

See you inside!

Kurt


Who this course is for:
  • Anyone who wants to become a Good Programmer
  • Anyone interested in the Computer Science Discipline
  • Anyone who wants to learn how to problem solve like a Computer Scientist