项目作者: kolosovpetro
项目描述 :
Computer science, Algorithms, Data Structures, Object Oriented Programming, Design Patterns, SOLID
高级语言: C#
项目地址: git://github.com/kolosovpetro/Computer-Science.git
Learning C# (Basics, Algorithms, Design Patterns, Data Structures, SOLID)
“I am not afraid of a person who knows 10000 kicks. But I am afraid of a person who knows one kick but practices it for 10000 times.” - Bruce Lee
Contents
Introduction to Computer Programming
- Assignments 1. Read input from keyboard, Casting variables, Elementary loops
- Assignments 2. Proper input verification, Conditional statements [if, switch, ternary operator], Sorting network
- Assignments 3. Enums, String to enum parse, Menu using enum, Switch statement, Stringbuilder, Random
- Assignments 4. Arrays, Bubble sort, Sieve of Eratosthenes, Tic-tac-toe console game
- Assignments 5. Structs, Reccursive functions, Tic-tac-toc class segragation
- Assignments 5. Libraries. Creating of class libraries, making reference to them in entry point project and execute
- Assignments 6. Writing to files, Reading from files, Nested loops, Date-time, Creating folders, Value tuples
- Assignments 7. NUnit testing framework [exception test], Documentation, Custom exceptions
Object Oriented Programming
Refer to https://kolosovpetro.github.io/cs/oop/
- Object-oriented programming 1. Encapsulation, Getters, Setters, Access modifiers
- Object-oriented programming 2. Constructors, Constructor flow, This reference
- Object-oriented programming 3. Inheritance, Overriding, base keyword, Polymorphism, Upcast
- Object-oriented programming 4. Interfaces, implementations
- Project: Hospital management application, WinForms. Contains all OOP techniques + binary serialization in use
- Object-oriented programming 5. Operator overriding
- Object-oriented programming 6. Converters
- Object-oriented programming 7. Aggregation vs Composition. Definitions and comparisons.
Design Patterns
Refer to website: https://refactoring.guru/design-patterns
- Creational
- Factory Method (Extends functionality of program)
- Abstract Factory
- Builder (Avoiding huge number of parameters withing object’s consturctor. Combination of parameters.)
- Prototype (Deepcopy of class)
- Structural
- Decorator (Combines required functionalities)
- Bridge
- Behavioral
- Observer (Defines interaction between two or more classes)
- Strategy (Extends functionality of program)
Data Structures
SOLID
A set of principles recommended to follow in order to maintain business applications. Contains examples of both convinient and unconviniet examples
- Single Responsibility Principle -
Do one thing, but do it best
- Open-Closed Principle -
App. should be open for extension, but closed for modification
. Usually, solved by pattern Strategy
- Liskov Substitution Principle -
Proper abstractization, where all subclasses correctly implements methods from base class
- Interface Segregation Principle -
Clients should not be forced to depend upon interfaces that they do not use.
- Dependency Inversion Principle
High-level modules should not depend on low-level modules. Both should depend on abstractions.
Abstractions should not depend on details. Details should depend on abstractions.
ASP NET MVC Core
PostgreSQL and Entity Framework Core
- Code First Approach (Migrations)
- Database First Approach (Reverse engineering)
ADO .NET
- Introduction
- Active record pattern
- Data mapper pattern
- Identity map pattern
- Treadsafe singleton
- C# Keywords
- Mutable and Immutable types
- Notes
- Nullable structs
- Git pull request guide
- Terminology
Computational Methods
- Numerical Sys. Converter (Guide now not to write code)
- System of Linear Equations Solver
- Polynomial Interpolation (Vandermonde method)
- Discrete Integration (Simpson’s, Trapezoidal methods)
- Monte Carlo Method (Estimation on the plan finishing time)
Algorithms
Refer to https://kolosovpetro.github.io/cs/data_structures_and_algorithms/
Useful Links