In this course, fundamental concepts and applications of natural language processing will be discussed.  Students will gain knowledge on Natural Language Processing (NLP), application areas of NLP, semantic data models (Semantic Web representations and querying), Information Retrieval (IR) (tf-idf, vector space models, etc) and recent deep learning architectures for NLP. Students will gain knowledge on theory (i.e. stemming, morphological, syntactic, semantic analysis, etc.) and applications (i.e. document clustering, question answering, sentiment analysis, etc.) of NLP. Furthermore, students will investigate recent trends of deep learning for NLP, such as neural networks, Long-Short-Term Memory (LSTM) networks, Convolutional Neural Networks (CNNs), and Autoencoders. By the end of the course students will learn both theoretical and applications of NLP using Python programming. In addition, student will choose a topic, and will have hands-on experience by developing a project in a relevant field.