Master the Theory to Becoming a Good Programmer.
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
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.
Some notes on the Binary Number System in Computer Science.
Let's cement our knowledge of the Binary Number System with a couple questions!
Let's jump in to one of the core concepts of Computer Science. The analysis of Time Complexity!
Let's go over the log function and how it's important to computer science.
Let's go over factorials and how they related to computer science.
Let's go over algebraic expressions and how they relate to computer science.
Some notes on the refresher course and how it ties in to computer science.
Let's begin our analysis with one of Computer Science's fundamental concepts, n-notation.
Let's go more in-depth into n-notation for computer science.
Let's go over an example in n-notation. This will apply some concrete numbers to this computer science concept.
In Computer Science, n-Notation is usually combined with the important Big O Notation.
Let's go over some notes on n-Notation.
Let's put together everything we have learned and test our comprehension!
Let's take this concept and look at a real world example to help reinforce it a little bit better.
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.
Learn about our first data structure in Computer Science, the fixed array.
Learn about the computer science run times of different operations associated with arrays.
Learn about the binary search algorithm, and how it applies to a sorted fixed array in computer science.
Here is a good summary to reinforce the main concepts about an array!
Let's go over a bit more math to understand our next data structure, the circular array.
Let's work through an example of how a circular array works.
Let's take a break and look at some code on how a circular array works.
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.
Learn the math behind why in some computer science problems we can approximate O(n) -> O(1)
Let's reinforce what we have learned with a quick review using text.
Let's bring all of these computer science array patterns together with a single video.
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.
Let's cement our learning with a quiz!
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.
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!
Let's go over the linked list run times and how they compare to the array run times.
Let's take a step back and reinforce the singly linked lists and how they help with different computer science operations.
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!
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.
Let's take a step back and look at these improvements and how they are important to Computer Science.
Let's go over some Linked List real world examples in Computer Science.
Let's go over everything together at once. Now you should have a good understanding of the Computer Science linked list data structure.
Let's make sure we know the main points of a linked list!
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.
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.
Let's tie things together by covering a code example of a stack.
Let's reinforce all of the ideas behind stacks and how they are applied in the computer science curriculum.
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.
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.
Let's tie it all together with a quick summary of what we have learned and how it applies to computer science.
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.
Let's go over some real world examples of Stacks and Queues in Computer Science.
Let's test our knowledge with a stacks and queues quiz.
Let's go over one of the trickier problems in the last quiz!
Let's discuss one of the most important aspects of computer science, sorting.
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.
Let's break Bubble sort down just a little bit more and how it ties in to computer science.
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.
Let's go over how selection sort works with code!
Let's summarize what we have learned about selection sort and how it applies to computer science.
Let's go over some of the key concepts of Bubble and Selection Sort.
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.
Let's summarize what we have learned about insertion sort and how it ties to computer science.
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.
Let's take a look at the run time for quick sort and how it we are able to derive this run time.
Let's summarize what we have learned about quick sort and how it applies to computer science.
Here is how quick sort might be applied in code.
Let's do some test problems on Insertion and Quick Sort
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.
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.
Let's summarize what we have learned about merge sort and how it applies to computer science.
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.
Let's summarize stability and how it applies to computer science.
Let's reinforce the key concepts of Merge Sort and Stability.
Let's discuss another important aspect of computer science, the basics of trees.
We can use trees to build another important aspect of computer science, the BST or the binary search tree.
Le'ts look at the run times of these neat computer science data structures.
Let's reinforce some of the important ideas about Trees.
Another important aspect of trees and computer science, the tree traversals.
Let's take a look at some real world applications of trees in Computer Science.
Learn about heaps and how they are different from trees in computer science.
Learn about some of the applications of heaps.
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.