C# Intermediate - Part III (ADT and Sorting Algorithms)
Queue, Stack, Linked List, Trees, Graphs, Quick and Merge Sort, Time Complexity, Recursion
Description
In this course the students will develop their logical and algorithmic thinking creating the static and dynamic version of the abstract data structures Linked List, Doubly Linked List, Stack and Queue. Understanding the intricacies of the structures, their advantages and disadvantages, how they work, how much memory they need, how to compute their time complexity will boost students’ confidence and clarity. Software developers will be able to pick the right structure for the specific scenario they need in their working environment.
Teaching students complicated topics as graphs and trees are a challenge for every teacher. I am convinced that the subjects are covered in such a way that the students will be able to grasp the fundamental ideas and depending on their skill implement them with code. The advanced concepts are hard because they require knowledge about the recursion which I decided to include as well.
The peculiar data structures Hashset and Dictionary will be covered in the course as well increasing the range of options for the students.
The basic sorting algorithms – Selection, Bubble, Insertion – are explained with examples and code too. The advanced sorting algorithms (Merge and Quick) are presented in a way that will be helpful for the students’ mind to come up with the algorithm and write it down.
Before we start making multi-tier applications a strong foundation of knowledge, skills and experience with solving simple tasks are necessary. This course is the fourth stepping stone towards achieving that goal.
I hope that my students will be benevolent toward each other in the Q&A section of the courses and be successful in their future career as a software developer (and engineer).
What You Will Learn!
- The intricacies, advantages and disadvantages of the static and dynamic implementation of Linked List, Doubly Linked List, Stack and Queue.
- When and how to use Hashset and Dictionary.
- Definition, usage and implementation of Binary Tree and Graph.
- How to sort data with various sorting algorithms – Selection, Bubble, Insertion, Quick and Merge.
- In-depth analysis and explanation of the Doubly Linked List, Binary Tree and Graph structures, Quick and Merge sort behavior too.
- Recursion as an alternative solution and approach to solving iterative problems.
- Compare your way of thinking and solving exercises with mine solutions to the problems.
- How to compute the time complexity of sorting algorithms and abstract data structures’ operations.
Who Should Attend!
- Anyone who has an interest in software development and particularly abstract data structures and sorting algorithms.
- Students that finished my course "C# Intermediate - Part II (Reflection, Events, LINQ)".