|
Time and location: | T 4:40-6:20 PM, Xuewu Building B506 |
Instructor: | Qiao Xiang (qiaoxiang AT xmu.edu.cn); Congming Gao; Lu Tang |
Office hours: | Please contact the instructor to make an appointment |
Teaching assistants: | Rulan Yang (songhaohao2021 AT stu.xmu.edu.cn); Jinghui Jiang |
Class home page: | https://sngroup.org.cn/courses/ans-xmuf23/index.shtml |
The Internet has grown from a research curiosity to something as essential as the ubiquitous telephone and utility networks. It has been able to withstand rapid growth fairly well and its core protocols have been robust enough to accommodate applications (e.g., the World Wide Web and cloud computing) that were unforeseen by the original Internet designers. Networking is becoming an essential component of many systems.
In a nutshell, this class teaches you how to do high-quality research in the area of networked systems, spanning over computer networks, operating systems, storage systems, and software engineering. From the technical aspect, we will start with the design principles and the architecture of the Internet, a global network infrastructure. We will study emerging research progress on how to build reliable, secure and high-performance networked systems. From the academic skill's aspect, we will start with the basic research skills such as read/review papers and make presentations. We will work together with your advisors to guide you go through the complete cycle of a research paper, including identifying a problem, making a proposal, iterate different designs, fast prototyping, comprehensive experiments, paper writing and even paper review and TPC meeting.
Topics include: data center networking, programmable networks, distributed file systems, consensus protocols, data analytics systems, network verification, machine learning systems and 5G networks. An emphasis will be placed representative systems and their design principles in these areas.
This will be a fast-paced course that covers both the algorithmic/theoretical background and the practical programming for computer networks. Basic knowledge of distributed computing and probability will be helpful but not required. Background in operating system will be helpful for some programming assignments.
Course requirements include 2 written assignments, 2 lab assignments, and 2 course projects.
Class participation. If you do not ask questions in the class, you will not get as much out of the class as you could. Your class participation will be based on the instructor's assessment of whether you are regularly involved in the class over the course of the semester. If at the end of the semester the instructor cannot remember you, you have not actively participated in the class.
I strongly encourage you to discuss any topic with anyone. That's the way good science happens. As a professional, you should acknowledge any significant discussions in your homework/projects. However, when the time comes to write the homework or program, such discussions are no longer appropriate---the solution or program must be your own personal inspiration (although you may ask the instructor and teaching fellow for help in writing and debugging). DO NOT UNDER ANY CIRCUMSTANCES COPY ANOTHER PERSON'S HOMEWORK OR PROGRAM---to do so is a clear violation of ethical/academic standards that, when discovered, will be referred to the university for disciplinary action.
A lab assignment or that is not completed by the time specified in the assignment (and whose late submission is not authorized by the instructor or by a Dean's excuse) will be not be graded.
Copyright (c) 2023 Qiao Xiang, Department of Computer Science, Xiamen University