Distributed Systems
2.1 Introduction
Collection of independent computers that appears as a single coherent system.
2.2 Communication and Coordination
Message passing, sockets, RPC.
Synchronization: logical clocks (Lamport), vector clocks.
2.3 Consistency Models
Strong consistency, eventual consistency.
CAP theorem: Consistency, Availability, Partition Tolerance.
2.4 Fault Tolerance
Replication strategies.
Paxos, Raft consensus algorithms.
Byzantine fault tolerance.
2.5 Distributed Storage Systems
Distributed file systems: HDFS, GFS.
Distributed databases: NoSQL (Cassandra, MongoDB), NewSQL.
2.6 Scalability and Load Balancing
Horizontal vs vertical scaling.
Load balancing techniques.
2.7 Security in Distributed Systems
Authentication, encryption, secure communication.
Natural Language Processing (NLP)
3.1 Basics of NLP
Language models, tokenization, stemming, lemmatization.
Bag-of-words, TF-IDF.
3.2 Word Embeddings
Word2Vec, GloVe, FastText.
Contextual embeddings: ELMo, BERT, GPT.
3.3 Syntax and Semantics
POS tagging, parsing, dependency trees.
Named Entity Recognition (NER), coreference resolution.
3.4 Sequence Models
RNNs, LSTMs, GRUs.
Attention mechanism.
Transformer architecture.
3.5 Applications
Machine translation, sentiment analysis, question answering.
3.6 Evaluation Metrics
Accuracy, precision, recall, F1-score, BLEU, ROUGE.
3.7 Challenges in NLP
Ambiguity, context understanding, low-resource languages.