No. Semester and year Course name Credits Instructor
1 Fall, Freshman Introduction to Computer Science 3 Ran Duan
2 Fall, Freshman Introduction to Artificial Intelligence 3 Yi Wu, Yang Gao
3 Fall, Sophomore Algorithm Design 4 Jian Li
4 Fall, Sophomore Artificial Intelligence: Principles and Techniques 3 Chongjie Zhang
5 Fall, Sophomore Database Systems 4 Huanchen Zhang
6 Fall, Junior Machine learning 4 Yang Yuan
7 Fall, Junior Quantum Communication and Cryptography 3 Xiongfeng Ma
8 Fall, Junior Advanced Computer Graphics 3 Shimin Hu
9 Fall, Junior Operating System 4 Wei Xu
10 Fall, Junior Data Mining 3 Yihan Gao
11 Fall, Junior Natural Language Processing 3 Zhilin Yang
12 Fall, Junior AI+X 6 Yang Yuan
13 Fall, Junior Basic concepts in AI and Quantum 2 Luming Duan
14 Fall, Junior Introduction to Computer Networks 3 Longbo Huang
15 Fall, Junior Computational Biology 3 Jianyang Zeng
16 Fall, Junior Introduction to Artificial Intelligence Chip:From Verilog to FPGA 3 Kaisheng Ma
17 Fall, Junior Intelligent Systems and Robotics 3 Jianyu Chen
18 Fall, Senior Research Practice 15 Professors from IIIS, Tsinghua University
1. Introduction to Computer Science

Instructor: Ran Duan

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. Introduction to Artificial Intelligence

Instructor: Yi Wu, Yang Gao

This course aims at providing freshmen students with a broad overview of the Artificial Intelligence field, including computer vision, robotics, reinforcement learning, AI systems, and AI algorithms, motivating them to study the field, and encouraging them to conduct indepth investigation on different areas of the field. It is a required course for freshmen students in the Special Artificial Intelligence Polit Class. Lectures will be given by leading experts in AI areas from both academia and industry.

3. 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.

4. 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.

5. Database Systems

Instructor: Huanchen Zhang

This course is designed to introduce the fundamental concepts and implementations of modern database management systems. This is not a course that teaches you how to build database applications (e.g., schema design, SQL programming). It is designed as a systems course, with an emphasis on database internals. Topics include relational model and SQL, storage and indexing, query processing and optimization, transactions and concurrency control, distributed and cloud databases, as well as advanced research topics in the field. Students taking this course should have basic knowledge on computer systems. No prior database experience is assumed. The course consists of lectures, written assignments, and projects. Assignments and projects are designed to reinforce what the student learned in lectures and to provide hands- on experience in building a database system. Upon successful completion of this course, the student should feel confident taking a job as a database developer or conducting database-related research in graduate school.

6. 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.

7. 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.

8. 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.

9. 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.

10. Data Mining

Instructor: Yihan Gao

This course offers a broad coverage of topics in the field of data mining. The first half of the course cover basic data mining concepts including: data preparation, knowledge presentation, classification, clustering, generalization of algorithms, evaluation of credibility, and association analysis. The second half of the course covers some of the more advanced research topics in the field of data mining. This course intends to be a first course on data mining that prepares students for further study, which introduces students to many different topics so that they can pursue their favorite ones on their own after the course.

11. Natural Language Processing

Instructor: Zhilin Yang

This course will introduce important problems in the field of natural language processing such as language modeling, machine translation, and question answering, as well as core technologies to solve these problems including attention-based neural networks and language model pretraining. The course will cover basic algorithms, real-world applications, as well as open problems in academic research.

12. AI+X

Instructor: Yang Yuan

This course is a core course in IIIS Zhi Class, which aims for letting students solve interdisciplinary problems using AI techniques, assuming that the students have already taken systematic AI courses. This course contains multiple themes, where each theme contains a few different projects. Students will form teams of size 1-2 people. Each team will pick one project, and solve the specific problems using AI techniques. The goal of this course is to let students finish one AI project from the beginning to the end, understand the potentials and limitations of AI techniques, as well as understand what kind of human/data support are necessary for making AI work. This course assumes that the students have already taken Machine Learning and other related AI course, and also familiar with basic tools (including Python, GitHub, SSH and so on).

13. Basic concepts in AI and Quantum

Instructor: Luming Duan

This course will organize students to discuss fundamental concepts and big open questions in AI and quantum computer science, including the free will, consciousness, and their relation and implementation with AI and quantum computer, emotion and social intelligence, quantum computing and its relation with brain and AI, creativity and its implementation with AI, how life and intelligence influence each other, and the future directions of intelligence. Through a series of heuristic discussions of fundamental questions, this course will stimulate the students’ interest in research on intelligence and related interdisciplinary subjects and motivate the students to think deeply on unusual fundamental questions to bring conceptual breakthroughs to the filed. Some heuristic questions include: Is free will real or an illusion? What leads to free will (or free-will illusion)? Does machine have free will? What is consciousness/mind? How consciousness helps in intelligence? How to implement consciousness in AI? Does emotion help for intelligence? How to implement emotion and social intelligence in AI? Is consciousness required for social intelligence? Is our brain quantum? How can quantum computing help for intelligence? What are the key factors for creativity? How to make a computer be creative and have imagination? How to implement Inductive, Deductive, Analog, and Probabilistic reasonings with a computer? How life and intelligence mutually influence each other? How to make a computer alive and intelligent? What are the advantages of biologically-based and computer-based intelligence? What are the possible directions for future intelligent beings?

14. 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.

15. 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.  

16. Introduction to Artificial Intelligence Chip:From Verilog to FPGA

Instructor: Kaisheng Ma

This is a course focusing both on theoretical and experimental hardware fundamentals. The target is to implement small scale convolution operation in CNN on FPGA. After the course, students should be able to handle: How to divide control logics and computing logics. How to implement logics, timing, state-machine etc. Able to make testbenches. Able to map to FPGA, and debug on it. Know basics about back-end about ASIC chip design, like verification, layout etc. Able to implement a 3*3 convolution layer, and finish the local memory, global memory. 

17. Intelligent Systems and Robotics

Instructor: Jianyu Chen

This course introduces both the theoretical foundations and advanced techniques in the fields of intelligent systems and robotics, from a unified algorithmic view of both the traditional robotic control perspective and the learning perspective. The contents range from robotic system modeling and problem formulation, planning and control, estimation and perception, to adaptive behaviors using both the indirect (model-based learning) methods and direct (model-free learning) methods. The course concludes with an introduction to industrial robotic arms, autonomous vehicles, and other areas.

18. 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.