The course gives a general overview of the history, theoretical basis and technological stack for what we now call "artifial intelligence" (AI). Today AI is not only a research area, but also a complex set of exact algorithms, technologies, frameworks, software and services, which can be easily integrated in modern software. In this course students will learn the history, major theoretical points, structure of knowledge related to AI. The major goal of the course is to practice contemporary AI technologies and frameworks, including reasoning, natural language processing, computer vision, and machine learning. Working individually and in teams, students will solve a variety of AI problems, both from scratch and using existing solutions.