No. | Semester and year | Course name | Credits | Instructor |
---|---|---|---|---|

1 | Fall, Freshman | Introduction to Computer Science | 3 | Longbo Huang |

2 | Fall, Freshman | Linear Algebra | 4 | Yong Xu |

3 | Spring, Freshman | Mathematics for Computer Science | 3 | Andrew Chi-Chih Yao |

4 | Spring, Freshman | General Physics(1) | 4 | Xiongfeng Ma |

5 | Spring, Freshman | Abstract Algebra | 4 | Dongling Deng |

6 | Spring, Freshman | Causal and Statistical Learning | 3 | Yang Yu |

7 | Fall, Sophomore | Algorithm Design | 4 | Jian Li |

8 | Fall, Sophomore | General Physics(2) | 4 | Luyan Sun |

9 | Spring, Sophomore | Network Science | 2 | Chenye Wu |

10 | Spring, Sophomore | Theory of Computation | 4 | Ran Duan |

11 | Spring, Sophomore | Quantum Computer Science | 4 | Luming Duan |

12 | Spring, Sophomore | Computer Architecture | 3 | Mingyu Gao |

13 | Spring, Sophomore | Game Theory | 4 | Pingzhong Tang |

14 | Spring, Sophomore | Introduction to Optimization Theory | 3 | Zhaohui Wei |

15 | Spring, Sophomore | Autonomous Driving | 2 | Tiancheng Lou |

16 | Fall, Junior | Fundamentals of Cryptography | 4 | Wenfei Wu |

17 | Fall, Junior | Quantum Communication and Cryptography | 3 | Xiongfeng Ma |

18 | Fall, Junior | Machine learning | 4 | Yang Yuan |

19 | Fall, Junior | Advanced Computer Graphics | 3 | Shimin Hu |

20 | Fall, Junior | Artificial Intelligence: Principles and Techniques | 3 | Chongjie Zhang |

21 | Spring, Junior | Operating System | 4 | Wei Xu |

22 | Spring, Junior | Distributed Computing(Fundamentals and Systems) | 4 | Wei Chen |

23 | Fall, Junior | Introduction to Computer Networks | 3 | Longbo Huang |

24 | Spring, Junior | Computational Biology | 3 | Jianyang Zeng |

25 | Summer, Junior | Research Immersion Training | 5 | Professors from IIIS, Tsinghua University |

26 | Fall, Senior | Research Practice | 15 | Professors from IIIS, Tsinghua University |

**1. Introduction to Computer Science**

**Instructor: Longbo Huang**

Designed to appeal to a diverse audience, this course examines some of the fundamental ideas of the science of computing. Lectures and hands-on assignments cover a wide variety of topics such as hardware organization, the Internet, computer programming, limits of computing, and graphics. No prerequisite.

**2. Linear Algebra**

**Instructor: Yong Xu**

Linear algebra finds wide applications in various fields, such as computer sciences, physics, mathematics and their interdisciplinary fields. This course introduces the basic concepts and techniques of linear algebra. It includes the study of matrices and their properties, linear transformations and vector spaces. Concrete topics include systems of linear equations, row reduction and Echelon form, vector equations, solution sets of a linear equation, linear independence, linear transformation, the matrix of linear transformation, matrix algebra, characterization of invertible matrices, determinants, subspaces, null spaces, column spaces, bases and dimension, rank, eigenvalues and eigenvectors, diagonalization, inner product, etc. By introducing the concepts through concrete examples, students will learn the basic concepts and methods of linear algebra, and their capacity to think from the linear algebra perspective will be systematically trained and enhanced.

**3. Mathematics for Computer Science**

**Instructor: Andrew Chi-Chih Yao**

This course aims to introduce the fundamental mathematical techniques useful for computer science undergraduate majors, illustrated with a rich spectrum of applications. Modern computer science education requires the students to be equipped with broad knowledge in mathematics, so that they could cope with current and future technological challenges handily and innovatively. In this course, mathematical techniques from algebra, geometry, probability theory, stochastic modeling, and information theory will be covered. These techniques will be applied to algorithmic and design problems in various topics, including internet, cryptography, distributed systems, wireless sensor network, optimization, etc. Finally, this course introduces the students to deep scientific issues in the foundation of computing such as undecidability, complexity, and quantum computers.

**4. General Physics(1)**

**Instructor: Xiongfeng Ma**

Calculus-based first physics course for physics majors and students with a serious interest in physics. Students are required to actively participate during the lectures, asking questions, and having questions asked. This class will provide you with an enhanced opportunity to acquire a good understanding of fundamental mechanics and thermodynamics and to learn how to apply this understanding to physics and beyond.

**5. Abstract Algebra**

**Instructor: Dongling Deng**

Abstract algebra studies fundamental algebraic structures of groups, rings and fields, etc. It is the foundation of modern mathematics and has broad and vital applications across different disciplines including computer science, physics, and chemistry. In this course, the students will learn the basic theory of groups, rings and fields, including subgroups, groups’ actions, Sylow theorems, homomorphisms and isomorphism, the fundamental homomorphism theorem, Cauchy's theorem, the fundamental theorem of finitely generated groups, polynomial rings, quotient rings, ideas, the Chinese remainder theorem, Euclidean domains; principal idea domains; unique factorization domains; field extension, algebraic extensions; splitting field, fundamental theorem of algebra, and Galois theory, etc. In addition, this course will also introduce the basics of lattices and Boolean algebras.

**6. Causal and Statistical Learning**

**Instructor: Yang Yu**

The most significant technological progress in the last decade has occurred on the data-science area. A sequence of methods has been developed and broadly adopted. Why can a data-driven methods perform well in the prediction and causal inference? This is the core thus hottest theoretical problems of the data science. This course provides the students a road map for studying relative multi- disciplinary theories, tools, and perspectives that are critical for answering the above question. The roadmap, fully accomplished in 2000s, clearly plots the approach and framework of analyzing a statistic learning model’s functions from statistical and causal perspective. In the course, we will systematically study the Bayesian causal network theories, statistic inference theory analyzing data’s value and the store of information, econometrics theory about causal inference and learning methods. The course emphasizes the interdisciplinary nexus which reveal the fundamental intuition why the data can be used to analyze, estimate, and predict the relations between variables. Beyond the course instruction, the students are required to read selected frontier research papers, which is related with the course context. The reading will enable the students to link the course material with the research progress and enlighten their creativity and critical thinking. The course is a preparation for a sequence of advanced courses, such as the theory of probability, the theory of statistics, matching learning, the theory of AI, etc.

**7. Algorithm Design**

**Instructor: Jian Li**

This course gives an introduction to the basics of algorithm, common algorithm design techniques, and the analysis of running time (complexity). The main contents include: tools of algorithm analysis, divide and conquer algorithms, dynamic programming, greedy algorithms etc. algorithm design techniques, and NP complete, randomized algorithms, approximation algorithms and other advanced topics.

**8. General Physics(2)**

**Instructor: Luyan Sun**

This course is a follow-up course of General Physics I and for undergraduate students with serious interests in physics and interdisciplinary sciences. The main focus of this course is to cover the most important topics in classical electrodynamics including electrostatics, magnetostatics, Maxwell’s equations for electromagnetic fields, and special relativity. This course will emphasize both basic concepts and solving practical problems. After completing this course, students are expected to gain a good understanding of basic classical electrodynamics.

**9. Network Science**

**Instructor: Chenye Wu**

Network science is a new and emerging scientific discipline that examines the interconnections among diverse physical or engineered networks, information networks, biological networks, cognitive and semantic networks, and social networks.In this course, we examine the many facets of internet from the algorithmic perspective, including for instance the mathematical modeling of large-scale networks, information retrieval algorithms for massive data sets, algorithmic game theory and electronic commerce. Specific topics include small world phenomena, power law distributions, rank aggregation, web crawling, hubs and authorities, clustering large data sets, streaming algorithms, network routing, Nash equilibrium, market clearing, mechanism design, auction theory, social networks, etc.

**10. Theory of Computation**

**Instructor: Ran Duan**

This course gives an introduction to the basics of computation theory, including: Finite Automata, Regular language, Pushdown Automata, Context-Free Grammars, Turing machine, undecidablity, and computational intractable topics (NP complete, PSPACE, BPP etc).

**11. Quantum Computer Science**

**Instructor: Luming Duan**

Quantum computer science is a course offered to undergraduate students with a solid preparation in linear algebra but no-prerequisite on quantum theory. The course will cover many topics at the forefront of the new field of quantum computer science, including, foundation of quantum mechanics with an emphasis on finite-dimensional quantum systems; Quantum entanglement theory including concept of bipartite and multipartite entanglement and its quantification, many-body entanglement and graph states, quantum teleportation and nonlocality measured by Bell’s inequality; Quantum computation model and quantum complexity; Quantum algorithms, including Shor’s factorization, quantum search, quantum phase estimation, quantum algorithm for linear systems of equations, and quantum machine learning. Implementation of quantum computation including trapped-ion and superconducting quantum computer. The purpose of this course is to bring the students to the exciting research frontiers of quantum computer science.

**12. Computer Architecture**

**Instructor: Mingyu Gao**

This course introduces modern computer architecture, which focuses on the hardware/software interface and the internal structural organization of computer systems. It covers the major hardware components and key design techniques in computer architecture, including system performance and efficiency metrics, instructions and instruction set architectures, processor structures, memory hierarchies, IO devices, and hardware specialization techniques. From an architectural perspective, the course focuses on the high-level functionalities and interaction of the system components, and abstracts away the low-level implementation details. It demonstrates how to optimize the performance and efficiency of the software through better understanding the architecture of the hardware. In addition, the course introduces the support for parallelism and specialization in modern computer systems as advanced topics, considering the ubiquity of parallel computing and specialized computing nowadays. The course also briefly introduces several state-of-the-art research advances. The lab assignments involve the assembly-level code analysis and optimization, the processor pipeline simulation, the cache functional implementation, and more. Upon the completion of the course, students will understand the basic concepts and the main functionalities of the system components, as well as how they interact with each other. They will also learn the analysis methodology and the design principles for computer architecture, and be introduced to the tradeoffs between performance, efficiency, and cost in computer systems.

**13. Game Theory**

**Instructor: Pingzhong Tang**

It is preferable that students have studied basic linear algebra, and have basic calculus skills. Although this is not required because we will develop the mathematical skills as we introduce the material. This course will serve as an introduction to game theory. We will begin from the very basics of game theory. We will work on important concepts like Nash equilibria, and end with a taste of more advanced subjects like evolutionary game theory and games on graphs.

**14. Introduction to Optimization Theory**

**Instructor: Zhaohui Wei**

As a basic part, this course first introduces the concept of linear programming with concrete examples, analyzes its geometrical properties, and elaborates the important duality theory. Then three important methods solving linear programming, the simplex method, the ellipsoid method, and interior point method, will be introduced, and examples that reveal their differences will be given. The next topics are sensitivity analysis and robust optimization that are involved in linear programming. As an application of the above knowledge, the problem of network flows will be analyzed carefully. To broaden the scope of considered optimization problems, we then turn to convex optimization, a larger class having linear programming as a special case. After studying its geometrical characters and duality theory, we introduce Newton’s method and gradient descent method that are often used to solve convex optimizations, which will be compared with interior point method introduced earlier. Lastly, an important case of convex optimization, semidefinite programming, will be highlighted, where a lot of examples raised in quantum computing will be analyzed.

**15. Autonomous Driving**

**Instructor: Tiancheng Lou**

This course covers the design principles and implementation essentials of the various functional modules of an autonomous driving system: 1. Overview: architecture of autonomous driving system, and overview of the autonomous driving industry; 2. Hardware : sensors (sensor fusion), computational hardware and gps ; 3. Perception: computer vision and deep learning; 4. Map : roadgraph and 3D model of the static elements of the driving environment; 5. Localization: localization based on differential GNSS systems and computer vision; 6. Planning: global route planning and local trajectory planning; 7. Control: accurately execute the planned maneuvers through feedback control mechanisms 8. System and simulation: reliable, scalable and real-time system, including testing in both physical world and simulation.

**16. Fundamentals of Cryptography**

**Instructor: Wenfei Wu**

The purpose of this unit is to introduce the basic concepts of modern cryptography. Two main issues related to the distribution of digital content are privacy of information and origin of data. After a short introduction about Algebra, privacy issues and solutions are discussed in the context of modern private-key and public-key cryptography. Next, we will review tools allowing authentication of digital content using hash function and digital signatures. The presented constructions are building blocks for designing secure systems and protocols for real-world applications. Attacks and security analysis of the cryptographic schemes and protocols will also be discussed.

**17. Quantum Communication and Cryptography**

**Instructor: Xiongfeng Ma**

This course is offered to upper level undergraduate students, junior or senior students in the Yao Class, physics, EE, and computer science departments. The course will cover topics at the forefront of the new field of quantum communication and cryptography, including, for instance, foundation of quantum information, quantum entanglement, quantum cryptography, quantum communication, quantum random number generation, physical implementation of quantum communication and networks. The goal is to help the future researchers to find the interesting topics to work on.

**18. Machine learning**

**Instructor: Yang Yuan**

Machine learning studies how computers can learn from experiences. Combining ideas from theoretical computer science and statistics, researchers have developed many learning methods and their applications to computer vision, bioinformatics, natural language processing etc. are highly successful. Machine learning theory addresses the fundamental problems in learning. It studies the power and theoretical limits of learning. The aim is to provide deep understand of learning and the guidance for the development of practical algorithms.

**19. Advanced Computer Graphics**

**Instructor: Shimin Hu**

This course introduces basic concepts, elements, algorithms and systems of computer graphics. The main contents include color model, illumination model (Phong model, Cook-Torrance model), phong shading and Gouraud shading, texture mapping, ray tracing, curve and surface modeling, solid modeling, geometry processing, etc.

**20. Artificial Intelligence: Principles and Techniques**

**Instructor: Chongjie Zhang**

This course will introduce the basic ideas and techniques underlying the design of intelligent computer systems. Specific topics include search, constraint satisfaction, game playing, graphical models, machine learning, Markov decision processes, and reinforcement learning. The main goal of the course is to equip students with the tools to tackle new AI problems you might encounter in life and also to serve as the foundation for further study in any AI area you choose to pursue.

**21. Operating System**

**Instructor: Wei Xu**

This course teaches the basic principles of operating systems: computer and operating system structures, mechanisms and policies, resource management, implementation of multitask systems, memory management, file systems, I/O subsystem and device management, communication and networking, protection and security. Students are expected to spend additional time to gain hands-on experience.

**22. Distributed Computing(Fundamentals and Systems)**

**Instructor: Wei Chen**

Through this course, students will learn fundamental algorithms and principles in distributed computing systems, such as logical clocks, consensus problem, failure detection, Byzantine agreement, distributed locking, and gossip protocols. They will also learn how to design and analyze distributed systems using these fundamental algorithms and principles through the study of a number of advance distributed systems.

**23. Introduction to Computer Networks**

**Instructor: Longbo Huang**

This course aims at giving a comprehensive introduction to the fundamentals of computer networks and network performance analysis. The course contains two parts. The first part covers various networking topics including network principles, Ethernet, WiFi, routing, inter-networking, transport, WiMax and LTE, QoS, and physical layer knowledge. The second part presents mathematical techniques for modeling, analyzing and designing computer systems, including convex optimization, queueing theory, game theory and stochastic analysis. This course is intended for junior or senior undergraduate students in computer science or electrical engineering.

**24. Computational Biology**

**Instructor: Jianyang Zeng**

To introduce various computational problems for analyzing biological data (e.g. DNA, RNA, protein sequences, and biological networks) and the algorithms for solving these problems. Topics covered include: biological sequence analysis, gene identification, regulatory motif discovery, genome assembly, genome duplication and rearrangements, evolutionary theory, clustering algorithms, and scale-free networks.

**25. Research Immersion Training**

**Instructor: Professors from IIIS, Tsinghua University**

This course is designed for the undergraduates (juniors) and serves as the foundation for Research Practice and Diploma Project (Thesis). The topics include algorithm theory, quantum network, complexity, cryptography, security, game theory and so on. In order to enhance their ability in practice, innovation and team work, the students will be arranged to join different groups for discussion and practice based on their interest.

**26. Research Practice**

**Instructor: Professors from IIIS, Tsinghua University**

Research Practice is a practical course in which students conduct research practices for one semester in renowned institutes both at home and abroad. Each student will be assigned a supervisor and participate in cutting-edge projects on theoretical computer science to carry out research-based activities. The course aims to get students involved in the latest development of theoretical computer science. It will cultivate a better understanding of the theory and applications among students and give them the opportunity to publish papers on their respective research practices. In this course, students are required to take part in formal presentations on research practices, including thesis proposal, mid-term and final defenses.