2.1 Operating system操作系统
CS 140: Operating Systems (Spring 2020): This class introduces the basic facilities provided by modern operating systems.
Operating Systems: Three Easy Pieces is a good alternative that’s freely available online. We particularly like the structure and readability of the book, and feel that the exercises are worthwhile.
The excellent introductory book: Crafting Interpreters
CS143 compilers: Their knowledge generalizes; they are able to understand the operation of a new language more deeply and quickly than those who have merely learned specific languages.
Compiler Explorer: Compiler Explorer is a handy website that lets you quickly write C code and see its assembly translation.
2.3 Computer network计算机网络
CS 144: Introduction to Computer Networking, Fall 2020
Computer Networking: A Top-Down Approach is our favorite book on this topic. The small projects and exercises in the book are well worth doing, and we particularly like the “Wireshark labs”.
DESIGN AND ANALYSIS OF ALGORITHMS: This course will cover the basic approaches and mindsets for analyzing and designing algorithms and data structures. Topics include the following: Worst and average case analysis. Recurrences and asymptotics.
My preferred approach is to solve problems on Leetcode, some instructions are as follows:
fucking-algorithm: Crack LeetCode, not only how, but also why.
LeetCodeAnimation: Demonstrate all the questions on LeetCode in the form of animation.
labuladong: very friendly for beginners, highly recommend!
Finally, we strongly recommend How to Solve It as an excellent and unique guide to general problem solving; it’s as applicable to computer science as it is to mathematics
2.5 Computer/Digital system design/architecture计算机/数字系统设计/架构
CS110 Principles of Computer Systems: Principles and practice of engineering of computer software and hardware systems.
Topics include: techniques for controlling complexity; strong modularity using client-server design, virtual memory, and threads; networks; atomicity and coordination of parallel activities. Besides, I also recommend to use this book--Computer Systems: A Programmer's Perspective
One paper particularly worth mentioning for new students is “Architecture of a Database System”, which uniquely provides a high-level view of how relational database management systems (RDBMS) work. This will serve as a useful skeleton for further study. And for courses,
Data Management and Data Systems: This course covers how to use databases in applications, first principles on how to scale for large data sets and how to design good data systems.
Copyright 2010-2021 托普仕留学版权所有 网站备案号：京ICP备11009754号-1 京公安网备110108001932