This course provides an introduction to complex analysis which is the theory of complex functions of a complex variable. We will start by introducing the complex plane, along with the algebra and geometry of complex numbers, and then we will make our way via differentiation, integration, complex dynamics, power series representation and Laurent series into territories at the edge of what is known today. Each module consists of five video lectures with embedded quizzes, followed by an electronically graded homework assignment. Additionally, modules 1, 3, and 5 also contain a peer assessment.
The homework assignments will require time to think through and practice the concepts discussed in the lectures. In fact, a significant amount of your learning will happen while completing the homework assignments. These assignments are not meant to be completed quickly; rather you'll need paper and pen with you to work through the questions. In total, we expect that the course will take 6-12 hours of work per module, depending on your background.

Discrete mathematics forms the mathematical foundation of computer and information science. It is also a fascinating subject in itself.
Learners will become familiar with a broad range of mathematical objects like sets, functions, relations, graphs, that are omnipresent in computer science. Perhaps more importantly, they will reach a certain level of mathematical maturity - being able to understand formal statements and their proofs; coming up with rigorous proofs themselves; and coming up with interesting results.
This course attempts to be rigorous without being overly formal. This means, for every concept we introduce we will show at least one interesting and non-trivial result and give a full proof. However, we will do so without too much formal notation, employing examples and figures whenever possible.
The main topics of this course are (1) sets, functions, relations, (2) enumerative combinatorics, (3) graph theory, (4) network flow and matchings. It does not cover modular arithmetic, algebra, and logic, since these topics have a slightly different flavor and because there are already several courses on Coursera specifically on these topics.

Enumerative combinatorics deals with finite sets and their cardinalities. In other words, a typical problem of enumerative combinatorics is to find the number of ways a certain pattern can be formed.
In the first part of our course we will be dealing with elementary combinatorial objects and notions: permutations, combinations, compositions, Fibonacci and Catalan numbers etc. In the second part of the course we introduce the notion of generating functions and use it to study recurrence relations and partition numbers.
The course is mostly self-contained. However, some acquaintance with basic linear algebra and analysis (including Taylor series expansion) may be very helpful.
Do you have technical problems? Write to us: [email protected]

This course offers a brief introduction to the multivariate calculus required to build many common machine learning techniques. We start at the very beginning with a refresher on the “rise over run” formulation of a slope, before converting this to the formal definition of the gradient of a function. We then start to build up a set of tools for making calculus easier and faster. Next, we learn how to calculate vectors that point up hill on multidimensional surfaces and even put this into action using an interactive game. We take a look at how we can use calculus to build approximations to functions, as well as helping us to quantify how accurate we should expect those approximations to be. We also spend some time talking about where calculus comes up in the training of neural networks, before finally showing you how it is applied in linear regression models. This course is intended to offer an intuitive understanding of calculus, as well as the language necessary to look concepts up yourselves when you get stuck. Hopefully, without going into too much detail, you’ll still come away with the confidence to dive into some more focused machine learning courses in future.

The main goal of this course is to introduce topics in Discrete Mathematics relevant to Data Analysis.
We will start with a brief introduction to combinatorics, the branch of mathematics that studies how to count. Basics of this topic are critical for anyone working in Data Analysis or Computer Science. We will illustrate new knowledge, for example, by counting the number of features in data or by estimating the time required for a Python program to run.
Next, we will apply our knowledge in combinatorics to study basic Probability Theory. Probability is everywhere in Data Analysis and we will study it in much more details later. Our goals for probability section in this course will be to give initial flavor of this field.
Finally, we will study the combinatorial structure that is the most relevant for Data Analysis, namely graphs. Graphs can be found everywhere around us and we will provide you with numerous examples. We will mainly concentrate in this course on the graphs of social networks. We will provide you with relevant notions from the graph theory, illustrate them on the graphs of social networks and will study their basic properties. In the end of the course we will have a project related to social network graphs.
As prerequisites we assume only basic math (e.g., we expect you to know what is a square or how to add fractions), basic programming in Python (functions, loops, recursion), common sense and curiosity. Our intended audience are all people that work or plan to work in Data Analysis, starting from motivated high school students.
This Course is part of HSE University Master of Data Science degree program. Learn more about the admission into the program and how your Coursera work can be leveraged if accepted into the program here https://inlnk.ru/rj64e.

The lectures of this course are based on the first 11 chapters of Prof. Raymond Yeung’s textbook entitled Information Theory and Network Coding (Springer 2008). This book and its predecessor, A First Course in Information Theory (Kluwer 2002, essentially the first edition of the 2008 book), have been adopted by over 60 universities around the world as either a textbook or reference text.
At the completion of this course, the student should be able to:
1) Demonstrate knowledge and understanding of the fundamentals of information theory.
2) Appreciate the notion of fundamental limits in communication systems and more generally all systems.
3) Develop deeper understanding of communication systems.
4) Apply the concepts of information theory to various disciplines in information science.

As rates of change, derivatives give us information about the shape of a graph. In this course, we will apply the derivative to find linear approximations for single-variable and multi-variable functions. This gives us a straightforward way to estimate functions that may be complicated or difficult to evaluate. We will also use the derivative to locate the maximum and minimum values of a function. These optimization techniques are important for all fields, including the natural sciences and data analysis. The topics in this course lend themselves to many real-world applications, such as machine learning, minimizing costs or maximizing profits.

Algebra is one of the definitive and oldest branches of mathematics, and design of computer algorithms is one of the youngest. Despite this generation gap, the two disciplines beautifully interweave. Firstly, modern computers would be somewhat useless if they were not able to carry out arithmetic and algebraic computations efficiently, so we need to think on dedicated, sometimes rather sophisticated algorithms for these operations. Secondly, algebraic structures and theorems can help develop algorithms for things having [at first glance] nothing to do with algebra, e.g. graph algorithms. One of the main goals of the offered course is thus providing the learners with the examples of the above mentioned situations. We believe the course to contain much material of interest to both CS and Math oriented students. The course is supported by programming assignments.

In this introductory course on Ordinary Differential Equations, we first provide basic terminologies on the theory of differential equations and then proceed to methods of solving various types of ordinary differential equations. We handle first order differential equations and then second order linear differential equations. We also discuss some related concrete mathematical modeling problems, which can be handled by the methods introduced in this course.
The lecture is self contained. However, if necessary, you may consult any introductory level text
on ordinary differential equations. For example, "Elementary Differential Equations and Boundary Value Problems
by W. E. Boyce and R. C. DiPrima from John Wiley & Sons" is a good source for further study on the subject.
The course is mainly delivered through video lectures. At the end of each module, there will be a quiz consisting of several problems related to the lecture of the week.

This course is an important part of the undergraduate stage in education for future economists. It's also useful for graduate students who would like to gain knowledge and skills in an important part of math. It gives students skills for implementation of the mathematical knowledge and expertise to the problems of economics. Its prerequisites are both the knowledge of the single variable calculus and the foundations of linear algebra including operations on matrices and the general theory of systems of simultaneous equations. Some knowledge of vector spaces would be beneficial for a student.
The course covers several variable calculus, both constrained and unconstrained optimization. The course is aimed at teaching students to master comparative statics problems, optimization problems using the acquired mathematical tools.
Home assignments will be provided on a weekly basis.
The objective of the course is to acquire the students’ knowledge in the field of mathematics and to make them ready to analyze simulated as well as real economic situations.
Students learn how to use and apply mathematics by working with concrete examples and exercises. Moreover this course is aimed at showing what constitutes a solid proof. The ability to present proofs can be trained and improved and in that respect the course is helpful. It will be shown that math is not reduced just to “cookbook recipes”. On the contrary the deep knowledge of math concepts helps to understand real life situations.
Do you have technical problems? Write to us: [email protected]