Computers, computing, and many things enabled by them are all around us. Some of this is highly visible, like laptops, phones, and the Internet, but much is invisible, like the computers in gadgets and appliances and cars, or the programs that fly our planes and keep our power systems and medical equipment working, or the myriad systems that quietly collect, share, and often leak vast amounts of personal data about us. Even though most people will not be directly involved with creating such systems, everyone is strongly affected by them. This class will provide a broad high-level understanding of how computer hardware, software, networks, and systems operate. We will also touch on fundamental ideas from computer science and some of the inherent limitations of computers.
Brian Kernighan teaches computer science at Princeton University. Before his appointment there, he worked for 30 years as a computer scientist at Bell Labs, where he was in the group that created the Unix operating system and the C programming language. He has written many books for professional programmers and co-authored, with Dennis Ritchie, the first book on the C programming language. Professor Kernighan is also the author of D Is for Digital: What a Well-Informed Person Should Know about Computers and Communications.