Computer-Science
所属分类:图形图像处理
开发工具:C#
文件大小:3924KB
下载次数:0
上传日期:2020-09-07 17:27:15
上 传 者:
sh-1993
说明: 计算机科学,算法,数据结构,面向对象编程,设计模式,SOLID
(Computer science, Algorithms, Data Structures, Object Oriented Programming, Design Patterns, SOLID)
文件列表:
Computer-Science-develop (0, 2020-09-08)
Computer-Science-develop\ASPNETCore (0, 2020-09-08)
Computer-Science-develop\ASPNETCore\DVDRentalStore (0, 2020-09-08)
Computer-Science-develop\ASPNETCore\DVDRentalStore\App.config (274, 2020-09-08)
Computer-Science-develop\ASPNETCore\DVDRentalStore\Controllers (0, 2020-09-08)
Computer-Science-develop\ASPNETCore\DVDRentalStore\Controllers\AdminController.cs (4386, 2020-09-08)
Computer-Science-develop\ASPNETCore\DVDRentalStore\Controllers\ClientController.cs (1822, 2020-09-08)
Computer-Science-develop\ASPNETCore\DVDRentalStore\Controllers\HomeController.cs (217, 2020-09-08)
Computer-Science-develop\ASPNETCore\DVDRentalStore\DAL (0, 2020-09-08)
Computer-Science-develop\ASPNETCore\DVDRentalStore\DAL\rentalContext.cs (7566, 2020-09-08)
Computer-Science-develop\ASPNETCore\DVDRentalStore\DVDRentalStore.csproj (1344, 2020-09-08)
Computer-Science-develop\ASPNETCore\DVDRentalStore\DVDRentalStore.sln (1108, 2020-09-08)
Computer-Science-develop\ASPNETCore\DVDRentalStore\Infrastructure (0, 2020-09-08)
Computer-Science-develop\ASPNETCore\DVDRentalStore\Infrastructure\DbFactory.cs (222, 2020-09-08)
Computer-Science-develop\ASPNETCore\DVDRentalStore\Infrastructure\IDbFactory.cs (148, 2020-09-08)
Computer-Science-develop\ASPNETCore\DVDRentalStore\Migrations (0, 2020-09-08)
Computer-Science-develop\ASPNETCore\DVDRentalStore\Migrations\20200515012510_CascadeDeleteEnabled.Designer.cs (9077, 2020-09-08)
Computer-Science-develop\ASPNETCore\DVDRentalStore\Migrations\20200515012510_CascadeDeleteEnabled.cs (7231, 2020-09-08)
Computer-Science-develop\ASPNETCore\DVDRentalStore\Migrations\RentalContextModelSnapshot.cs (8990, 2020-09-08)
Computer-Science-develop\ASPNETCore\DVDRentalStore\Models (0, 2020-09-08)
Computer-Science-develop\ASPNETCore\DVDRentalStore\Models\ActorsModel.cs (494, 2020-09-08)
Computer-Science-develop\ASPNETCore\DVDRentalStore\Models\ClientsModel.cs (493, 2020-09-08)
Computer-Science-develop\ASPNETCore\DVDRentalStore\Models\CopiesModel.cs (478, 2020-09-08)
Computer-Science-develop\ASPNETCore\DVDRentalStore\Models\EmployeesModel.cs (310, 2020-09-08)
Computer-Science-develop\ASPNETCore\DVDRentalStore\Models\ErrorViewModel.cs (198, 2020-09-08)
Computer-Science-develop\ASPNETCore\DVDRentalStore\Models\MoviesModel.cs (631, 2020-09-08)
Computer-Science-develop\ASPNETCore\DVDRentalStore\Models\RentalsModel.cs (402, 2020-09-08)
Computer-Science-develop\ASPNETCore\DVDRentalStore\Models\StarringModel.cs (283, 2020-09-08)
Computer-Science-develop\ASPNETCore\DVDRentalStore\Program.cs (521, 2020-09-08)
Computer-Science-develop\ASPNETCore\DVDRentalStore\Properties (0, 2020-09-08)
Computer-Science-develop\ASPNETCore\DVDRentalStore\Properties\Resources.resx (4320, 2020-09-08)
Computer-Science-develop\ASPNETCore\DVDRentalStore\Properties\launchSettings.json (627, 2020-09-08)
Computer-Science-develop\ASPNETCore\DVDRentalStore\Repositories (0, 2020-09-08)
Computer-Science-develop\ASPNETCore\DVDRentalStore\Repositories\ClientsRepository.cs (283, 2020-09-08)
Computer-Science-develop\ASPNETCore\DVDRentalStore\Repositories\CopiesRepository.cs (280, 2020-09-08)
Computer-Science-develop\ASPNETCore\DVDRentalStore\Repositories\EmployeesRepository.cs (289, 2020-09-08)
Computer-Science-develop\ASPNETCore\DVDRentalStore\Repositories\IRepository.cs (873, 2020-09-08)
Computer-Science-develop\ASPNETCore\DVDRentalStore\Repositories\MoviesRepository.cs (280, 2020-09-08)
Computer-Science-develop\ASPNETCore\DVDRentalStore\Repositories\RentalsRepository.cs (283, 2020-09-08)
... ...
## 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](https://github.com/kolosovpetro/Computer-Science/blob/master/#introduction-to-computer-programming)
- [Object Oriented Programming](https://github.com/kolosovpetro/Computer-Science/blob/master/#object-oriented-programming)
- [Design patterns](https://github.com/kolosovpetro/Computer-Science/blob/master/#design-patterns)
- [Data Structures](https://github.com/kolosovpetro/Computer-Science/blob/master/#data-structures)
- [SOLID](https://github.com/kolosovpetro/Computer-Science/blob/master/#solid)
- [ASP .NET MVC Core](https://github.com/kolosovpetro/Computer-Science/blob/master/#asp-net-mvc-core)
- [PostgreSQL and Entity Framework Core](https://github.com/kolosovpetro/Computer-Science/blob/master/#postgresql-and-entity-framework-core)
- [ADO .NET](https://github.com/kolosovpetro/Computer-Science/blob/master/#ado-net)
- [Information](https://github.com/kolosovpetro/Computer-Science/blob/master/#information)
- [Computational Methods](https://github.com/kolosovpetro/Computer-Science/blob/master/#computational-methods)
- [Algorithms](https://github.com/kolosovpetro/Computer-Science/blob/master/#algorithms)
---
## Introduction to Computer Programming
- **Assignments 1**. Read input from keyboard, Casting variables, Elementary loops
- Lecture: https://kolosovpetro.github.io/cs/itcp/01Introduction.pdf
- Tasks: https://kolosovpetro.github.io/cs/itcp/exercises/01Introduction_Exercises.pdf
- **Assignments 2**. Proper input verification, Conditional statements [if, switch, ternary operator], Sorting network
- Lecture: https://kolosovpetro.github.io/cs/itcp/02Basics.pdf
- Tasks: https://kolosovpetro.github.io/cs/itcp/exercises/02Basics_Exercises.pdf
- **Assignments 3**. Enums, String to enum parse, Menu using enum, Switch statement, Stringbuilder, Random
- Lecture: https://kolosovpetro.github.io/cs/itcp/03Basics.pdf
- Tasks: https://kolosovpetro.github.io/cs/itcp/exercises/03Basics_Exercises.pdf
- **Assignments 4**. Arrays, Bubble sort, Sieve of Eratosthenes, Tic-tac-toe console game
- Lecture: https://kolosovpetro.github.io/cs/itcp/04Arrays.pdf
- Tasks: https://kolosovpetro.github.io/cs/itcp/exercises/04Arrays_Exercises.pdf
- **Assignments 5**. Structs, Reccursive functions, Tic-tac-toc class segragation
- Lecture: https://kolosovpetro.github.io/cs/itcp/05Functions.pdf
- Tasks: https://kolosovpetro.github.io/cs/itcp/exercises/05Functions_Exercises.pdf
- **Assignments 5**. Libraries. Creating of class libraries, making reference to them in entry point project and execute
- Lecture: https://kolosovpetro.github.io/cs/itcp/05Functions.pdf
- Tasks: https://kolosovpetro.github.io/cs/itcp/exercises/05Functions_Exercises.pdf
- **Assignments 6**. Writing to files, Reading from files, Nested loops, Date-time, Creating folders, Value tuples
- Lecture: https://kolosovpetro.github.io/cs/itcp/06Streams.pdf
- Tasks: https://kolosovpetro.github.io/cs/itcp/exercises/06Streams_Exercises.pdf
- **Assignments 7**. NUnit testing framework [exception test], Documentation, Custom exceptions
- Lecture: https://kolosovpetro.github.io/cs/itcp/07Documentation.pdf
- Tasks: https://kolosovpetro.github.io/cs/itcp/exercises/07Documentation_Exercises.pdf
## Object Oriented Programming
Refer to https://kolosovpetro.github.io/cs/oop/
- **Object-oriented programming 1**. Encapsulation, Getters, Setters, Access modifiers
- Lecture: https://kolosovpetro.github.io/cs/oop/OOP_CS_01.pdf
- Tasks: https://kolosovpetro.github.io/cs/oop/exercises/Task1.pdf
- **Object-oriented programming 2**. Constructors, Constructor flow, This reference
- Lecture: https://kolosovpetro.github.io/cs/oop/OOP_CS_02.pdf
- Tasks: https://kolosovpetro.github.io/cs/oop/exercises/Task2.pdf
- **Object-oriented programming 3**. Inheritance, Overriding, base keyword, Polymorphism, Upcast
- Lecture: https://kolosovpetro.github.io/cs/oop/OOP_CS_03.pdf
- Tasks: https://kolosovpetro.github.io/cs/oop/exercises/Task3.pdf
- Polymorphism types: Ad-Hoc (overload of methods), Parametrical (Generics), Subtype polymorphism (Upcast, downcast)
- **Object-oriented programming 4**. Interfaces, implementations
- Lecture: https://kolosovpetro.github.io/cs/oop/OOP_CS_04.pdf
- Tasks: https://kolosovpetro.github.io/cs/oop/exercises/Task4.pdf
- **Project**: Hospital management application, WinForms. Contains all OOP techniques + binary serialization in use
- **Object-oriented programming 5**. Operator overriding
- Lecture: https://kolosovpetro.github.io/cs/oop/OOP_CS_06.pdf
- **Object-oriented programming 6**. Converters
- Lecture: https://kolosovpetro.github.io/cs/oop/OOP_CS_07-1.pdf
- **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
- **Implemented data structures**
- Dictionary
- Graph
- Heap
- LinkedList
- Queue
- Stack
- Tree
- Weighted Graph
- Binary Search Tree (in progress. See good visualization: http://btv.melezinek.cz/binary-search-tree.html)
- Generic List (in progress)
- **To be implemented**
- Priority Queue
- **What's used**
- NUnit UnitTest Framework
- Generics
- Indexers
- IEnumerable interface implementation
## 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
- https://github.com/kolosovpetro/Computer-Science/tree/develop/ASP%20NET%20MVC
## 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
## Information
- **C# Keywords**
- https://github.com/kolosovpetro/Computer-Science/tree/develop/Information/Keywords
- **Mutable and Immutable types**
- https://github.com/kolosovpetro/Computer-Science/tree/develop/Information/MutablesAndImmutables
- **Notes**
- https://github.com/kolosovpetro/Computer-Science/tree/develop/Information/Notes
- **Nullable structs**
- https://github.com/kolosovpetro/Computer-Science/tree/develop/Information/Nullables
- **Git pull request guide**
- https://github.com/kolosovpetro/Computer-Science/tree/develop/Information/GitPullRequest
- **Terminology**
- https://github.com/kolosovpetro/Computer-Science/tree/develop/Information/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/
- **Search Algorithms and their benchmark measurements**
- Linear Search
- Binary Search
- **Sort Algorithms and their benchmark measurements**
- Bubble sort. Complexity O(n^2)
- Cocktail sort. Complexity (Buble 2 pass sort) O(n^2)
- Counting sort. Complexity O(n+k), k = non negative terms count
- Insertion sort. Complexity O(n)
- Merge sort. Complexity O(n*log(n))
- Quick sort. Complexity O(log(n))
- Selection. Complexity sort O(n^2)
## Useful Links
- Praparation to MS Exam 70-483: https://habr.com/ru/post/245067/
- Complete `C#` guide: https://metanit.com/sharp/
近期下载者:
相关文件:
收藏者: