Natural Language Processing (NLP) is one of the most promising fields of artificial intelligence (AI). Thanks to applications such as text generators that compose coherent essays, chatbots, and text-to-image programs that generate realistic photos of anything you describe. The capability of computers to comprehend human languages, programming languages, and even language-like biological and chemical sequences, such as DNA and protein structures, has gone through a revolution in recent years. The most recent AI models enable these domains so as to analyze the meanings of input text and generate output that is meaningful and expressive.
https://web.stanford.edu/class/cs224n/
Natural Language Processing with Transformers Book (https://transformersbook.com/)
Francois Chollet - Deep Learning with Python-Manning Publications (2017)
Statistical NLP includes all quantitative techniques to process natural language automatically using probabilistic modelling, information theory, and linear algebra.
Chris Manning and Hinrich Schütze, Foundations of Statistical Natural Language Processing, MIT Press. Cambridge, MA: May 1999.
The goal of the compiler course is to introduce students with the foundations of compiler design, as well as its numerous constituent parts (Lexer, Parser, Semantic Analyzer, Code Generator, Optimizer, etc.), algorithms, and data structures.
Compilers: Principles, Techniques, and Tools (Second Edition) Alfred Aho, Monica Lam, Ravi Sethi, and Jeffrey Ullman. Addison-Wesley
Modern Compiler Implementation in Java (Second Edition) Andrew Appel and Jens Palsberg. Cambridge University Press
Engineering a Compiler Keith Cooper and Linda Torczon. Morgan Kaufman
Compiler Design Lecture Notes, D. Chandrasekhar Rao , Kishore Kumar Sahu, Pradipta Kumar Das.
This course covers the fundamental concepts of programming languages by discussing the design issues of the various language constructs, examining the design choices for these constructs in some of the most common languages, and critically comparing design alternatives.
Concepts of Programming Languages ELEVENTH edition Robert W. Sebesta
Essentials of Programming Languages, Daniel P. Friedman and Mitchell Wand
Foundations of Programming Languages , Jon C. Mitchel
Advanced Programming course focuses on problem solving, design, abstraction, and advanced programming topics. Major subjects include data abstraction, object-orientation, functional programming, event-driven systems, problem modeling, and testing.
https://blogs.embarcadero.com/advanced-programming-a-complete-guide-to-programming-in-c/
Effective C++: 55 Specific Ways to Improve Your Programs and Designs 3rd Edition
Python Cookbook: Recipes for Mastering Python 3
Functional programming languages are specially designed to handle symbolic computation and list processing applications. Functional programming is based on mathematical functions. Some of the popular functional programming languages include: Lisp, Python, Erlang, Haskell, Clojure, etc. The Racket language is a modern dialect of Lisp and a descendant of Scheme. It is designed as a platform for programming language design and implementation.[9] In addition to the core Racket language, Racket is also used to refer to the family of programming languages[10] and set of tools supporting development on and with Racket. Racket is also used for scripting, computer science education, and research. Haskell is a general-purpose, statically-typed, purely functional programming language with type inference and lazy evaluation. Designed for teaching, research and industrial applications, Haskell has pioneered a number of programming language features such as type classes, which enable type-safe operator overloading, and monadic IO. Haskell's main implementation is the Glasgow Haskell Compiler (GHC). It is named after logician Haskell Curry.
Concepts of Programming Languages ELEVENTH edition Robert W. Sebesta
https://racket-lang.org/
https://www.haskell.org/
A Gentle Introduction to Haskell
Happy Learn Haskell Tutorial
Yet Another Haskell Tutorial
Hadoop is an open source, Java based framework used for storing and processing big data. The data is stored on inexpensive commodity servers that run as clusters. Its distributed file system enables concurrent processing and fault tolerance.
Introduction to Big Data with Spark and Hadoop: IBM (Coursera)
NoSQL, Big Data, and Spark Foundations: IBM(Coursera)
Data Engineering and Machine Learning using Spark: IBM(Coursera)
Introduction to Big Data: University of California San Diego(Coursera)