Get $1 credit for every $25 spent!

The Complete .NET & C# Developer Certification Bundle

Ending In:
Add to Cart - $31
Add to Cart ($31)
$2,000
98% off
wishlist
Courses
10
Lessons
686

What's Included

Product Details

Access
Lifetime
Content
4 hours
Lessons
61

Software Architecture: Meta & SOLID Principles in C#

Develop Maintainable Software Systems Applying Design Patterns Based on Meta & SOLID Principles

By EngineerSpock | in Online Courses

SOLID is an acronym which stands for SRP, OCP, LSP, ISP, and DIP. These five acronyms in their turn stand for: Single Responsibility Principle, Open/Closed Principle, Liskov Substitution Principle, Interface Segregation Principle, and Dependency Inversion Principle. In this course, you’ll learn how to apply meta and SOLID principles so that your application will live a long healthy life. It means you are going to learn how to write code of the highest quality: readable, understandable and reliable.

  • Access 61 lectures & 4 hours of content 24/7
  • Understand the meta principles on which all the other development principles are based
  • Understand the symptoms of code defects
  • Learn the foundations of SOLID principles
  • Learn how to detect the violations of SOLID principles & how to fix the problems
  • Learn how meta principles & SOLID principles are related to each other and how to find the balance between them

Instructor

Elias Fofanov began his career as a postgraduate student participating in Microsoft ImagineCup contest. He's been working with the .NET platform since 2003. He's been professionally architecting and implementing software for nearly 10 years, primarily based on .NET platform. Elias is passionate about building rich and powerful applications using modern technologies. He's a certified specialist in Windows Applications and Service Communication Applications by Microsoft and is one of the coordinators of MskDotNet User Group in Moscow.

Important Details

  • Length of time users can access this course: lifetime
  • Access options: web streaming, mobile streaming
  • Certification of completion included
  • Redemption deadline: redeem your code within 30 days of purchase
  • Experience level required: advanced

Requirements

  • Internet required

Course Outline

  • Single Responsibility Principle (SRP)
    • Download Source Code
    • 01-Outline - 0:38
    • 02-SOLID Intro - 8:53
    • 03-Problem Statement - 8:07
    • 04-Demo of the Problem - 3:31
    • 05-Refactoring to a Better Design - 5:36
    • 06-More Examples of SRP Violations - 4:21
    • 07-SRP Related Patterns - 5:19
    • 08-Conclusion - 1:51
  • Open/Closed Principle
    • 01-Outline - 1:11
    • 02-OCP Definition. Problem Statement - 8:06
    • 03-Demo of the Problem - 2:03
    • 04-Refactoring to a Better Design - 11:03
    • 05-OCP Related Patterns - 10:43
    • 06-Common Smells of OCP Violation - 1:30
    • 07-Conclusion - 1:55
  • Liskov Substitution Principle (LSP)
    • 01-Outline - 1:38
    • 02-LSP Definition. Problem Statement - 3:52
    • 03-Contracts - 6:59
    • 04-Demo of the Problem - 5:48
    • 06-More Examples of LSP Violations - 6:10
    • 07-Common Smells of LSP Violation - 2:06
    • 08-Conclusion - 1:51
    • 05-Refactoring to a Better Design - 2:19
  • Interface Segregation Principle
    • 01-Outline - 1:36
    • 02-ISP Definition. Problem Statement - 4:51
    • 03-Demo of the Problem - 6:50
    • 04-Refactoring to a Better Design - 2:59
    • 05-Demo of the Problem. Example 2 - 5:50
    • 06-Refactoring to a Better Design. Example 2 - 1:51
    • 07-Common Smells, Fixes, and Related Patterns - 7:38
    • 08-Conclusion - 2:20
  • Dependency Inversion Principle
    • 01-Outline - 1:34
    • 02-DIP Definition. Problem Statement - 3:30
    • 03-Dependencies-01 - 4:12
    • 04-Volatile and Stable Dependencies - 2:53
    • 05-IoC and DI Definitions - 3:18
    • 06-DIP Violation Demo - 2:25
    • 07-Refactoring to a Better Design Applying Dependency Injection - 8:12
    • 08-DI-Techniques - 5:54
    • 09-Architectural Implications - 5:24
    • 10-Pure DI and IoC-Containers - 4:30
    • 11-Building a Simple IoC-Container - 3:55
    • 12-Demo of a Real-World App Built with an IoC-Container - 10:27
    • 13-Common Smells of DIP Violations - 2:11
    • 14-Conclusion - 2:15
  • Metaprinciples
    • 01-Outline - 2:17
    • 02-DRY - 9:50
    • 03-KISS - 7:37
    • 04-YAGNI - 11:42
    • 05-SoC - 4:28
    • 06-CQS - 2:14
    • 07-Law of Demeter - 7:00
    • 08-PoLA - 3:03
    • 09-Encapsulation - 5:58
    • 10-API - 14:28
    • 11-SOLID VS YAGNI - 2:58
    • 12-OCP VS YAGNI - 2:48
    • 13-SRP and ISP. What is the Difference - 1:47
    • 14-Architecture and Design - 4:56
    • 15-Conclusion - 4:23

View Full Curriculum


Access
Lifetime
Content
4 hours
Lessons
60

Learn Unit Testing with NUnit and C#

Learn Unit Testing, TDD, Mocking & Dependency Injection

By EngineerSpock | in Online Courses

This course is all about writing effective unit tests using C# programming language and NUnit as a unit testing framework. Along the way, you will learn the concepts related to unit testing. Today, unit testing is an absolutely required skill from any professional developer. Companies expect from developers to know how to write unit tests including all the most important topics such as mocking and test-driven development (TDD in short).

  • Access 60 lectures & 4 hours of content 24/7
  • Cover basic notions of Unit Testing
  • Explore NUnit & its features
  • Discuss test doubles including fakes, dummies, stubs, spies, & mocks
  • Learn how to write manual test doubles & how to use a mocking framework (NSubstitute)
  • Get an introduction to Dependency Injection

Instructor

Elias Fofanov began his career as a postgraduate student participating in Microsoft ImagineCup contest. He's been working with the .NET platform since 2003. He's been professionally architecting and implementing software for nearly 10 years, primarily based on .NET platform. Elias is passionate about building rich and powerful applications using modern technologies. He's a certified specialist in Windows Applications and Service Communication Applications by Microsoft and is one of the coordinators of MskDotNet User Group in Moscow.

Important Details

  • Length of time users can access this course: lifetime
  • Access options: web streaming, mobile streaming
  • Certification of completion included
  • Redemption deadline: redeem your code within 30 days of purchase
  • Experience level required: advanced

Requirements

  • Internet required

Course Outline

  • Getting Started
    • Download Source Code
    • 01-Outline - 0:58
    • 02-What is a Unit Test - 3:09
    • 03-Unit Testing Frameworks - 3:22
    • 04-Your First Unit Test - 8:49
    • 05-Naming Conventions - 4:34
    • 06-Running and Debugging Unit Tests - 5:02
    • 07-Benefits of Unit Tests - 3:35
    • 08-Who Should Write Unit Tests and When - 2:51
    • 09-Programmer's Oath - 3:17
    • 10-DegreeConverter-Exercise - 1:29
    • 11-DegreeConverter-Solution - 6:53
    • 12-Conclusion - 1:15
  • NUnit Testing Framework
    • 01-Outline - 1:01
    • 02-Assert Intro - 5:29
    • 03-Assert Demo - 10:27
    • 04-Arrange-Act-Assert - 0:58
    • 05-Running Tests from the Console - 1:51
    • 06-SetUp and TearDown - 5:08
    • 07-OneTimeSetUp and OneTimeTearDown - 2:13
    • 08-Parameterized Unit Tests - 3:40
    • 09-Grouping and Ignoring Unit Tests - 2:14
    • 10-Code Coverage - 1:42
    • 11-FizzBuzz Exercise - 1:07
    • 12-FizzBuzz Solution - 5:05
    • 13-Roman Numerals Exercise - 2:27
    • 14-Roman Numerals Solution - 9:27
    • 15-Stack Exercise - 0:59
    • 16-Stack Solution - 9:02
    • 17-Conclusion - 1:38
  • Test Doubles
    • 01-Outline - 1:09
    • 02-Demo of a Testing Problem - 3:43
    • 03-Refactoring to Make Code Testable - 4:19
    • 04-Test Doubles - 5:55
    • 05-Hand-Rolled or Manual Test Doubles - 11:53
    • 07-Problems with Manual Test Doubles - 1:16
    • 08-Mocking Frameworks - 7:52
    • 09-Writing Unit Tests with a Mocking Framework - 7:43
    • 10-NSubstitute Mocking Framework. Key Features. Demo - 18:06
    • 11-Detroit School vs London School of Unit Testing - 2:23
    • 12-Conclusion - 1:18
  • Intro to Test-Driven Development (TDD)
    • 01-Outline - 0:41
    • 02-What is TDD - 4:37
    • 03-Red Green Refactor - 3:38
    • 04-TDD and Design Upfront - 2:35
    • 05-TDD-Demo - 32:16
    • 06-Conclusion - 0:34
  • Unit Testing Best Practice
    • 01-Outline - 0:55
    • 02-Do Unit Tests Guarantee the Success - 2:25
    • 03-Pragmatic Unit Testing - 5:16
    • 04-Integration Tests - 4:18
    • 05-Singletons and Static Classes - 7:02
    • 06-Header Interfaces - 5:56
    • 07-Demo of Refactoring to a Testable Design - 14:29
    • 08-How Much Test Coverage is Enough - 2:37
    • 09-Testing Trivial Code - 2:59
    • 10-The Rule of Testing a Single Concern - 3:06
    • 11-More on Best Practices - 9:52
    • 12-Generating Unit Test Method Signatures - 1:25
    • 13-Conclusion - 2:31

View Full Curriculum


Access
Lifetime
Content
3 hours
Lessons
52

Software Architecture: Dependency Injection for C# Developers

Learn Dependency Injection Techniques

By EngineerSpock | in Online Courses

Dependency Injection is the set of techniques that supply dependencies to objects. Actually, if you have ever passed dependencies via constructors, then you applied the so-called constructor injection. Dependency Injection (DI) is simple and difficult at the same time. On one hand, DI is comprised of simple techniques and on the other hand, when we need to bring DI to the next level, we need to make things more complicated using the so-called DI or IoC (Inversion of Control) Containers. These are the frameworks which perform dependency injection automatically. You just need to set one up in the application root (an extremely important notion which you'll learn about in the course) and after that, it will resolve all the dependencies it knows about in the runtime.

  • Access 52 lectures & 3 hours of content 24/7
  • Get an introduction to Inversion of Control
  • Learn how to reap the fruits of Dependency Injection
  • Set up a bootstrapper w/ Unity, Autofac & Castle.Windsor
  • Get an introduction to unit testing

Instructor

Elias Fofanov began his career as a postgraduate student participating in Microsoft ImagineCup contest. He's been working with the .NET platform since 2003. He's been professionally architecting and implementing software for nearly 10 years, primarily based on .NET platform. Elias is passionate about building rich and powerful applications using modern technologies. He's a certified specialist in Windows Applications and Service Communication Applications by Microsoft and is one of the coordinators of MskDotNet User Group in Moscow.

Important Details

  • Length of time users can access this course: lifetime
  • Access options: web streaming, mobile streaming
  • Certification of completion included
  • Redemption deadline: redeem your code within 30 days of purchase
  • Experience level required: advanced

Requirements

  • Internet required

Course Outline

  • Dependency Inversion Principle and Dependency Injection
    • Download Source Code
    • 01-Outline - 1:34
    • 02-Definition of DIP - 3:30
    • 03-Dependencies - 4:49
    • 04-Volatile and Stable Dependencies - 2:53
    • 05-Definitions-IoC and DI - 3:18
    • 06-DIP Violation Demo - 2:47
    • 07-Refactoring to a Better Design - 8:31
    • 08-Dependency Injection Techniques - 7:09
    • 09-Architectural Implications - 5:24
    • 10-Common Smells of DIP Violation - 2:37
    • 11-Conclusion - 2:03
  • Introduction to IoC-Containers (or DI-Containers)
    • 01-Outline - 1:07
    • 02-Pure DI and IoC-Containers - 5:01
    • 03-Building a Simple IoC Container - 3:53
    • 04-ServiceLocator - 2:54
    • 05-Demo with an IoC-Container - 10:21
    • 06-Conclusion - 1:17
  • Dependency Injection - Related Anti-Patterns & Refactorings
    • 01-Outline - 1:54
    • 02-Control Freak - 7:06
    • 03-Hidden Dependencies and Service Locator - 4:41
    • 04-Temporal Coupling - 1:47
    • 05-Constructor Over-Injection - 4:05
    • 06-Ambient Context - 3:53
    • 07-Facade Service - 2:58
    • 08-Property Injection vs Bastard Injection - 3:34
    • 09-Cyclic Dependencies - 10:50
    • 10-Conclusion - 2:35
  • Dependency Injection: Real-World Example
    • 01-Outline - 1:13
    • 02-Application Overview - 1:24
    • 03-Data Access and Models - 2:00
    • 04-UI-Side - 3:18
    • 05-The Problem of Tight Coupling - 3:41
    • 06-Refactoring Process - 10:30
    • 07-Isolating the Bootstrapper - 4:20
    • 08-Consequences - 1:54
    • 09-Conclusion - 1:14
  • Reaping the Fruits of DI
    • 01-Outline - 0:27
    • 02-Adding new DAL - 8:58
    • 03-Writing Unit Tests for View Models - 10:17
    • 04-Conclusion - 0:45
  • DI-Containers (IoC-Frameworks)
    • 01-Outline - 1:35
    • 02-Overview of DI-Containers. - 3:46
    • 03-Unity - 10:17
    • 04-Late Binding with Unity - 5:30
    • 05-Aspect-Oriented Programming - 3:49
    • 06-Demo of the Boilerplate Code Problem - 4:08
    • 07-Implemeneting AOP by Interception - 5:19
    • 08-Interception vs Pure DI vs AOP Tooling - 2:40
    • 09-Autofac and Castle.Windsor DI-Containers - 4:29
    • 10-Problems Related to DI-Containers - 1:57
    • 11-Conclusion - 0:57

View Full Curriculum


Access
Lifetime
Content
9 hours
Lessons
81

TDD in C# From A to Z

Learn Test-Driven Development & Improve You Unit Testing Skills

By EngineerSpock | in Online Courses

This course is primarily aimed at developers who’re already familiar with the basics of unit testing and dependency injection. Some experience in C# programming is required. The course provides a solid theoretical base reinforced by tons of practical material. You'll start with the basics of test-driven development. Why do we need TDD? What is TDD? Here, you'll learn.

  • Access 81 lectures & 9 hours of content 24/7
  • Learn what a regular agile development process looks like
  • Discover 3 main TDD techniques: faking, triangulation & obvious implementation
  • Learn how to start writing a test in a TDD manner
  • Explore stack kata, immutable stack kata, & list kata
  • Write acceptance tests w/ SpecFlow in Gherkin language

Instructor

Elias Fofanov began his career as a postgraduate student participating in Microsoft ImagineCup contest. He's been working with the .NET platform since 2003. He's been professionally architecting and implementing software for nearly 10 years, primarily based on .NET platform. Elias is passionate about building rich and powerful applications using modern technologies. He's a certified specialist in Windows Applications and Service Communication Applications by Microsoft and is one of the coordinators of MskDotNet User Group in Moscow.

Important Details

  • Length of time users can access this course: lifetime
  • Access options: web streaming, mobile streaming
  • Certification of completion included
  • Redemption deadline: redeem your code within 30 days of purchase
  • Experience level required: advanced

Requirements

  • Internet required

Course Outline

  • Introduction to TDD
    • Download Source Code
    • 01-Outline - 1:06
    • 02-Why we need TDD - 16:18
    • 03-What is TDD - 5:00
    • 04-Red Green Refactor - 4:16
    • 05-Three Laws of TDD - 1:42
    • 06-Changing Requirements and the Safety Net - 5:23
    • 07-F.I.R.S.T - 2:48
    • 08-Code Coverage - 2:19
    • 09-Different Types of Tests - 4:04
    • 10-Testing Frameworks and Tools - 5:06
    • 11-When TDD Fails - 2:46
    • 12-Conclusion - 2:02
  • TDD in Practice
    • 01-Outline - 1:46
    • 02-Regular Agile Process - 1:58
    • 03-01-VS and ReSharper Shortcuts - 3:44
    • 03-02-Refactoring Commands Built-In VS 2017
    • 04-Fibonacci Numbers - 7:38
    • 05-Three Main TDD Techniques - 4:31
    • 06-Grabbind the Gold - 3:10
    • 07-FizzBuzz - 11:06
    • 08-RomanNumerals - 12:07
    • 09-Updateable Spin - 17:50
    • 10-Continuous Testing - 3:57
    • 11-TicTacToe - 36:17
    • 12-Assert First - 1:26
    • 13-Game in Sticks - 32:16
    • 14-Conclusion - 1:50
  • Katas
    • 01-Outline - 1:39
    • 02-Stack - 13:43
    • 03-ImmutableStack - 16:55
    • 04-LinkedList - 29:18
    • 05-Conclusion - 0:48
  • Writing Test Doubles
    • 01-Outline - 1:09
    • 02-Demo of a Testing Problem - 3:43
    • 03-Refactoring to Make Code Testable - 4:19
    • 04-Test Doubles - 5:55
    • 05-Hand-Rolled or Manual Test Doubles - 11:53
    • 06-Problems with Manual Test Doubles - 1:16
    • 07-Mocking Frameworks - 7:52
    • 08-Writing Unit Tests with a Mocking Framework - 7:43
    • 09-NSubstitute Mocking Framework. Key Features. Demo - 18:06
    • 10-Detroit School vs London School of Unit Testing - 2:23
    • 11-Conclusion - 1:18
  • Acceptance and Integration Tests
    • 01-Outline - 1:28
    • 02-What is Acceptance Testing - 2:23
    • 03-Overview of SpecFlow - 1:43
    • 04-Gherkin - 3:41
    • 05-Basics of SpecFlow - 9:32
    • 06-Integration and UI-Testing - 5:24
    • 07-UI-Automation Testing Frameworks - 1:05
    • 08-TestStack - 4:00
    • 09-Conclusion - 1:40
  • TDD of a WPF App
    • 01-Outline - 2:18
    • 02-App Overview - 9:00
    • 03-Writing Acceptance Tests - 14:58
    • 04-Building a Bridge to UI - 19:52
    • 05-Implementing Acceptance Tests - 26:37
    • 06-Implementing View Models-Part-1 - 68:23
    • 07-Implementing View Models-Part-2 - 23:38
    • 08-Conclusion - 1:46
  • Thoughts about TDD
    • 01-Outline - 1:00
    • 02-What is TDD in the End - 0:59
    • 03-Agile and TDD - 1:32
    • 04-TDD and Design Upfront - 2:35
    • 05-Do Unit Tests Guarantee the Success - 2:25
    • 06-Having No Tests is Better than Having Bad Tests - 3:22
    • 07-Architecture and Design - 4:56
    • 08-Conclusion - 1:40
  • TDD Best Practices
    • 01-Outline - 1:08
    • 02-Ending the TDD Day - 1:41
    • 03-Pair Programming - 3:23
    • 04-Quality of Tests - 3:35
    • 05-TestData - 1:50
    • 06-Shouldly - 1:33
    • 07-Prefer Positive if-statements - 1:15
    • 08-Testing Trivial Code - 2:59
    • 09-The Rule of Testing a Single Concern - 3:06
    • 10-Singletons and Static Classes - 7:02
    • 11-Builder Design Pattern - 9:08
    • 12-Conclusion - 1:48

View Full Curriculum


Access
Lifetime
Content
4 hours
Lessons
61

Software Architecture: Functional Programming in C#

Learn the Principles of Functional Programming & How to Apply Them to Improve Software Architecture

By EngineerSpock | in Online Courses

Learn how to write C# code in a functional style. This course is for you if you want to improve your code, design, and architecture. It means you are going to learn how to write code of the highest quality: readable, understandable and reliable. The course material is succinct, yet comprehensive. All important concepts are covered.

  • Access 61 lectures & 4 hours of content 24/7
  • Get a deep understanding of what Functional Programming is
  • Learn how to design Immutable types in C#
  • Apply new C# 6 & C# 7 features to write better code in a functional style
  • Learn how to extend & compose any types
  • Handle errors & exceptions in a functional programming style
  • Tackle the problem of null-values by the means of functional programming

Instructor

Elias Fofanov began his career as a postgraduate student participating in Microsoft ImagineCup contest. He's been working with the .NET platform since 2003. He's been professionally architecting and implementing software for nearly 10 years, primarily based on .NET platform. Elias is passionate about building rich and powerful applications using modern technologies. He's a certified specialist in Windows Applications and Service Communication Applications by Microsoft and is one of the coordinators of MskDotNet User Group in Moscow.

Important Details

  • Length of time users can access this course: lifetime
  • Access options: web streaming, mobile streaming
  • Certification of completion included
  • Redemption deadline: redeem your code within 30 days of purchase
  • Experience level required: advanced

Requirements

  • Internet required

Course Outline

  • Introduction to Functional Programming
    • Download Source Code
    • 01-Outline - 1:18
    • 02-Programming Paradigms - 5:00
    • 03-Defining Functional Programming - 3:29
    • 04-Functions Are Everywhere - 2:42
    • 05-Why Functional Programming - 2:30
    • 06-Conclusion - 1:32
  • Core Concepts of Functional Programming
    • 01-Outline - 2:09
    • 02-Immutability - 6:59
    • 03-Temporal Coupling and Immutability - 5:26
    • 04-Side Effects - 8:37
    • 05-Side Effects and Architecture - 3:00
    • 06-CQS - 1:45
    • 07-Declarative Programming Style - 5:34
    • 08-Expressions Over Statements - 6:54
    • 09-Conclusion - 2:04
  • Functional Features
    • 01-Outline - 1:50
    • 02-Extension Methods - 7:26
    • 03-Autoproperties and Immutability - 4:17
    • 04-Expression-Bodied Members - 4:52
    • 05-Pattern Matching - 2:49
    • 06-Tuples Deconstruction - 6:40
    • 07-LocalFunctions - 6:01
    • 08-Conclusion - 1:42
  • Immutability in C#
    • 01-Outline - 2:12
    • 02-Mutable Type - 6:44
    • 03-External Immutability - 2:55
    • 04-Internal Immutability - 4:41
    • 05-Shallow and Popsicle Immutability - 6:54
    • 06-Builder Design Pattern - 9:13
    • 07-Evil Mutable Structures - 8:26
    • 08-Immutability and Memory Pressure - 7:06
    • 09-Conclusion - 1:42
  • Extendibility in C#
    • 01-Outline - 1:36
    • 02-Pipelining - 1:39
    • 03-Extending IDisposable - 9:16
    • 04-General Extensions - 10:23
    • 05-Extending StringBuilder - 10:42
    • 06-Abusing Extenstion Methods - 7:37
    • 07-Conclusion - 1:46
  • Dealing with Errors
    • 01-Outline - 1:11
    • 02-What Does an 'Error' Mean - 3:31
    • 03-Problems with Exceptions - 6:50
    • 04-Common Misconceptions - 3:47
    • 05-Exception Handling Strategies - 5:00
    • 06-CQS Principle - 1:13
    • 07-Tester-Doer - 1:47
    • 08-Errors and Functional Programming - 2:58
    • 09-Pipelining by Method Chaining - 3:15
    • 10-Conclusion on Exceptions Handling - 0:51
    • 11-BCL Exception Types - 1:58
    • 12-Custom Exception Types - 1:14
    • 13-Conclusion - 1:14
  • Dealing with Nulls
    • 01-Outline - 1:54
    • 02-Problems with Nulls - 2:34
    • 03-Null Object Pattern - 2:51
    • 04-Maybe Monad in C# - 3:47
    • 05-Automating Null Checks - 5:24
    • 06-Static Analysis - 2:50
    • 07-Returning IEnumerables - 1:46
    • 08-Conclusion - 1:24

View Full Curriculum


Access
Lifetime
Content
6 hours
Lessons
77

Master the Art of Writing Clean Code in C#

Learn How to Write Clean & Maintainable Code in C#

By EngineerSpock | in Online Courses

In this course, you'll learn how to design and implement types in C# so that the other developers won't hate you when using one of the types developed by you. You'll improve your knowledge in object-oriented programming in the context of clean coding and building types of the highest quality.

  • Access 77 lectures & 6 hours of content 24/7
  • Learn how to give the best names for API members
  • Learn all the tricks related to writing clean functions
  • Avoid common architectural smells
  • Apply principles of functional programming
  • Write cleaner unit tests
  • Practice Test-Driven Development

Instructor

Elias Fofanov began his career as a postgraduate student participating in Microsoft ImagineCup contest. He's been working with the .NET platform since 2003. He's been professionally architecting and implementing software for nearly 10 years, primarily based on .NET platform. Elias is passionate about building rich and powerful applications using modern technologies. He's a certified specialist in Windows Applications and Service Communication Applications by Microsoft and is one of the coordinators of MskDotNet User Group in Moscow.

Important Details

  • Length of time users can access this course: lifetime
  • Access options: web streaming, mobile streaming
  • Certification of completion included
  • Redemption deadline: redeem your code within 30 days of purchase
  • Experience level required: advanced

Requirements

  • Internet required

Course Outline

  • Meta Principles
    • Motivation for Writing Clean Code - 2:17
    • 01-Outline - 2:17
    • 02-DRY - 9:50
    • 03-KISS - 7:37
    • 04-YAGNI - 11:37
    • 05-SoC - 4:28
    • 06-CQS - 2:14
    • 07-PoLA - 3:03
    • 08-Encapsulation - 19:13
    • 09-Conclusion - 2:41
  • Names
    • 01-Outline - 1:28
    • 02-General Principles of Naming - 12:46
    • 03-About Names Once Again - 11:01
    • 04-Violating Naming Conventions - 1:29
    • 05-Naming Conventions in .NET - 7:26
    • 06-Conclusion - 1:11
  • Writing Clean Functions
    • 01-Outline - 1:26
    • 02-Variable Declarations on the Top - 1:04
    • 03-Magic Numbers - 1:31
    • 04-Stringly Typed Smell - 1:08
    • 05-Property vs Method - 6:41
    • 06-Implementing Parameters - 3:20
    • 07-Too Many Parameters - 2:28
    • 08-Too Long Methods - 6:20
    • 09-Creational Patterns VS Constructors - 3:11
    • 10-Method Extraction - 2:40
    • 11-Simplifying Complex Logic - 2:47
    • 12-Sequence of Arguments - 4:17
    • 13-Guard Clauses and Early Returns - 2:27
    • 14-Poor Conditional Clauses - 3:46
    • 15-Output Parameters - 3:00
    • 16-Comments - 3:13
    • 17-Prefer Positive if-statements - 1:02
    • 18-Conclusion - 3:17
  • Common Architectural Design Smells
    • 01-Outline - 1:10
    • 02-Primitives Obsession - 2:50
    • 03-Violation of Law of Demeter - 6:49
    • 04-Temporal Coupling - 1:36
    • 05-Switch Statements - 5:49
    • 06-Refactoring to Strategy - 3:13
    • 07-Refactoring to State - 7:01
    • 08-Conclusion - 1:37
  • Functional Programming - Extendibility and Immutability
    • 01-Outline - 2:16
    • 02-Programming Paradigms - 5:00
    • 03-Defining Functional Programming - 3:29
    • 04-Functions Are Everywhere - 2:42
    • 05-Why Functional Programming - 2:30
    • 06-Immutability - 6:59
    • 07-Immutability of Structs - 4:17
    • 08-Temporal Coupling and Immutability - 5:26
    • 09-Pipelining - 1:39
    • 10-Extending IDisposable - 9:08
    • 11-General Extensions - 10:23
    • 12-Extending StringBuilder - 10:36
    • 13-Primitive Obsession - Abusing Extension Methods - 7:49
    • 14-Builder Design Pattern - 9:08
    • 15-Errors and Functional Programming - 2:58
    • 16-Handling Errors by Methods Chaining - 5:35
    • 17-Conclusion - 2:52
  • DI-Related Anti-Patterns & Refactorings
    • 01-Outline - 1:57
    • 02-Control Freak - 7:22
    • 03-Hidden Dependencies with Service Locator - 4:08
    • 04-Temporal Coupling and Constructor Injection - 1:47
    • 05-Constructor Over-Injection - 4:02
    • 06-Ambient Context - 3:39
    • 07-Facade Service - 2:58
    • 08-Property Injection vs Bastard Injection - 3:34
    • 09-Cyclic Dependencies - 11:34
    • 10-Conclusion - 2:19
  • Clean Code and TDD
    • 01-Outline - 0:48
    • 02-What is TDD - 5:00
    • 03-Red Green Refactor - 4:16
    • 04-Three Laws of TDD - 1:42
    • 05-Reading Roman Numerals - 12:07
    • 06-Continuos Testing - 3:57
    • 07-TicTacToe - 36:17
    • 08-Conclusion - 1:04

View Full Curriculum


Access
Lifetime
Content
4 hours
Lessons
53

C# in Depth: Puzzles, Gotchas, Questions at Interviews

Discover C# Tips & Interview Traps

By EngineerSpock | in Online Courses

This course contains mostly practical puzzles that can help you become a better C# developer. Through fun, engaging puzzles and projects, this course deepens your understanding of C#. You’ll also learn about the fundamental problems related to processing date and time values and get a valuable instruction in how to ace your C# interviews.

  • Access 53 lectures & 4 hours of content 24/7
  • Discuss the evilness of the mutable structures
  • Discover how floating-point numbers are implemented, how to compare them, how arithmetic overflow behaves with different types, how rounding works, & the difference between decimal and money
  • Explore collections & LINQ
  • Cover overloading base methods, method hiding, & more
  • Discuss date & time puzzles
  • Get an FAQ of C# interviews

Instructor

Elias Fofanov began his career as a postgraduate student participating in Microsoft ImagineCup contest. He's been working with the .NET platform since 2003. He's been professionally architecting and implementing software for nearly 10 years, primarily based on .NET platform. Elias is passionate about building rich and powerful applications using modern technologies. He's a certified specialist in Windows Applications and Service Communication Applications by Microsoft and is one of the coordinators of MskDotNet User Group in Moscow.

Important Details

  • Length of time users can access this course: lifetime
  • Access options: web streaming, mobile streaming
  • Certification of completion included
  • Redemption deadline: redeem your code within 30 days of purchase
  • Experience level required: advanced

Requirements

  • Internet required

Course Outline

  • Evil Mutable Structures
    • Download Source Code
    • 01-Outline - 1:03
    • 02-Mutating Through Readonly Fields - 4:01
    • 03-Mutating Through Arrays - 3:58
    • 04-Mutating Within Using - 6:21
    • 05-Conclusion - 0:48
  • Generics, Arrays, LSP and Variance
    • 01-Outline - 1:33
    • 02-Specialization - 4:15
    • 03-Constraints - 7:17
    • 04-Variance and Generics - 8:22
    • 05-LSP - 5:09
    • 06-LSP Demo - 8:01
    • 07-More on Variance and Contravariance - 5:38
    • 08-Conclusion - 2:59
  • Math Puzzles
    • 01-Outline - 1:58
    • 02-Floating Point Numbers - 17:13
    • 03-Arithmetic Overflow - 9:07
    • 04-Check for Arithmetic Overflow - 5:58
    • 05-Rounding - 6:22
    • 06-Decimal and Money - 9:36
    • 07-Conclusion - 2:02
  • Collections and LINQ
    • 01-Outline - 1:01
    • 02-Altering List - 7:17
    • 03-LINQ-Deferred Execution - 2:59
    • 04-LINQ-Closures - 5:00
    • 05-Generics Conversion - 5:09
    • 06-Conclusion - 1:00
  • Methods and Overloading
    • 01-Outline - 1:20
    • 02-Overloading Base Method - 4:14
    • 03-Method Hiding - 4:33
    • 04-Property vs Method - 6:41
    • 05-Impl Abstract Classes - 7:29
    • 06-Conclusion - 1:49
  • DateTime Puzzlers
    • 01-Outline - 4:02
    • 02-Concepts - 9:16
    • 03-General Puzzles - 6:46
    • 04-DateTime Roundtrip Puzzle - 6:14
    • 05-Arithemic on Dates - 4:06
    • 06-Calculating the Age - 6:33
    • 07-Conclusion - 6:00
  • FAQ at Interviews
    • 01-Outline - 2:05
    • 02-Abstract Class vs Interface - 5:11
    • 03-Implementing Dispose Pattern - 12:04
    • 04-Encapsulation and Information Hiding - 9:57
    • 05-Encapsulation in Practice - 9:18
    • 06-Interning - 6:09
    • 07-Const vs Readonly - 3:14
    • 08-Lock vs Monitor - 3:23
    • 09-Rethrowing Exceptions - 2:52
    • 10-StringBuilder vs String - 2:19
    • 11-Conclusion - 1:22
  • Miscellaneous Puzzles
    • 01-Weirdness of Nullable Comparisons - 4:25
    • 02-Out Arguments - 1:36

View Full Curriculum


Access
Lifetime
Content
4 hours
Lessons
71

Complete Practical LINQ Tutorial for C# Developers

Cover All Things LINQ

By EngineerSpock | in Online Courses

Extension methods were introduced in C# 3 and since then became an indispensable part of the .NET platform. That enormously powerful feature allowed to have a whole framework built upon it called LINQ or Language Integrated Query. If you still feel uncomfortable with LINQ or you want to improve your understanding of LINQ, then this course is for you. This course is not only about LINQ but about the fundamentals of functional programming as well.

  • Access 71 lectures & 4 hours of content 24/7
  • Learn the basics of LINQ
  • Generate data streams
  • Discuss conversions
  • Get an overview of LINQ to XML
  • Understand EF & LINQ
  • Explore extendibility in C#

Instructor

Elias Fofanov began his career as a postgraduate student participating in Microsoft ImagineCup contest. He's been working with the .NET platform since 2003. He's been professionally architecting and implementing software for nearly 10 years, primarily based on .NET platform. Elias is passionate about building rich and powerful applications using modern technologies. He's a certified specialist in Windows Applications and Service Communication Applications by Microsoft and is one of the coordinators of MskDotNet User Group in Moscow.

Important Details

  • Length of time users can access this course: lifetime
  • Access options: web streaming, mobile streaming
  • Certification of completion included
  • Redemption deadline: redeem your code within 30 days of purchase
  • Experience level required: advanced

Requirements

  • Internet required

Course Outline

  • Introduction to LINQ
    • Download Source Code
    • 01-Outline - 1:01
    • 02-LINQ is Everywhere - 1:53
    • 03-Extension Methods - 7:19
    • 04-Pipelining - 2:27
    • 05-Why LINQ - 6:31
    • 06-The Role of IEnumerable - 3:15
    • 07-Extending IEnumerable - 5:26
    • 08-ParsingCsvFile - 6:00
    • 09-Named vs Anonymous vs Separate Methods - 3:51
    • 10-Query Syntax - 3:20
    • 11-Classification of LINQ Operators
    • 12-YieldReturn - 6:06
    • 13-LINQ Deferred Execution - 3:22
    • 14-Exceptions and LINQ - 1:49
    • 15-Multiple Enumeration Pitfall - 6:57
    • 16-Altering List - 7:10
    • 17-Conclusion - 2:20
  • Generating Data Streams
    • 01-Outline - 0:31
    • 02-Range-Repeat-Empty - 2:11
    • 03-Generating Random Numbers - 2:26
    • 04-Conclusion - 0:37
  • Filtering, Ordering, Projecting
    • 01-Outline - 0:54
    • 02-Select - 5:17
    • 03-Where - 3:22
    • 04-ThenBy - 1:53
    • 05-First, Last, Single, OrDefault - 6:42
    • 06-TakeWhile and SkipWhile - 3:50
    • 07-SequenceEqual - 2:58
    • 08-Distinct - 5:36
    • 09-Any, All, Contains - 4:49
    • 10-SelectMany - 3:28
    • 11-ElementAt and Counting - 3:42
    • 12-Conclusion - 2:22
  • Joining, Grouping, Aggregating
    • 01-Outline - 0:43
    • 02-Join - 4:06
    • 03-GroupBy - 5:30
    • 04-GroupJoin - 4:15
    • 05-Zip - 2:38
    • 06-Min, Max, Sum, Average - 3:21
    • 07-Concat and Union - 5:28
    • 08-Intersect and Except - 2:52
    • 09-Conclusion - 1:21
  • Conversions
    • 01-Outline - 0:44
    • 02-OfTypeCast - 2:16
    • 03-ToArray, ToList, ToDictionary, ToLookup - 8:02
    • 04-Pitfalls of Conversion - 5:09
    • 05-Conclusion - 1:24
  • LINQ to XML
    • 01-Outline - 0:36
    • 02-XML Document Structure - 1:46
    • 03-Creating XML from a Collection - 5:04
    • 04-Refactoring Code - 3:19
    • 05-Reading XML - 5:44
    • 06-Conclusion - 0:49
  • LINQ to Entities
    • 01-Outline - 0:31
    • 02-Preparing the Project - 3:56
    • 03-Inserting & Reading - 3:18
    • 04-Pitfalls of LINQ to Entities - 4:17
    • 05-Expressions, AsEnumerable and AsQueryable - 11:15
    • 06-Conclusion - 1:03
  • Extendibility in C#
    • 01-Outline - 1:52
    • 02-Defining Functional Programming - 3:29
    • 03-Functions Are Everywhere - 2:42
    • 04-Why Functional Programming - 2:30
    • 05-Immutability - 6:59
    • 06-Purity and Side Effects - 8:31
    • 07-Extending IDisposable - 9:16
    • 08-General Extensions - 10:23
    • 09-Extending StringBuilder - 10:34
    • 10-Primitive Obsession - 7:37
    • 11-Conclusion - 1:56

View Full Curriculum


Access
Lifetime
Content
8 hours
Lessons
78

Automate Applications with SpecFlow and Selenium WebDriver in C#

Cover Behavior-Driven Development with SpecFlow & Selenium WebDriver with C#

By EngineerSpock | in Online Courses

This course is all about growing object-oriented software guided by tests. SpecFlow is a framework which brings Behavior-Driven Development (BDD) into life. It's all about filling the gap between technical people and domain experts. Selenium is a framework which allows you to drive web browsers. In other words, with the power of Selenium, you can write a program which automatically interacts with elements on a web page. TestStack.White (sometimes, written as "teststack white") is a framework which allows you to drive WinForms and WPF applications. In this course, you'll learn all three.

  • Access 78 lectures & 8 hours of content 24/7
  • Discuss the theoretical background behind different types of testing
  • Take a deep-dive into SpecFlow
  • Get a full understanding of Selenium WebDriver
  • Scrape a live website w/ Selenium WebDriver
  • Learn how to manage a web browser

Instructor

Elias Fofanov began his career as a postgraduate student participating in Microsoft ImagineCup contest. He's been working with the .NET platform since 2003. He's been professionally architecting and implementing software for nearly 10 years, primarily based on .NET platform. Elias is passionate about building rich and powerful applications using modern technologies. He's a certified specialist in Windows Applications and Service Communication Applications by Microsoft and is one of the coordinators of MskDotNet User Group in Moscow.

Important Details

  • Length of time users can access this course: lifetime
  • Access options: web streaming, mobile streaming
  • Certification of completion included
  • Redemption deadline: redeem your code within 30 days of purchase
  • Experience level required: advanced

Requirements

  • Internet required

Course Outline

  • Introduction to Integration and Acceptance Testing
    • Download Source Code
    • 01-Outline - 1:30
    • 02-Different Types of Tests - 4:45
    • 03-Integration and UI Testing - 1:54
    • 04-Are Integration Tests Pure Evil? - 4:18
    • 05-Why Automated UI Tests - 3:01
    • 06-What is Acceptance Testing - 2:21
    • 07-Acceptance and UI-Automation Testing Frameworks - 1:33
    • 08-Conclusion - 1:15
  • Introduction to SpecFlow
    • 01-Outline - 0:57
    • 02-Why SpecFlow - 2:59
    • 03-BDD vs ATDD - 1:30
    • 04-SpecFlow Workflow - 2:24
    • 05-Overview of SpecFlow - 1:43
    • 06-Gherkin. Features and Scenarios - 3:29
    • 07-Basics of SpecFlow - 9:26
    • 08-Two Approaches to Implementation of Acceptance Tests - 3:22
    • 09-Conclusion - 1:04
  • SpecFlow in Details
    • 01-Outline - 1:22
    • 02-Generating Steps in Details - 3:30
    • 03-Demo Example Overview - 1:24
    • 04-Writing the First Test - 4:37
    • 05-Running and Debugging Acceptance Tests - 3:19
    • 06-Adding new Cases - 4:14
    • 07-Passing Parameters - 6:35
    • 08-Scenario Outlines - 5:32
    • 09-Passing Data Tables - 8:17
    • 10-Scenario Background - 2:28
    • 11-Converting Parameter Types - 2:01
    • 12-Converting Tables - 6:31
    • 13-Converting Tables to Sets - 9:14
    • 14-Custom Conversions - 13:18
    • 15-Sharing Data Between Steps - 10:49
    • 16-Categorizing Tests by Tags - 3:55
    • 17-Scoped Execution - 8:57
    • 18-Scoping and Workflow - 4:38
    • 19-Hooks Overview - 4:41
    • 20-Hook Demo - 6:12
    • 21-Conclusion - 2:02
  • Introduction to Selenium
    • 01-Selenium Overview - 3:22
    • 02-Demo Web Site - 2:03
    • 03-First Automation Example - 8:00
    • 04-Locators - 10:52
    • 05-XPath - 14:03
    • 06-CSS Selectors - 8:18
    • 07-Input, CheckBox, RadiButton, DropDown Menu - 20:12
    • 08-Dynamic Nature of Modern Web Sites - 2:01
    • 09-Explicit and Implicit Timeouts - 6:04
    • 10-Locators Priority - 2:41
    • 11-Scenarios to Test - 0:58
    • 12-SpecFlow and UI-Testing Frameworks - 2:56
    • 13-Conclusion - 1:11
  • Selenium. Automating a WebSite
    • 01-Outline - 1:22
    • 02-Web Site Overview - 5:08
    • 03-Setting up a Project - 3:55
    • 04-SignIn Page - 7:02
    • 05-Page Object Design Pattern - 10:30
    • 06-Enhancing Page Object Design Pattern - 16:16
    • 07-Refactoring using WebPage - 8:21
    • 08-Uploading Files. Preparation - 4:33
    • 09-Uploading Files. Coding - 26:53
    • 10-Conclusion - 1:33
  • Selenium. Extras.
    • 01-Outline - 0:46
    • 02-Writing Tests for Different Browsers - 10:07
    • 03-Managing Window Size and Location - 4:14
    • 04-Open new Tabs and Windows - 5:30
    • 05-Close Tabs and Windows - 4:52
    • 06-Conclusion - 1:17
  • TestStack.White and WPF App by TDD
    • Download Source Code
    • 01-Outline - 2:18
    • 02-App Overview - 9:00
    • 03-TestStack.White Overview - 3:47
    • 04-Writing Acceptance Tests - 14:58
    • 05-Building a Bridge to UI - 19:52
    • 06-Implementing Acceptance Tests - 26:37
    • 07-Implementing View Models-Part-1 - 68:23
    • 08-Implementing View Models-Part-2 - 23:38
    • 09-Conclusion - 1:38

View Full Curriculum


Access
Lifetime
Content
12 hours
Lessons
92

Algorithms & Data Structures in C#: Complete Tutorial

Learn Data Structures & Algorithms in C# from A to Z

By EngineerSpock | in Online Courses

Algorithms and data structures constitute the fundamentals of programming. A good understanding of algorithms and data structures is one of the most important requirements for a great number of work positions. If you're not good at algorithms and data structures, you'll never pass a coding interview in a decent company. As such, this course is here to prepare you for that future.

  • Access 92 lectures & 12 hours of content 24/7
  • Get an introduction to algorithms & data structures
  • Determine how long will a program work & build a log-log plot, approximations
  • Discuss arrays, lists, stacks, queues, & more
  • Learn how to sort algorithms

Instructor

Elias Fofanov began his career as a postgraduate student participating in Microsoft ImagineCup contest. He's been working with the .NET platform since 2003. He's been professionally architecting and implementing software for nearly 10 years, primarily based on .NET platform. Elias is passionate about building rich and powerful applications using modern technologies. He's a certified specialist in Windows Applications and Service Communication Applications by Microsoft and is one of the coordinators of MskDotNet User Group in Moscow.

Important Details

  • Length of time users can access this course: lifetime
  • Access options: web streaming, mobile streaming
  • Certification of completion included
  • Redemption deadline: redeem your code within 30 days of purchase
  • Experience level required: advanced

Requirements

  • Internet required

Course Outline

  • Intro to Algorithms and Data Structures
    • 01-Download Source Code
    • 02-Introduction to Data Structures - 5:43
    • 03-Introduction to Algorithms - 4:03
  • Intro to Algorithm Analysis
    • 01-Complexity - 16:06
    • 02-LogLog-Plot - 5:23
    • 03-Approximations - 5:40
    • 04-Orders of Growth - 5:01
  • Arrays
    • 01-Quick Overview of Arrays in C# - 20:02
    • 02-Arrays In Memory - 9:21
    • 03-Time Complexitiy of Operations on Array - 16:18
  • Sorting Algorithms
    • 01-Bubble Sort (Theory) - 6:21
    • 02-Bubble Sort (Implementation) - 14:03
    • 03-Stable and Unstable Sort - 5:34
    • 04-Selection Sort (Theory) - 4:03
    • 05-Selection Sort (Implementation) - 5:24
    • 06-Insertion Sort (Theory) - 6:21
    • 07-Insertion Sort (Implementation) - 5:46
    • 08-Recursion - 14:32
    • 09-Shell Sort (Theory) - 12:23
    • 10-Shell Sort (Implementation) - 8:35
    • 11-Merge Sort (Theory) - 7:43
    • 12-Merge Sort (Implementation) - 12:27
    • 13-Quick Sort (Theory) - 8:07
    • 14-Quick Sort (Implementation) - 7:39
  • Lists
    • 01-List Built-In BCL - 22:56
    • 02-Node as a Building Block - 7:43
    • 03-Linked Lists - 1:09
    • 04-Singly Linked List (Theory) - 4:28
    • 05-Singly Linked List (Implementation) - 24:11
    • 06-Doubly Linked List (Theory) - 2:02
    • 07-Doubly Linked List (Implementation) - 13:43
    • 08-Linked List Built In BCL - 5:39
  • Stacks
    • 01-Stacks (Theory) - 4:46
    • 02-Stacks Implementation (Array) - 16:06
    • 03-Stack Implementation (LinkedList) - 7:17
    • 04-Stack Built In BCL - 3:26
  • Queues
    • 01-Queue (Theory) - 6:11
    • 02-Queue (Implementation) - 11:37
    • 03-Circular Queue (Theory) - 2:07
    • 04-Circular Queue (Implementation) - 15:32
    • 05-Queue Implementation (Linked List) - 5:51
    • 06-Queue Built-In BCL - 5:30
  • Search Algorithms
    • 01-Linear Search - 19:29
    • 02-Binary Search (Theory) - 3:03
    • 03-Binary Search (Implementation) - 11:30
  • Symbol Tables
    • 01-Introduction to Symbol Tables - 2:37
    • 02-General API of Symbol Tables - 6:31
    • 03-Sequential Search - 12:35
    • 04-Sequential Search - Homework - 0:53
    • 05-Sequential Search - Solution for Homework - 6:12
    • 06-BST - 26:10
    • 07-BST Homework - 2:39
    • 08-BST Solution for Homework - 11:26
    • 09-Conclusion - 1:11
  • Hashing and Symbol Tables
    • 01-Introduction - 4:53
    • 02-More on Hashing - 9:53
    • 03-GetHashCode by Default in Ref and Val - 6:50
    • 04-Implementing GetHashCode - 28:25
    • 05-Resolving Collisions - 4:56
    • 06-Separate Chaining - 20:39
    • 07-Separate Chaining HW - 1:59
    • 08-Separate Chaining HW-Solution - 16:24
    • 09-Linear Probing - 22:02
    • 10-Dictionary in BCL Internals - 4:37
    • 11-Sets in .NET - 7:31
  • Trees
    • 01-Intro - 4:21
    • 02-BST (Theory) - 6:32
    • 03-Simple BST Implementation - 25:43
    • 04-Removal Theory - 5:29
    • 05-Removal Implementation - 9:21
  • Heaps
    • 01-Heaps Intro - 3:54
    • 02-Heaps and Arrays - 3:31
    • 03-Heap Insertion (Theory) - 2:17
    • 04-Heap Implementation - 15:40
    • 05-Heap Remove Theory - 3:18
    • 06-Heap Remove Implementation - 18:13
    • 07-Heap Performance - 1:11
    • 08-Heap Sort - 5:11
    • 09-Heap Sort Implementation - 4:58
  • Concurrent Collections
    • 01-Outline - 1:32
    • 02-Introduction - 4:37
    • 03-Immutability and Memory Pressure - 6:36
    • 04-Immutable Stack and Queue - 9:24
    • 05-Immutable List - 4:35
    • 06-Immutable Sets - 5:23
    • 07-Immutable Dictionaries - 4:28
    • 08-Builders in Immutable Collections - 4:13
    • 09-ConcurrentQueue and ConcurrentStack - 5:49
    • 10-ConcurrentBag - 4:08
    • 11-ConcurrentDictionary - 7:49
    • 12-Conclusion - 2:01
  • Different Algorithms
    • 01-Sieve of Eratosthenes - 10:11

View Full Curriculum



Terms

  • Unredeemed licenses can be returned for store credit within 15 days of purchase. Once your license is redeemed, all sales are final.