Survey relevant topics in contemporary machine learning (ML) to develop a conceptual understanding of important techniques and an ability to implement them in practice using python. Linear models: linear and logistic regression, support vector machines and kernel methods. Basic aspects of information theory and probability relevant for ML. Neural networks: architectures (FCN, CNN, RNN, attention and transformers) and initialization schemes (order-chaos transition, information propagation). Optimization algorithms. Neural tangent kernel, infinite limits of neural networks, neural scaling laws. Basic techniques in unsupervised learning including dimensionality reduction and generative models.