Tuesday 18 September 2018

How to study Computer Science

First , get to know about how the hardware works. How instructions are executed, What it takes to make a cursor blink etc.
Do not get scared by the longer names... these are easy topics if you learn by heart and mind. These topics are arranged in order they were developed, just like human evolution.

Digital Logic :
Boolean Algebra | Combinational and Sequential circuits | Minimization | Number representation and Computer arithmetic 

Computer Organization and Architecture: 
Machine Instruction and addressing modes | ALU, data‐path and control unit | Instruction
pipelining | Memory hierarchy: cache, main memory and secondary storage | I/O
interface (interrupt and DMA mode).

Theory of Computation : 
Regular expressions and finite automata | Context-free grammars and push-down
automata | Regular and contex-free languages, pumping lemma | Turing machines and

undecidability.

Compiler Design :
Lexical analysis | Parsing | Syntax-directed translation | Runtime environments | Intermediate code generation.

Operating Systems : 
Processes | Threads | Inter‐process communication | Concurrency and Synchronization |

Deadlock | CPU scheduling | Memory management and Virtual memory | File systems.

Databases : ER‐model | Relational model: relational algebra | Tuple calculus | SQL | Integrity constraints | Normalization | File organization | Indexing (e.g., B and B+ trees) | Transactions and Concurrency control.

Networks :
Concept of Layering | LAN technologies (Ethernet) | Flow and Error control techniques,
switching | IPv4/IPv6 | routers and routing algorithms (distance vector, link state) | TCP/UDP
and sockets | congestion control | Application layer protocols (DNS, SMTP, POP, FTP, HTTP) |
Basics of Wi-Fi | Network security: authentication, basics of public key and private key

cryptography, digital signatures and certificates, firewalls.

Algorithms :
Searching | sorting | hashing | Asymptotic worst case time and space complexity |
Algorithm design techniques: greedy, dynamic programming and divide‐and‐conquer |

Graph search : Minimum spanning trees | Shortest paths.

Programming in C : 
Pointers | Recursion | Structures | Memory Management 

Data Structures : Arrays | Stacks | Queues | Linked lists | Trees | Binary search
trees | Binary heaps | Graphs.

0 Comments:

Post a Comment