Research and Advances
Computing Applications China Region special section: Hot topics

Teaching Undergraduates to Build Real Computer Systems

Posted
  1. Introduction
  2. Bridging the Gap between Theory and Practice
  3. The Practice of Learning-by-Doing
  4. Conclusion
  5. References
  6. Authors
student at laptop computer in classroom

Computer system courses (for example, computer organization, computer architecture, operating system, and compiler) are the foundation of computer science education. However, it is difficult for undergraduates to fully grasp key concepts and principles of computer systems due to the gap between theory and practice. To mitigate the gap, Chinese educators have spent the last decade focusing on teaching undergraduates to build real computer systems. They carried out many effective reform measures with the philosophy of learning-by-doing, which have significantly improved the computer system skills and abilities of Chinese undergraduates.


Chinese educators have devoted exhaustive efforts over the past 10 years to reform measures for improving the technical skills of undergraduates by teaching them to build real computer systems.


Computer system education in China before 2010. In 2013, Yuan and Chen conducted a study that analyzed the scores of computer system courses in the National Entrance Examination to Graduate School for the years of 2009–2012. The statistical results show the average scores were extremely low, ranging from only 34.3 to 49.3 during the four years and the scores of operating systems were a bit better, ranging from 41.3 to 54.4.3 This situation stunned Chinese educators for it revealed serious problems in computer science education before 2010 in China.

uf1.jpg
Figure. Students at Tsinghua University in Beijing.

Specifically, there were two main problems: First, computer science courses mainly focused on memorizing concepts rather than practice training, therefore most undergraduates never dived into challenging tasks such as building a CPU or an OS kernel from scratch. Second, knowledge was taught in a disconnected manner, so that undergraduates lacked the overview of a whole computer system with multiple layers, such as programs, compilers, operating systems, instruction set architectures (ISAs), and computer architecture. When encountering a problem requiring knowledge of multiple layers, students usually became confused without knowing how to start.

Back to Top

Bridging the Gap between Theory and Practice

Recognizing the problems, Chinese educators decided to reform computer system education under the leadership of the Steering Committee on Computer Education of the Ministry of Education. Eight universities pioneered computer system education reform, aimed at determining curricula that not only covered basic concepts and key principles but also emphasized applying knowledge of multiple layers to solve problems. Educators of these universities rewrote textbooks to organize computer system knowledge with a more comprehensive structure, redesigned course projects with sufficient challenging tasks and built teaching platforms to facilitate students’ practice. Promoting students’ system ability soon became one of the hottest topics in the computer education field in China and more than 100 universities joined together to reform their curriculums. Educators also found that competition is an effective measure for improving computing abilities and then launched several nationwide competitions.


Competitions have significantly promoted the active atmosphere of computer system education and improved the computing capabilities of undergraduate students in China.


Back to Top

The Practice of Learning-by-Doing

Chinese educators have devoted exhaustive efforts over the past 10 years to reform measures for improving the technical skills of undergraduates by teaching them to build real computer systems. Generally, there are four kinds of practices:

  • Project assignments: Several universities, such as Nanjing University and Peking University, devised new courses that comprehensively introduce computer systems and provide challenging project assignments (PAs). For example, Nanjing University’s PAs require undergraduates to complete a full system emulator step by step, which consists of a CPU and an OS and is designed to run a popular computer game.
  • FPGA-based systems: Many universities instructed undergraduates to build computer systems from scratch based on FPGAs. In Tsinghua University, for example, the final project of a computer organization course is to build a reduced CPU from scratch that can run applications on an FPGA board in just three weeks. During the Fall 2020 semester, 242 undergraduates took the course and successfully completed the final project. Meanwhile, the OS course project and the network course project involve building an operating system and a router from scratch respectively.
  • Real chips: Some universities instructed undergraduates to build real chips. In 2019, University of Chinese Academy of Sciences launched the One Student One Chip (OSOC) Initiative. Five undergraduates participated in the OSOC Initiative and completed a 64-bit RISC-V processor SoC named Nut-Shell,2 which was manufactured by SIMC 110nm technology and can successfully run Linux at 200MHz. In 2020, 11 undergraduates from five universities participated in the second-year OSOC Initiative and built nine different RISC-V CPU cores that were tapped out in December 2020.
  • Competitions: In 2017, the Steering Committee on Computer Education launched a nationwide competition in computer system ability that has already attracted more than 2,000 undergraduates from about 100 universities to participate. The competition initially focused on CPU design and as of 2021 includes operating system topics and compiler topics, in which 201 teams and 99 teams registered to participate respectively. Over the past five years, the competition has continuously improved undergraduates’ computer system skills. In 2017, 30% of the teams were able to complete CPU designs with caches and 10% of CPU designs can run OSs, among which only one team successfully ported Linux on their CPU. By contrast, in 2019, 100% of teams completed CPU designs with caches and 54% of CPUs can run OSes. One team even completed a 4-issue out-of-order CPU design that can run on an FPGA. The competitions have significantly promoted the active atmosphere of computer system education and improved student skillsets.

uf2.jpg
Figure. The 64-bit NutShell RISC-V processor designed by students from the University of the Chinese Academy of Sciences.

Back to Top

Conclusion

China’s pool of talent in the computer systems arena is still far behind developed countries. A survey of 10 years’ worth of papers from ISCA/OSDI/SOSP conferences (2008–2017) showed the number of China-based first authors as only 1/20 the number from the U.S.1 China has a huge demand for computing talent, however, computer science education is challenged by the need to include extensive practice training. Over the past decade, China’s educators have realized the importance of practice and conducted a series of reform measures to change the status.

    1. Bao, Y., Sun, N., Zhang, K. Thinking and practices of open source design of processor chip and agile development methods. Commun. CCF (2019).

    2. Wang, H., Zhang, Z., Zhang, L., Jin, Y., Wang, K. NutShell: A Linux-Compatible RISC-V Processor Designed by Undergraduates. RISC-V Global Forum, 2020; https://github.com/OSCPU/NutShell

    3. Yuan, C., Chen, R. The Teaching Problems of Undergraduate Computer Basic Courses from the Entrance Examination to Graduate School. China Examination, 2013.

Join the Discussion (0)

Become a Member or Sign In to Post a Comment

The Latest from CACM

Shape the Future of Computing

ACM encourages its members to take a direct hand in shaping the future of the association. There are more ways than ever to get involved.

Get Involved

Communications of the ACM (CACM) is now a fully Open Access publication.

By opening CACM to the world, we hope to increase engagement among the broader computer science community and encourage non-members to discover the rich resources ACM has to offer.

Learn More