Data Structure, Algorithm & Design Pattern in C# & .NET Core

Implement basic data structures and algorithms in C# to code faster by implementing high-quality design patterns

Ratings: 3.65 / 5.00




Description

Data structures allow you to organize data efficiently, but critical to various problems and their suitable implementation can provide a complete solution that acts like reusable code; whereas design patterns are reusable solutions to common programming problems where they speed up the development process by providing tested, proven development paradigms.

This course follows a practical approach, where you'll first start learning about arrays, lists, dictionaries, and sets together with real-world examples of your application. Then, you'll be learning creational design patterns, patterns related to the creation of objects, such as Singleton, Factory, and Dependency Injection. Next, you'll gain deep knowledge about dependency Inversion pattern, which will teach you how to write highly extensible, maintainable, and testable code along with insights into structural & behavioral design patterns.

By end of this course, you will be able to build your own desktop applications in C# 7.x much faster and with ease also improve the maintainability and testability of your application and gain the confidence to start a new project with Functional Programming paradigms.

Contents and Overview

This training program includes 2 complete courses, carefully chosen to give you the most comprehensive training possible.

The first course, Beginning Data Structures and Algorithms in C# you will learn how to use various data structures while developing in the C# language as well as how to implement some of the most common algorithms used with such data structures. Initially, you will get to know arrays, lists, dictionaries, and sets together with real-world examples of your application. Then you will learn how to create and use stacks and queues. In the following part of the book, more complex data structures will be introduced—trees and graphs—together with some algorithms for searching the shortest path in a graph. We will also discuss how to organize code in a manageable, consistent, and extendable way. By the end of the course, you will have learned how to build components that are easy to understand, debug, and use in different applications.

The second course, Design Patterns using C# and .NET Core starts at the nuts-and-bolts level and shows you everything through to advanced patterns and features, going in-depth to give you the knowledge you need. You will begin this course with an introduction to SOLID principles, which will introduce you to clean-code concepts and will elevate your skills. With this knowledge in your toolbox, you will be ready to move on to studying creational design patterns, patterns related to the creation of objects, such as Singleton, Factory, and Dependency Injection. You will then acquire more in-depth knowledge of one specific creational pattern, the Dependency Inversion pattern, which will teach you how to write highly extensible, maintainable, and testable code. Moving on, you will get your hands dirty with structural design patterns and you will complete this course by learning the last group of patterns: behavioral design patterns. By the end of this course you will be very confident in implementing a new feature in C# and .NET Core because, every time you have a problem, the correct design pattern will spontaneously come to mind.

About the Authors:    

Marcin Jamro, PhD, is an entrepreneur and researcher, as well as a developer and architect of various kinds of applications. He is the President of the Board at TITUTO Sp. z o.o. [Ltd.] in Rzeszów, Poland. Marcin is interested in many aspects of computer science, including software engineering and project management. He is the author of two other books—Windows Phone 8 Game Development (2013) and Windows Application Development Cookbook (2017), both by Packt Publishing. Marcin has published several papers, participated in many conferences, organized a few of them, and participated in two internships at Microsoft in Redmond, USA. He has MCP, MCTS, and MCPD certificates.

Dimitris Loukas is a software engineer currently writing Single Page Applications and using the latest JavaScript with Aurelia, Angular, C#, and .NET Core for a trading software firm. He has worked for two start-ups in the past, is active in the open source community, and loves taking up small side-projects. He has mastered Angular, Aurelia, and Vue.JS and is now interested in entering the ReactJS world. He is an early adopter of .NET Core and is fascinated by modern JavaScript and where the web is going.

What You Will Learn!

  • Implement algorithms such as the Tower of Hanoi on stacks of C# objects
  • Build enhanced applications by using hash tables, dictionaries, and sets
  • Effectively find the shortest path in the graph
  • Write better code by exploring SOLID principles
  • Maintain and expand your code with Dependency Inversion in modern C# applications
  • Get familiar with the Singleton design Pattern to work with single instances
  • Look for value changes using the Observer pattern

Who Should Attend!

  • This course is targeted at C# developers, C# software developers, C# application developers aiming to incorporate Functional Programming paradigms to build applications in a much faster and easy way.