awesome_computer_science
awesome_computer_science copied to clipboard
The complete syllabus of Computer Science and Engineering. Roadmap, Checklist for Beginners.
Computer Science and Engineering Roadmap and Checklist
This is the complete syllabus of Computer Science and Engineering UG.
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.
Discrete MathematicsPDF is necessary for understanding Graphs.
Table of Contents
Computer Science 1
- Digital Electronics
- Computer Organization and Architecture
- Theory of Computation and Automata
Computer Science 2
- Compiler Design
- Programming
- Data Structures
- Algorithms
- Artificial Intelligence
Computer Science 3
- Design and Analysis of AlgorithmsOpens in new Tab
- Operating Systems
- Computer Networks
- DBMS and SQL
- Software Engineering
Computer Science 4
- Cryptography
- Machine Learning
- Computer Graphics
- Web Dev
Computer Science - 1
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
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 (basic instructions)
Theory of Computation and Automata
- [ ] Automata and Languages
Computer Science - 2
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 specificationsIf you want to read an easy specification
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 | 2, 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
Data Structures
- Arrays
- Linked Lists
- Skip ListsPDF
- Skip-Lists done rightSuggested Reading
- Hash Tables, 2
- stack and queue and set
- [ ] Trees and Tries
- [ ] Self Balancing Trees
- [ ] n-ary Trees
- [ ] 2-3 Trees
- [ ] Graphs , Some Code
- [ ] Adjacency matrix vs Adjacency list
Algorithms
- [ ] Searching
- [ ] Breadth First Search
- [ ] Depth First Search
- [ ] BDFS == BFS + DFS Move in both directions
- [ ] Sorting
- [ ] Merge Sort
- [ ] Quick Sort
- [ ] Insertion Sort
- [ ] Selection Sort
- [ ] Graph Traversal
- [ ] Minimum Spanning Trees
- [ ] Shortest Paths
- [ ] space-time Complexity
Design and Analysis of AlgorithmsOpens in new tab
Artificial Intelligence
- [ ] Knowledge Representation and Reasoning
- [ ] First Order Logic
- Predicate Logic
- Forward Chaining and backward chaining
- [ ] State Space
- [ ] Search
- Simulated annealing
- Hill ClimbingMust know
- A*Must know
- MinMax
- [ ] Bayes' Theorem of Probability
- [ ] Neural Networks
- Weights and Layers (Neural Networks)
- Gradient Descent
- Convolutional neural networks(https://towardsdatascience.com/convolutional-neural-networks-from-the-ground-up-c67bb41454e1)
- [ ] Backpropagation
- [ ] Game Dev Basics
Computer Science - 3
DBMS and SQL
FCC quick commands | Graphical view
-
[ ] 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
-
- 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
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
Computer Networks
-
[ ] Layers of TCP and OSI
- Application.
- Presentation.
- Session.
- Transport.
- Network.
- Data.
- Physical.
-
[ ] Flow Control
- Flow Control
- Congestion Control
- Error Control
-
[ ] Routers and Routing Algorithms
- DHCP and static routing
- Round Robin and others
- DHCP | ICMP
-
[ ] UDP and Sockets
-
[ ] IPv4 | IPv6
-
[ ] Application Layer Protocols
- HTTP | FTP
- DNS | SMTP
- Email MIME Types | POP | IMAP
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
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
- [ ] Compression
- [ ] Firewalls
- [ ] Steganography
- [ ] Network Security
Data Science and Machine Learning
-
[ ] Supervised Learning
- [ ] Classification
- [ ] Regression
-
[ ] Un-supervised Learning
- [ ] Clustering
- [ ] k-Nearest Neighbours
-
[ ] Image ProcessingWorth learning
Web Development
You can study Web Development from Mozilla Developer Network Website.
-
[ ] Front-End
-
[ ] BackEnd Choose any language
- Golang OR Todd Mcleod's Udemy Course
- Python Flask
- Git internals
- Messaging Queues
Computer Graphics
Not mandatory, just get the overview
- [ ] Concepts and principles
After you are done with all this and want to make projects, check out Projects you can make
LICENSE
Mozilla-Public-License