Currrent Teaching

IFT6289: Natural Language Processing with Deep Learning

IFT6289

Natural Language Processing (NLP) is a branch of artificial intelligence that deals with the interaction between computers and humans using natural language. It is one of the most important technologies of the information age and is used everywhere: search engines, advertising, chatbots, language translation, virtual agents, and so on. Deep Learning approaches have obtained very high performance across many different NLP tasks in recent years. In this course, students will gain a thorough introduction to the basics of NLP, as well as cutting-edge research in Deep Learning for NLP. We will focus on modern techniques for NLP, as well as introduce the applications in our daily lives. Students are encouraged to do some pretty cool research projects based on NLP techniques, e.g., writing poetry, detecting spam emails, building chatbots, machine reading comprehension, and so on. Through lectures, assignments, and a term project, students will learn the necessary skills to design, implement, and understand their own models for NLP tasks.

IFT6759: Advanced Machine Learning Projects

IFT6759

The objective of this course is to prepare the students for tackling real-world machine learning projects. During the course, students will work on the main stages of machine learning projects, including data acquisition, data pre-processing, model training, experiments and analysis, complete a project report, and present the results and conclsions from the project. The topic of the course project can be selected from a candidate list provided by the course, or it can be proposed by the students and determined after discussion with the teacher. Skills developed during this course include literature review of a particular problem, practical and theoretical machine learning, programming for machine learning and data science with Python and PyTorch, version control with git, and basic Linux commands.

Teaching History