Lokasi ngalangkungan proxy:   [ UP ]  
[Ngawartoskeun bug]   [Panyetelan cookie]                
Skip to content

prxcode/computer_science

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

419 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Computer Science and Engineering

Get Computer Science Materials at one place

Computer Science is divided in 4 parts

  • Computer Science 1 : Hardware and Engineering part.
  • Computer Science 2 : Everything that is required to write Programs.
  • Computer Science 3: Daily Computer Science.
  • Computer Science 4 : Real Life Applications of CS.

Table of Contents

Computer Science 1

  • a) Digital Electronics
  • b) Computer Organization and Architecture
  • c) Theory of Computation and Automata

Computer Science 2

  • a) Compiler Design
  • b) Programming
  • c) Data Structures
  • d) Algorithms
  • e) Artificial Intelligence

Computer Science 3

  • a) Design and Analysis of Algorithms
  • b) Operating Systems
  • c) Computer Networks
  • d) DBMS and SQL
  • e) Software Engineering

Computer Science 4

  • a) Cryptography
  • b) Data Science and Machine Learning
  • c) Computer Graphics
  • d) Web Dev

Computer Science - 1

a) Digital Electronics

  • Boolean Algebra

    • Number System
    • Addition, Subtraction
    • Multiplication, Division
    • 1's, 2's compliments
    • k-maps
  • Hardware

    • Logic Gates
    • Flip-Flops and Latches
    • Adder - Subtractor
    • Encoder - Decoder
    • Multiplexer - Demultiplexer
    • Integrated Circuits
    • Printed Circuit Boards

b) Computer Organization and Architecture

  • Computer Organization

    • Address Bus, Data Bus
    • ROM, EPROM, RAM
    • Memory Hierarchy, Cache Memory, Virtual Memory
    • Secondary Storage
    • Programmable Logic Devices and Controllers
    • Input - Output Devices
  • Computer Architecture

    • Stack
    • Registers
    • Endianness (Big, Little)
    • Floating Point Numbers
    • Addressing Modes
    • Pipelining
    • Interrupts
    • RISC - CISC
    • aarch64, Intel_x86 / AMD64, MIPS / RISC-V (learn the differences)
    • Assembly Language

c) Theory of Computation and Automata

  • Automata and Languages
    • NFA - DFA
    • Regular Expressions
    • Context-Free Languages and Grammers
    • Pushdown Automata
    • Turing Machines
    • Decidability of Languages
    • Reducibility of Languages
    • Complexity Theory : P vs NP

Computer Science - 2

a) Compiler Design

  • Compiler Design
    • Lexical analysis
    • Syntax analysis
    • Type Checking
    • Intermediate code generation
    • Machine code generation
    • Assembly and linking
    • Analysis and optimisation
    • Memory management
    • Interpreters
    • Golang reference specifications

b) Programming

  • Learn C

    The language almost every computer knows

    • Character constants, escape sequences, string constants
    • Data types and Type conversion
    • Precedence and associativity of Operators
    • Functions
    • storage class and variable scope
    • if, for, while, switch_case
    • break, continue, goto
    • Arrays, Strings, Pointers
    • Structs, Union, enum, typedef
    • Header files, MACROS
    • malloc, calloc, realloc, new, argc argv
    • input/output, file io, streams
    • <Math.h>
  • C++ (You can try Python for same topics)

    Used in almost everything from Games to Browsers to Machine learning and beyond

    • Everything mentioned in C
    • namespaces
    • Classes and Objects
    • Access Controls : Public, Private, Protected
    • Member Functions and Friend Functions
    • Function Overloading
    • Constructor and Destructors
    • Inheritence, Polymorphism
    • Templates

c) Data Structures

  • Arrays
  • Linked Lists
  • Skip Lists
    • Skip-Lists done right
  • Hash Tables
  • stack and queue and set
  • Trees and Tries
    • Self Balancing Trees (BST, AVL, Splay)
    • Red-Black Trees
    • Segment Trees
  • Graphs , Some Code
    • Adjacency matrix vs Adjacency list

d) Algorithms

  • Searching
    • Binary Search
    • Priority Queues
  • Sorting
    • Merge Sort
    • Quick Sort
    • Insertion Sort
    • Selection Sort
  • Graph Traversal
    • Breadth First Search
    • Depth First Search
    • Dijkstra's Algorithm
    • Bellman Ford (Cycle detection & Negative edges)
    • Shortest Paths
    • Minimum Spanning Trees
  • space-time Complexity

e) Artificial Intelligence

  • Knowledge Representation and Reasoning
  • First Order Logic
    • Predicate Logic
    • Forward Chaining and backward chaining
  • State Space
    • State Space Search
  • Search
    • Simulated annealing
    • Hill Climbing
    • A
    • MinMax
  • Neural Networks
    • Weights and Layers (Neural Networks)
    • Gradient Descent
    • Convolutional neural networks
  • Backpropagation
  • Game Dev Basics

Computer Science - 3

a) Design and Analysis of Algorithms

  • Book Recommendations:
    • The Algorithm Design Manual by Steven Skiena
    • Algorithms by Jeff Erickson

b) Operating Systems

  • The Boot Process
  • Processes and Threads
    • Process Control Block
    • Dispatcher and Scheduler
  • Inter Process Communication
    • Mesage Passing
    • Shared Memory
  • Scheduling Algorithms
    • Round Robin.
    • Shortest Remaining Time First.
    • Least Recently Used.
  • Deadlocks
    • MutEx and Locks
    • Semaphores
    • Banker's Algorithm
  • Memory Management
    • Paging and Page tables
    • Segmentation
    • First Fit, Next Fit, Best Fit
    • Non-continuous Allocation
  • Virtual memory
    • Page Faults
    • Page Replacement Algorithms
    • Belady’s Anomaly
  • IO Scheduling
    • Shortest Seek Time First
    • Disk Scheduling Algorithms
  • File Systems
    • File Allocation Tables.
  • OS Security
    • Firewall
    • Malware and Antiviruses
  • Unix commands
  • Multithreading and Context Passing in Programming languages

c) Computer Networks

  • Layers of TCP and OSI

    • Application.
    • Presentation.
    • Session.
    • Transport.
    • Network.
    • Data.
    • Physical.
  • Flow and Congestion Control

    • Flow Control
    • Congestion Control
    • Error Control
  • Routers and Routing Algorithms

    • DHCP and static routing
    • DHCP | ICMP
    • Bellman Ford
    • Round Robin and others
  • UDP and Sockets

  • IPv4 | IPv6

  • Autonomous Systems

    • Border Gateway Protocol
    • OSPF
  • Application Layer Protocols

    • HTTP | FTP
    • DNS | SMTP
    • Email MIME Types | POP | IMAP
  • Cloud Computing

    • SAAS | PAAS | IAAS (AAS : As A Service)
    • Full and Para Virtualization : KVM/QEMU
    • Virtual Machines and Hypervisors ( Bare Metal | Hosted )
    • Clones | Snapshots | Scaling

d) DBMS and SQL

FCC quick commands | Graphical view | ALL SQL Commands

  • SQL

    • Data Definition Language
      • CREATE
      • DROP
      • ALTER
      • TRUNCATE
    • Data Query Language
      • SELECT
    • Data Manipulation Language
      • INSERT
      • UPDATE
      • DELETE
    • Data Control Language
      • GRANT
      • REVOKE
    • Transction Control Language
      • COMMIT
      • ROLLBACK
      • SAVEPOINT
    • AGGREGATE FUNCTIONS
      • COUNT | SUM | AVG | MAX | MIN
    • JOINS
      • FULL OUTER JOIN
      • INNER JOIN
      • LEFT JOIN | RIGHT JOIN
      • NATURAL JOIN
      • LEFT OUTER JOIN
      • RIGHT OUTER JOIN
    • SUBQUERIES
      • Subqueries
    • WINDOW FUNCTIONS
      • Window Functions
  • DataBase Management Systems

    • Entity-Relationship model.
    • Integrity Constraints
      • Primary Key and Foreign key
      • Composite keys
      • All other types of keys
    • Normal Forms : 1NF to 4 NF
    • File Organization.
    • Indexing (B- Trees and B+ Trees)
    • Transactions and Concurrency Control
      • Conflict Serializability
      • Locking
      • ACID | BASE
      • Database security
      • SQL Injection
      • Flat file / document database
      • Object / JSON based database

e) Software Engineering

  • Software development models

    • Waterfall
    • Spiral
    • Iterative
    • Agile
  • Software Cost Estimation

  • COCOMO Model

  • Risk Management

  • Software Requirement

    • Software Requirement Specifications
    • Data Flow Diagrams
  • Software Quality

    • ISO standards 9001, 14001
    • SEICMM
    • Six Sigma
  • Software Design

    • Software Design Principles
    • Coupling and Cohesion
    • Object-Oriented Design
    • User Interface Design
  • Testing

Computer Science - 4

You will need these when you make projects

a) Cryptography and Network Security

  • Encryption Algorithms
    • DES, AES, Blowfish, Whirlpool, One Time Pad
    • Avalanche effect, Entropy
  • Hashing Algorithms
    • SHA family, MD5
  • Key Distribution
    • RSA, Kerberos
  • Digital Signatures
    • Message Digest
  • Compression
    • History
  • Firewalls
  • Steganography
  • Network Security
    • Honeypots
    • Man in the middle attacks
    • DDOS prevention
    • SSL and TLS

b) Data Science and Machine Learning

  • Bias and Variance

  • Supervised Learning

    • Classification
    • Regression
  • Un-supervised Learning

    • Clustering
    • k-Nearest Neighbours
  • Image Processing

    • Transformation and Translation

c) Computer Graphics

Not mandatory, just get the overview

  • Concepts and principles
    • OpenGL basics : lines, planes, vertex and edges
    • Pixels
    • Rendering
    • Shading
    • Texturing
    • Ray Tracing
    • Raycasting

d) Web Development

You can study Web Development from Mozilla Developer Network Website

  • MDN Getting Started Guide

  • Front-End

    • HTML5
    • CSS3
    • JavaScript
    • Web Forms
    • Browser APIs
    • Accessibility
    • Tools and Testing
    • DNS and Domain Names
    • JSON and other formats and YAML
  • BackEnd

    • Golang OR Todd Mcleod's Udemy Course
    • Python Flask
    • Git internals
    • Messaging Queues

Notice

All the materials and resources provided in this repository are intended for educational purposes only. I do not claim ownership of all the content. Proper credit is given to the respective creators and sources wherever applicable.

Please refrain from:

  • Pirating or distributing this content for commercial gain.
  • Selling or misusing these materials in any way that violates open-source or educational ethics.

This repository is meant to promote learning and collaboration within the coding community. It is free and open-source for everyone to use as a resource.

About

Get CS Materials at one place

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors