Algorithms and Data Structures in C#: Complete Tutorial (The Course)
This Course is part of the following Tracks:
Course Info
This course includes 1 attempt.
Why learn about data structures and algorithms?
Algorithms and data structures constitute the fundamentals of programming.
- Good understanding of algorithms and data structures is one of the most important requirements for a great number of work positions. You'll have to solve many problems related to algorithms and data structures at coding interviews. Indeed, you can live without an understanding of algorithms and data structures, in general. However, you can do that until you face a real problem which requires to choose right data structures and implement custom algorithms. If you haven't ever faced such problems, believe me, this is just a matter of time. One day, you'll face such a problem and if you don't understand algorithms and data structures in depth, you'll feel yourself ashamed and helpless. You'll be stuck.
- If you're not good at algorithms and data structures, you'll never pass a coding interview in a decent company. Almost all the companies prefer to hire those developers who have good understanding of algorithms and data structures, remember that. Do not delay the study of fundamental concepts.
- Better hardware is not a solution for all the performance-related problems. Sometimes, you need to write software for very slow devices. And that very often depends on the budget of a customer, by the way, so you don't have a control over it.
- You'd better to understand what's going on under the hood at least one level in-depth. Indeed, if you don't understand how List works, sometimes you'll make sub-optimal or completely wrong decisions.
Why this course?
You may ask me "why should I take exactly your course?" And here is my answer:
- This course is a comprehensive tutorial which covers a great number of topics
- I tried to do my best to make this course not dry
- This course concentrates not only at algorithms and data structures in general but it uncovers the internals of data structures and algorithms built-in .NET BCL (.NET Core's BCL is the same regarding fundamental data structures and algorithms)
- This course is practical with exercises and solutions
- This course will definitely help you to pass technical interviews
- This course is made by a professional software developer with more than 10 years of real-world experience
- and many other reasons :)
What's in the Course?
For now, the course covers:
- Introduction to Algorithms and Data Structures: what is a data structure, abstract data type and what's the difference between these notions. What is an algorithm and why they are important to us?
- Introduction to Algorithm Analysis: determine how long will a program work, build a log-log plot, approximations, order of growth (Big-O notation), memory consumption
- Arrays: arrays in C#, arrays in memory, time complexity of operations on arrays
- Sort Algorithms: bubble sort, selection sort, insertion sort, recursion, shell sort, merge sort, quick sort, stability of sort algorithms
- Lists: List built-in .NET BCL, nodes, linked list including singly and doubly linked lists, linked list built-in .NET
- Stacks: theory and practice; stack based on array, stack based on a linked list, stack built-in .NET
- Queues: theory and practice; queue based on array, circular queue, queue based on linked list, queue built-in .NET BCL
- Search Algorithms: linear search, binary search (more will be added soon)
- Immutable Collections: immutability and memory pressure, immutable stacks and queues, immutable list, immutable sets, immutable dictionaries, builders in immutable collections
- Other big sections upcoming soon including:
- Trees, Heaps, Hashtables
Take this course now and you'll be satisfied!
Course Material
- Intro to the Course
- Course Outline
- Intro to Algorithms and Data Structures
- Intro to Data Structures
- Intro to Algorithms
- Intro to Algorithm Analysis
- Time Complexity
- Building a Log-Log Plot. Predicting the Running Time
- Approximations
- Orders of Growth
- Arrays
- Quick Overview of Arrays Built-In C
- Arrays in Memory
- Time Complexity of Operations on Array
- Sorting Algorithms
- Bubble Sort (Theory)
- Bubble Sort (Implementation)
- Stability of Sort Algorithms
- Selection Sort (Theory)
- Selection Sort (Implementation)
- Insertion Sort (Theory)
- Insertion Sort (Implementation)
- Recursion
- Shell Sort (Theory)
- Shell Sort (Implementation)
- Merge Sort (Theory)
- Merge Sort (Implementation)
- Quick Sort (Theory)
- Quick Sort (Implementation)
- Lists
- List Built-In BCL
- Node as a Basic Building Block
- Linked Lists
- Singly-Linked List (Theory)
- Singly-Linked List (Implementation)
- Doubly-Linked List (Theory)
- Doubly-Linked List (Implementation)
- LinkedList Built-In BCL
- Stacks
- Stacks (Theory)
- Stack Implementation (Array)
- Stack Implementation (LinkedList)
- Stack Built-In .NET & General Characteristics
- Queues
- Queue (Theory)
- Queue Implementation (Array)
- Circular Queue (Theory)
- Circular Queue (Implementation)
- Queue Implementation (LinkedList)
- Queue Built-In .NET BCL
- Search Algorithms
- Linear Search
- Binary Search (Theory)
- Binary Search (Implementation)
- Immutable and Concurrent Collections
- Outline
- Introduction
- Immutability and Memory Pressure
- Immutable Stack and Queue
- Immutable List
- Immutable Sets
- Immutable Dictionary
- Builders in Immutable Collections
- ConcurrentQueue and ConcurrentStack
- ConcurrentBag
- ConcurrentDictionary
- Conclusion
Instructors
I'm thankful enough for that I love what I do.
I began my career as a postgraduate student participating in Microsoft ImagineCup contest.
I've been working with .NET platform since 2003. I've been professionally architecting and implementing software for more than 10 years, primarily based on the .NET platform. I'm passionate about building rich and powerful applications using modern technologies. I'm a certified specialist in Windows Applications and Service Communication Applications by Microsoft. I'm one of the coordinators of the MskDotNet User Group in Moscow.
"If it's work, we try to do less. If it's art, we try to do more." - Seth Godin.
What I can say is that software is my art.
Community
This course has a private forum for learners who are taking this course.
The Leanpub 60 Day 100% Happiness Guarantee
Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.
Now, this is technically risky for us, since you'll have the book or course files either way. But we're so confident in our products and services, and in our authors and readers, that we're happy to offer a full money back guarantee for everything we sell.
You can only find out how good something is by trying it, and because of our 100% money back guarantee there's literally no risk to do so!
So, there's no reason not to click the Add to Cart button, is there?
See full terms...
Earn $8 on a $10 Purchase, and $16 on a $20 Purchase
We pay 80% royalties on purchases of $7.99 or more, and 80% royalties minus a 50 cent flat fee on purchases between $0.99 and $7.98. You earn $8 on a $10 sale, and $16 on a $20 sale. So, if we sell 5000 non-refunded copies of your book for $20, you'll earn $80,000.
(Yes, some authors have already earned much more than that on Leanpub.)
In fact, authors have earnedover $14 millionwriting, publishing and selling on Leanpub.
Learn more about writing on Leanpub
Free Updates. DRM Free.
If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).
Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.
Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.
Learn more about Leanpub's ebook formats and where to read them