Skip to content

About

STAR THIS REPO ⭐ Get CS Materials at one place

Resources

Stars

1 star

Watchers

1 watching

Forks

Latest commit

 

History

441 Commits

Folders and files

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

STAR THIS REPO ⭐ Get CS Materials at one place

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages