Turing Award awardee [Knuth](https://en.wikipedia.org/wiki/Donald_Knuth) once said, "Computer Science is the study of algorithms". Even though the speed of computers is now so fast that we might even question whether Moore's Law still holds true, the significance of an efficient algorithm remains essential for us. Therefore, in this course, we aim to present various algorithms for numerous 'standard' algorithmic problems. We will illustrate both algorithm design techniques and the methods employed in algorithm analysis. By the end of the course, students will attain proficiency in applying fundamental algorithm design techniques and will become acquainted with the key theoretical instruments utilized in algorithm analysis. Moreover, since this course is designed for senior undergraduates, we will provide an introduction to notable subfields within algorithmic research, thereby offering potential directions for further study.

Discrete Mathematics is the mathematical foundation of computer science. Within this course, students will acquire a specific collection of mathematical principles and learn how to apply them. Significantly, the course will cultivate logical and mathematical thinking abilities among students. To accomplish these objectives, the course will cover the following topics: Logic, Set Theory, Algebraic Structures, Combinatorics, Graph Theory, and Elementary Number Theory. Upon completing this course, students will have obtained a solid grasp of all the requisite mathematical foundations necessary for their future studies in computer science.

Linear algebra is the branch of mathematics concerning linear equations such as: - $a_1x_1 + a_2x_2 + \cdots + a_nx_n = b$, linear maps such as: - $(x_1,\ldots,x_n)\rightarrow a_1x_1 + a_2x_2 + \cdots + a_nx_n$ In fact, it's central to almost all areas of mathematics. In this course, we will follow the idea of solving linear equations $A\mathbf{x}=\mathbf{b}$ and introduce the four fundamental subspaces for the matrix $A$. Hence we'll show the fundamental theorem of linear algebra.